视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
zabbix深入玩转
2025-09-28 06:43:01 责编:小OO
文档
zabbix深入玩转

Part1.Zabbix简介

一、             Zabbix简介

Zabbix Zabbix 是一个提供 Web 管理界面的企业级的开源系统/网络监控分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。

官方网站:http://www.zabbix.com

Zabbix 1.8官方文档:http://www.zabbix.com/documentation/1.8/start

Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。

被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据

Server端:通过收集SNMP和agent发送的数据,写入MySQL数据库,再通过php+apache在web前端展示。

Zabbix运行条件:

Server:

Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低

Agent:

目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows

SNMP:

支持各类常见的网络设备

 

二、             Zabbix功能

●∙ 具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)

●∙ 支持自动发现网络设备和服务器

●∙ 支持分布式,能集中展示、管理分布式的监控点

●∙ 扩展性强,server提供通用接口,可以自己开发完善各类监控

三、             优劣势

优点:

●∙ 开源,无软件成本投入

●∙ Server对设备性能要求低(实际测试环境:虚拟机Redhat EL AS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上)

●∙ 支持设备多

●∙ 支持分布式集中管理

●∙ 开放式接口,扩展性强

缺点:

●∙ 全英文,界面不友好

●∙ 无厂家支持,出现问题解决比较麻烦

●∙ 需在被监控主机上安装agent

安装前先配置好PHP,要求支持 php-gd、php-bcmath、php-xml、php-mysql、php-net-socket、php-mbstring,即 configure 参数中加上 –with-gd –enable-bcmath –enable-xml –with-mysql –enable-sockets –enable-mbstring

下面开始安装 Zabbix:

下载并解压:http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/1.8.2/zabbix-1.8.2.tar.gz

tar zxvf zabbix-1.8.2.tar.gz

cd zabbix-1.8.2

* 创建 zabbix 用户组和用户:

groupadd zabbix

useradd zabbix -g zabbix

* 创建 mysql 数据库:

create database zabbix character set utf8;

* 创建 mysql 用户:

grant all on zabbix.* to zabbix@localhost identified by 'zabbix';

* 导入表和数据:

mysql -uroot -p zabbix < create/schema/mysql.sql

mysql -uroot -p zabbix < create/data/data.sql

mysql -uroot -p zabbix < create/data/images_mysql.sql

* 配置编译:./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl

make && make install

配置参数说明:

–enable-server 安装 Zabbix Server

–enable-proxy 安装 Zabbix Proxy

–enable-agent 安装 Zabbix Agent

–with-mysql 使用 mysql 做数据库服务器

–with-net-snmp 支持 SNMP

–with-libcurl 支持 curl,用于 web 监控

* 服务端口定义:

编辑 /etc/services,在后面追加:

zabbix-agent    10050/tcp                       #Zabbix Agent

zabbix-agent    10050/udp                       #Zabbix Agent

zabbix-trapper  10051/tcp                       #Zabbix Trapper

zabbix-trapper  10051/udp                       #Zabbix Trapper

* 复制配置文件:

mkdir /etc/zabbix

cp misc/conf/zabbix_server.conf /etc/zabbix/

cp misc/conf/zabbix_proxy.conf /etc/zabbix/

cp misc/conf/zabbix_agent.conf /etc/zabbix/

cp misc/conf/zabbix_agentd.conf /etc/zabbix/

* 修改 zabbix server 配置文件 /etc/zabbix/zabbix_server.conf 中的数据库用户名和密码:

DBUser=zabbix

DBPassword=zabbix

* 安装启动脚本

cp misc/init.d/redhat/zabbix_server_ctl /etc/init.d/zabbix-server

cp misc/init.d/redhat/zabbix_agentd_ctl /etc/init.d/zabbix-agentd

添加可执行权限:

chmod +x /etc/init.d/zabbix-server

chmod +x /etc/init.d/zabbix-agentd

修改 zabbix-server 变量定义:

BASEDIR= /usr/local

ZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server

修改 zabbix-agentd 头部变量定义:

BASEDIR= /usr/local

ZABBIX_AGENTD=$BASEDIR/sbin/zabbix_agentd 

* 添加到启动服务:

chkconfig --add zabbix-server 

chkconfig --add zabbix-agentd

chkconfig zabbix-server on

chkconfig zabbix-agentd on

如何让 Zabbix Server 和 Zabbix agentd 开机自动运行,免得每次都要手动运行,步骤如下:

1. 复制 zabbix 源程序 misc/init.d/redhat 下的启动脚本到 /etc/init.d 目录下

cp /zabbix/zabbix-1.6.6/misc/init.d/redhat/zabbix_server_ctl /etc/init.d/zabbix_server

cp /zabbix/zabbix-1.6.6/misc/init.d/redhat/zabbix_agentd_ctl /etc/init.d/zabbix_agentd

2. 修改启动脚本使其支持 redhat 的 chkconfig,分别在两个脚本的 #!/bin/sh 后加入如下两行注释,注意要行前要加“#” 哦

# chkconfig: - 95 95

# description: Zabbix Server 

3. 修改启动脚本中 BASEDIR 和 ZABBIX_SUCKERD ,制定到 zabbix_server 和 zabbix_agentd 的安装位置,如:

BASEDIR=/usr/local/sbin

ZABBIX_SUCKERD=$BASEDIR/zabbix_server

4. 使用 chkconfig 将其加入 init 的启动服务

chkconfig --add zabbix_server

chkconfig --add zabbix_agentd

chkconfig --level 345 zabbix_server on

chkconfig --level 345 zabbix_agentd on

4. 使用 chkconfig --list 检查一下

chkconfig --list | grep zabbix

输出如下:

zabbix_agentd   0:off   1:off   2:off   3:on    4:on    5:on    6:off

zabbix_server    0:off   1:off   2:off   3:on    4:on    5:on    6:off
* 启动 Zabbix Server:

/etc/init.d/zabbix-server start

* 启动 Zabbix Agentd

/etc/init.d/zabbix-agentd start

* 复制 Web Interface 到 web 目录:

cp -r frontends/php /data/wwwroot/nagios.91linux.cn/webroot/zabbix

Zabbix会使用到fping,可以使用yum install fping 安装,如果yum无此软件,可使用源码安装

http://fping.sourceforge.net/

进入 fping 解压后的源代码目录

./configure

make install

修改/etc/zabbix/zabbix_server.conf

FpingLocation=/usr/local/sbin/fping

* 开始安装 Zabbix Web Interface

打开 http://192.168.9.23/zabbix/,看到提示:

∙date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead[/data/wwwroot/nagios.91linux.cn/webroot/zabbix/include/page_header.php:149]

∙Timezone for PHP is not set. Please set "date.timezone" option in php.ini.

修改 php.ini 中时区设置:

date.timezone = Asia/Shanghai

继续http://192.168.9.23/zabbix/

修改php.ini

post_max_size = 32M

upload_max_filesize = 16M

max_execution_time = 600

max_input_time = 600

memory_limit = 256M

默认编译没有加上bcmath,手动加上

cd /usr/local/src/monitor/php-5.2.13/ext/bcmath

/usr/local/php-5.2.13/bin/phpize

./configure --with-php-config=/usr/local/php-5.2.13/bin/php-config

make

make install

编辑php.ini 

extension_dir = "/usr/local/php-5.2.13/lib/php/extensions/no-debug-zts-20060613/"

在其下增加一行:

extension = bcmath.so

cd /data/wwwroot/nagios.91linux.cn/webroot/zabbix

chmod 777 conf

Retry

* 结束:

安装完后直接访问:

http://192.168.9.23

输入管理用户名:admin 默认口令 zabbix 登陆。进入Configuration -》Hosts 选择 Zabbix Server 然后 Activate Select,Zabbix Server (本机)的监控激活。进入 Monitoring Dashboard,可以看到 Zabbix Server 的监控结果!

汉化:zabbix本身有中文版,不过不够好,可以使用以下汉化文件

下载汉化文件:

http://www.hiadmin.com/?p=1638

wget http://www.hiadmin.com/wp-content/uploads/2010/03/cn_zh.inc.php_.tar.gz

tar zxvf cn_zh.inc.php_.tar.gz

mv /data/wwwroot/nagios.91linux.cn/webroot/zabbix/include/locales/cn_zh.inc.php /data/wwwroot/nagios.91linux.cn/webroot/zabbix/include/locales/cn_zh.inc.php.default

cp cn_zh.inc.php /data/wwwroot/nagios.91linux.cn/webroot/zabbix/include/locales/

在hosts上配置agent

 

Zabbix需要在被监控的host上安装agent,在zabbix官网上下载相应平台的agent包到各被监控端,按如下方式在被监控上运行agent。(注:官网上下载的agent包里没有运行agentd所必须的配置文件,可以从zabbix server上拷贝一份zabbix_agentd.conf,这个conf文件是所有平台都通用的)

Linux、UX:

Linux、UX上的agent是编译好了的,不用安装

 

#cd /usr/local/zabbix

#tar zxvf zabbix_agents_1.8.linux2_6.i386.tar.gz

 

取一份server上的zabbix_agnetd.conf到本地,然后按说明修改,一般我们只需修改如下3个参数:

Hostname=本机名

Server=Zabbix Server IP

LogFile=本机agentd日志保存文件

 

修改完成后,运行agentd

 

#/usr/local/zabbix/sbin/zabbix-agentd –c /usr/local/zabbix/zabbix_agentd.conf &

#ps –ef|grep zabbix_agentd

 

如果进程没起来,可查看agentd.log日志来排查问题。(注:启动时建议用全路径,否则可能会出错)

 

加入开机运行

 

#echo ‘/usr/local/zabbix/sbin/zabbix-agentd –c /usr/local/zabbix/zabbix_agentd.conf &

‘ >>/etc/rc

 

Windows:

Windows下解压客户端包到c:,下载修改好的zabbix_agentd.conf文件也放到c:,打开cmd命令行,执行

 

C:>zabbix_agentd –install

 

安装后会在系统服务里添加一个zabbix_agentd服务,会自动开机运行

 

如果需要将客户端和配置文件放在其他目录,请执行

 

C:>DIR/zabbix_agentd –c DIR/zabbix_agentd.conf –install

 

启动agentd服务

 

C:>zabbix_agentd –start

 

或是通过管理->服务找到zabbix_agentd来启动

Part3.配置使用

通过本地浏览器访问http://ServerIP/zabbix来开始配置和使用zabbix。

使用zabbix进行监控之前,要理解zabbix监控的流程。

一次完整的监控流程可以简单描述为:

Host Groups(设备组)->Hosts(设备)->Applications(监控项组)->Items(监控项)->Triggers(触发器)->Actions(告警动作)->Medias(告警方式)->User Groups(用户组)->Users(用户)

 

一、             添加 Hosts

Host是Zabbix监控的基本载体,所有的监控项都是基于host的。

通过Configuration->Hosts->Create Host来创建监控设备

按提示填入Name、Groups、IP ,其他选项默认即可,Link Templates 处选择一个模板,save即可成功添加设备。(注:如果host上没安装agent,添加后的状态会是unmonitor,会采集不到值,Zabbix自带大量的设备监控模板,我们添加主机时通过link到这些模板,就可以快速添加主机的监控项和告警触发条件。)

一类的hosts可以归属到同一个Host Group,便于分类管理同一类设备,在Configuration->Host Group->Create Host Group 可以添加设备组

二、             添加 Items

Item是监控项,是监控的基本元素,每一个监控项对应一个被监控端的采集值。

在Configuration->Hosts界面,我们能看到每个host所包含的items总数,点击对应主机的items项,可以看到具体的每个item信息,这些items可以引用自templates,也可以自己创建。

通过点击具体item名字可以修改已有监控项的属性,点击Satus的链接可以禁用/启用这个监控项。(注:我们可以通过新建一个template,在template中禁用掉所有不需要用到的items,然后把同一类hosts link to这个template,就不用一台台主机去更改items)

新增item可以通过点击右上角的create item来创建

  按提示逐项填入相关信息即可,其中key是zabbix已经自带的取值方法,Application类似于host groups,是item的组。(item key也可以自定义,后面会讲到如何自定义监控项)

Zabbix自带非常多的监控采集项及方法,基本能满足当前所有的监控功能,这些都包含在item的 item key中了,更多的type和key的解释请参考:

http://www.zabbix.com/documentation/1.8/manual/config/items

 

三、             添加 Triggers

Trigger是触发器,当Items采集值满足triggers的触发条件时,就会产生actions。

每一个trigger必须对应一个item,但一个item可以对应多个trigger。

同样,通过点击Configuration->Hosts->Triggers中某个trigger的名字,可以修改trigger的属性。(注意:引用自template的trigger触发值是不能单独修改的,必须在template中修改,或是复制一个同样的trigger再修改,然后禁用掉之前的)

新增trigger可以通过点击右上角的create trigger来创建

Expression中选择对应的item、触发方式及触发值,Severity是告警级别,根据trigger的严重性来选择。

Zabbix 提供多种trigger触发方式供选择,常用的我们可以选择last value /=/#/N(最近一次采集值),或是选择maximal value for period of time (一段时间内的最大值),等等。可以根据实际需要来设定触发方式。更多的解释请参考:

http://www.zabbix.com/documentation/1.8/manual/config/triggers

 

四、             添加 Actions

Action是告警动作,当触发器条件被满足时,就会执行指定的action。

通过Configuration->Actions->Create Action来创建Action

Event source:来源,如果选择triggers,即所有的triggers条件满足时都会执行这个action

Escalations:告警是否升级,及升级时间

Subject、Message:告警标题和内容 ,此处可引用zabbix的宏变量;例如 {{HOSTNAME}:{TRIGGER.KEY}.last(0)}表示最后一次采集值,更多宏变量参考: http://www.zabbix.com/documentation/1.8/manual/config/macros

Recovery Message:告警恢复信息,不勾选系统会用默认的,勾选后自定义

Conditions:trigger产生的条件,条件可以多选

Operation:选择media 及user  

五、             添加 Medias

Media,即告警方式,Zabbix可以提供四类Media:Email/SMS/Jabber/Script,通过Administrator->Media Type来修改或新增告警方式

Email方式最常用的,填入相关的SMTP信息,即可通过邮件方式发送告警。

SMS方式要在server主机上接入短信modem。

Jabber方式是一种linux下的即时通讯工具,通过Jabber发送即时消息。

Script方式可以通过自己编写程序或脚本的方式发送告警信息。

六、             添加 Users

在Administrator->Users 可以添加用户和用户组

通过User Group可以用户的权限,zabbix自带的用户组的权限基本能满足我们的要求。

创建用户时可以根据用户的不同作用划分到不同的组,media中填入告警接受地址及告警接受时间等信息。

一、             添加 WEB Monitorings

Web Monitoring是用来监控web程序的,可以监控到web程序的下载速度、返回码及响应时间,还支持把一组连续的web动作作为一个整体来监控。

下面我们以监控登陆zabbix的web程序为例,来展示如何使用web monitoring。

Configuration->web->Create Scenario 创建一个Scenario(注:必须选择host后才能创建scenario,zabbix的所有items都必须创建在hosts上)

Application:选择这个scenario所在的application组

Name:scenario的名字

Basic authentication:鉴权

Update interval:监控频率,s为单位

Agent:选择要使用的浏览器客户端,可能同样的web程序对不同的客户端展示的内容会不一样

Status:默认为active

Variables:变量定义,这里定义的变量可在后续的steps中使用,这里我们定义了用户和密码的变量

Steps:web 程序的各个步骤,选择add新增一个Login的step,来模拟用户登陆,传递用户和密码给index.php页面

URL:监控的web页面(注:必须是全路径带页面名)

Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量

Timeout:超时时间

Required:页面中能匹配到字符,匹配不到即认为错误

Status codes:页面返回码

 

添加完step后,我们在Monitoring->web页面即能看到监控的状态和图示

创建完scenario后,zabbix server会自动创建相关的items,所以我们只需为这些items添加triggers即可让web scenario出错时产生告警

Configuration->hosts->点击scenario所在的host条目的trigger,直接create trigger,在select items的时候就可以看到系统自动创建的items(注:自动创建的items在host的items列表中直接是看不到的,需要在创建trigger时选择items时才能看到)

 

可以在items列表中看到,系统为每个step创建了3个item,Download Speed/Response Code/Response Time,为整个scenario创建了一个test.fail的item,可以分别为其创建trigger

下例我们创建一个Login页面返回码的trigger,大于等于400即为错误

再创建一个整个scenario所有step运行是否成功的trigger,采集值为0表示整个scenario的所有step都执行成功了,第几步的step执行失败就返回数字几,且后续的step都不会继续执行下去。

这样,一个完整的web monitoring就配置完成了。

Web monitoring还有更多强大的功能,未能一一研究了解,有待挖掘

二、             添加 Graphs

Zabbix的Graphs功能很强大,可以为每一个item绘制图表,也可以把多个items绘制在一张图表内。

通过configuration->hosts选择要绘制图表的host,点击graphs,create graphs即可创建图表。

Graph type:图表样式,有线状、柱状、饼状

还可以自定义图表大小,及Y轴最大最小值

通过add items可以添加在同一个图表中展示的多个items(注:注意每个item的颜色及取值范围,范围相差太大图表会显示不全)

配置好的graphs在monitoring->graphs中查看

在monitoring->last data下能快速查看每个host的每个item的graph

三、             添加 Screens

Screen将多种信息放在一起展示,便于集中展示某个host的多个信息,或是比较多个hosts的同一种信息,这些信息可以为graphs、maps、server infos等等,几乎涵盖zabbix所有的监控信息。

通过configuration->screen->creat screen来创建,创建时定义screen的行数和列数,点击对应单元格内的change,添加相应的信息

通过monitoring-screen,可以查看之前配置好的信息。

四、             添加 Maps

 

五、             添加 MySQL监控

Zabbix自带有MySQL的监控模板,可以做一些简单的监控。

1、更改agentd配置

Agent的配置文件上默认就有通过mysqladmin工具取MySQL数据库监控信息的配置,我们只需更改需MySQL所在host上的agentd.conf文件,将文件最后的所有关于mysql的UserParameter前的#号去掉,更改登陆mysql的用户和密码即可。

例如:修改后其中一条监控数据库状态如下:

UserParameter=mysql.ping,mysqladmin -uroot –proot ping|grep alive|wc –l

修改后重启host上的agentd,使配置文件生效。

2、添加items

web端编辑mysql所在的host,使之link到template_APP_MySQL模板,然后在host的items里就能看到刚才定义的这些MySQL的监控项了,修改相应的trigger值即可。

 

这个zabbix自带的mysql监控功能比较弱,只是通过mysqladmin工具去查询mysql的一些状态而已。

我们可以自己编写或是找一些功能更强的mysql监控脚本,加到zabbix监控里,后面会讲到如何自己添加监控。

另外更详细的方法可参考zabbix wiki上的mysql监控方法,这个监控的就非常详细:

http://www.zabbix.com/wiki/howto/monitor/db/mysql/extensive_mysql_monitoring_including_replication

一、             添加 Oracle监控

Oracle监控也参考zabbix wiki上如下的方法(调用zabora工具):

http://www.zabbix.com/wiki/howto/monitor/db/orcale/oracle

1、    下载oracle监控程序zabora到oracle所在的主机上,修改所在host的agentd.conf,添加监控项,按如下格式:

 

UserParameter=oracle.name,DIR/zabora pattern sid

 

监控oracle数据库状态:

 

UserParameter=oracle.checkactive,/usr/local/zabora checkactive OracleSID

 

监控oralce数据库连接用户总数

UserParameter=oracle.usercount,/usr/local/zabora usercount OracleSID

 

更多zabora的监控项参考如下:

zabora version: 1.5

usage:

   zabora checkactive [SID]     -- Check Intance is active and open.

   zabora usercount [SID]       -- Count of users connected to Oracle.

   zabora activeusercount [SID] -- Count of active users.

   zabora dbsize [SID]          -- Size of user data (without temp).

   zabora dbfilesize [SID]      -- Size of all datafiles.

   zabora version [SID]         -- Oracle version (Banner).

   zabora dsksortratio [SID]    -- Disk sorts ratio.

   zabora rcachehit [SID]       -- Read Cache hit ratio.

   zabora uptime [SID]          -- Instance Uptime (seconds).

   zabora commits [SID]         -- User Commits.

   zabora rollbacks [SID]       -- User Rollbacks.

   zabora deadlocks [SID]       -- Deadlocks.

   zabora redowrites [SID]      -- Redo Writes.

   zabora tblscans [SID]        -- Table scans (long tables).

   zabora tblrowsscans [SID]    -- Table scan rows gotten.

   zabora indexffs [SID]        -- Index fast full scans (full).

   zabora hparsratio [SID]      -- Hard parse ratio.

   zabora netsent [SID]         -- Bytes sent via SQL*Net to client.

   zabora netresv [SID]         -- Bytes received via SQL*Net from client.

   zabora netroundtrips [SID]   -- SQL*Net roundtrips to/from client.

   zabora logonscurrent [SID]   -- Logons current.

   zabora lastarclog [SID]      -- Last archived log sequence.

   zabora lastapplarclog [SID]  -- Last applied archive log (at standby).Next items requires [timed_statistics = true].

   zabora freebufwaits [SID]    -- free buffer waits.

   zabora bufbusywaits [SID]    -- buffer busy waits.

   zabora logswcompletion [SID] -- log file switch completion.

   zabora logfilesync [SID]     -- log file sync.

   zabora logprllwrite [SID]    -- log file parallel write.

   zabora enqueue [SID]         -- enqueue waits.

   zabora dbseqread [SID]       -- db file sequential read waits.

   zabora dbscattread [SID]     -- db file scattered read.

   zabora dbsnglwrite [SID]     -- db file single write.

   zabora dbprllwrite [SID]     -- db file parallel write.

   zabora directread [SID]      -- direct path read.

   zabora directwrite [SID]     -- direct path write.

   zabora latchfree [SID]       -- latch free.

   zabora zaboraver             -- Version of this script.

保存配置,重启agentd

 

2、    在zabbix web页面上创建对应的items和triggers

创建监控oracle数据库状态的item,item key不要select,直接在key栏输入在agent上的UserParameter name

例如监控数据库状态的:oracle.checkactive

 

创建trigger,选择之前创建的item,最后一次采集值不为0,即为状态有问题。

(注:不确定每个zabora方法的返回值时,可直接在agent上运行获取结果)

二、             添加 SNMP监控

 

三、             添加通用协议监控

 

四、             添加自定义监控

对于zabbix功能上无法实现的监控,我们可以通过自己编写程序或脚本来辅助完成,并将脚本的结果通过agent递交给zabbix server统一管理,一样可以绘制graph 报表等。

具体的方法请参考上述oracle监控。

UserParameters的定义方法,请参考:

http://www.zabbix.com/documentation/1.8/manual/config/user_parameters

 

五、             添加 Templates

如果有大量的同一类设备,需要监控的信息也大致类似,一个个去修改相关参数比较麻烦,我们可以通过创建一个template来简化操作。

Configuration->Host Groups->Template->Create Template

创建template后,在configuration->host->template下找到刚创建的MyLinuxTemplate,修改相关的items、triggers、graphs等信息,使满足要求后link到相关的host即可。

六、             添加Log File

 

七、             定制报表

 

八、             添加Macros

Macros指宏变量,定义的宏变量可以在trigger、actions等多种场景中引用。

Macros分系统自带全局宏的及自定义的宏。

系统自带的全局macros列表及解释参考:

http://www.zabbix.com/documentation/1.8/manual/config/macros

引用macros的例子可参考上述action中添加{{Hostname}:{trigger.key}.last(0)}的例子。

Zabbix还支持自定义macros,在添加host或是template时,我们可以在macros项中定义好后续要用到的宏变量,格式为:

{macroname}=macrovalue

自定义的宏变量及系统自带的宏变量都可以在zabbix场景中引用,zabbix在遇到引用的宏变量时,会先查找当前场景中定义的宏,接着查找当前host的自定义宏,接着查找link的template的宏,最后查找zabbix系统自带的全局宏。所以在自定义宏时注意宏引用的顺序。

九、             添加自动发现设备

 

十、             添加Inventory

Inventory 用来管理设备存档信息的。

在添加host时,勾选右侧的Use profile,我们即可填入该台设备的型号、编码、MAC地址等详细信息,勾选Use extended profile则可以填入更详细的信息。

填写的inventory信息在inventory->hosts下能看到.

 

十一、      Export/Import XML

Zabbix提供将所有配置导出为标准XML格式的文件,同样,也支持导入标准格式的XML配置文件。

通过configuration->Export/Import->Export,勾选要导出的host,Preview可以展示要导出的host的详细配置,选择export即可导出xml文件到本地。

Import可导入本地的XML文件,注意格式一定要符合标准要求,如果server上有同名的配置,会被覆盖掉。

如果有大量的配置需要手动新增,譬如新增oralce监控,我们可以手动编写xml,一次导入所有的items和triggers,但要注意格式,可自己导出一个配置后参考。

Part4.FAQ

1、 Export/Import XML 文件时报 http 500错误

答:安装php-xml包后,重启apache即可

 

2、 WEB前端安装Step 3 PHP MB Strings Overload 检查 fail

答:修改php.ini中的mbstring.func_overload = 2,重启apache

 

3、 无法修改trigger的阀值

答:添加host时如果link了template,那items和triggers都是引用自template,而不是实际属于这个host的,所以如果要修改trigger阀值,需要修改template中的阀值,修改后所有link到这个template的trigger都会改变。如果只想修改某台host的trigger,可以复制一个trigger,修改新复制过来的阀值,再禁用掉之前的即可。

4、 运行agentd时进程总起不来,查看agetd.log又无报错

答:全路径运行后正常

zabbix全面监控mysql安装方法(原创)

一、从网上下载相应脚本与XML定义文件。

下载地址:http://www.zabbix.com/wiki/doku.php?id=extensive_mysql_monitoring_including_replication

Template_MySQL_Server.xml

Template_MySQL_Replication_Master.xml

Template_MySQL_Replication_Slave.xml

和执行脚本:mysql.php

二、把mysql.php上传至配置文件目录/etc/zabbix/

chmod 755 mysql.php

三、修改mysql.php文件

根据本机环境。

第一行加入:#!/usr/bin/php

在最后一行加入:?>

关闭调试:define('DEBUG',true); 为 define('DEBUG',False);

修改日志、数据文件路径:

define('LOG',"/tmp/zabbix_".SYSTEM.".log");

define('DAT',"/tmp/zabbix_".SYSTEM.".dat");

define('UTIME',"/tmp/.zabbix_".SYSTEM.".utime");

define('DTIME',"/tmp/.zabbix_".SYSTEM.".dtime");

修改:define('SYSTEM','mysql'.(DEBUG ? "-debug" : "")); 为:define('SYSTEM','mysql');

打开系统日志功能://system("zabbix_sender -z $server -i ".DAT." >> ".LOG); 为:system("zabbix_sender -z $server -i ".DAT." >> ".LOG);

在$cmd = "zabbix_sender -z $server -p 10051 -s $host -k ".SYSTEM.".$var -o $val";

下面增加一行:exec($cmd);

四、在zabbix_agentd.conf配置文件中加入

UserParameter=mysql.daily,php /etc/zabbix/mysql.php daily 用户名 密码

UserParameter=mysql.live,php /etc/zabbix/mysql.php live 用户名 密码

daily:每天执行一次。

live:按指定时间执行一次。

php :执行php文件

/etc/zabbix/mysql.php:mysql.php文件所在的文件路径

用户名 密码:登录mysql数据库的账户与密码

重启zabbix_agentd

五、在zabbix web管理界面导入xml文件

配置-导入/导出-浏览

六、在主机内增加指定模板

配置-主机-具体主机名-Link with Template-新增-刚导入的模板。

模板分为三种:

template MYSQL_server:监控项最全

template MYSQL_Replication_Master:只监控主要参数,监控功能相对最少

template MYSQL_Replication_Slave:主要针对性能方面的监控。

七、测试监控是否成功

删除 定时文件

rm /tmp/.zabbix_mysql-debug.dtime;

取的每天的监控数据

php /etc/zabbix/mysql.php daily root *****

取即时数据

php /etc/zabbix/mysql.php live root *****

查看日志

cat /tmp/zabbix_mysql.log

Info from server: "Processed 1 Failed 0 Total 1 Seconds spent 0.006261"

sent: 1; skipped: 0; total: 1

Info from server: "Processed 1 Failed 0 Total 1 Seconds spent 0.004047"

sent: 1; skipped: 0; total: 1

Info from server: "Processed 0 Failed 106 Total 106 Seconds spent 0.045790"

sent: 106; skipped: 0; total: 106

看到上述为成功

查看DAT的文件。上传的数据

cat /tmp/zabbix_mysql.dat

八、最后查看zabbix 的最新数据

这时会看到新增加的监控项。

接下去就是绘制图形。

zabbix配置使用(一)

2011-03-13 19:11:47

标签:blank

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://mayulin.blog.51cto.com/1628315/514501

4.1 添加模板

如果有大量的同一类设备,需要监控的信息也大致类似,一个个去修改相关参数比较麻烦,我们可以通过创建一个模板来简化操作。

系统配置->模板->创建模板

创建模板后,在系统配置->主机->模板下找到刚创建的cy2009 linux server模板,修改相关的监控项、触发器、图形显示等信息,使满足要求后连接到相关的主机即可。

 

4.2 添加监控项

监控项是监控的基本元素,每一个监控项对应一个被监控端的采集值。

在系统配置->主机界面,我们能看到每个主机所包含的监控项总数,点击对应主机的监控项,可以看到具体的每个监控项信息,这些监控项可以引用自模板,也可以自己创建。

通过点击具体监控项名字可以修改已有监控项的属性,点击状态的链接可以禁用/启用这个监控项。(注:我们可以通过新建一个模板,在模板中禁用掉所有不需要用到的监控项,然后把同一类主机连接到这个模板,就不用一台台主机区更改监控项)

新增监控项可以通过点击右上角的create item来创建

主机:选择需要进行添加监控项的主机

检测内容:设置监控项的名称

类型: 选择监控项Key的类型,一般用到的是

zabbix 客户端

zabbix 客户端(主动)

simple check

       Key:  zabbix已经自带的取值方法

数据类型:

        Numeric (unsigned)(无符号整数型)

        Numeric (float)(无符号浮点型)

        字符串

        日志

        文本

数值类型:Decimal(十进制)、Octal(八进制)、Hexadecimal(十六进制)

单位Units:在数据后面添加单位

Use custom multiplier:使用自定义乘法器,将数据乘以一个数值。可用来进行单位转换。

数据更新间隔(秒):监控项每个多少秒更新一次

数据保存天数:数据在zabbix数据库中保存的天数。

状态:该监控项是否启用

       Store value:存储数值的方式。

       Show value:显示数值的方式。

按提示逐项填入相关信息即可,其中key,监控项分组类似于主机组,是监控项的组。(监控项key也可以自定义,后面会讲到如何自定义监控项)

       Zabbix自带非常多的监控采集项及方法,基本能满足当前所有监控功能,这些都包含在监控项的监控项key中

4.3 添加触发器

当监控项采集值满足触发器的触发条件时,触发器就会触发。

每一个触发器必须对应一个监控项,但一个监控项可以对应多个触发器。

同样,通过点击系统配置->主机->触发器中某个触发器的名字,可以修改触发器的属性。(注意:引用自模板的触发器触发值是不能单独修改的,必须在模板中修改,或是复制一个同样的触发器再修改,然后禁用掉之前的)

为模板新增触发器可以通过系统配置->模板,进入触发器,点击右上角的create trigger来创建

点击表达式后面的添加,来添加触发器表达式

在弹出的对话框中点击Item右边的选择,选择要添加触发器的监控项

在function中选择对监控项数值判断或操作的函数,

选择Average value for period of T times >N。

下面这个触发器的表达式意思是,对监控项ping check进行检查,在监控项扫描4次后(扫描时间=监控项扫描时间间隔×扫描次数,该监控项扫描时间间隔为30秒,扫描时间为30×4=120秒)如果Function 4次扫描的数值大于80,该触发器触发

表达式中选择对应的监控项、触发方式及触发值,示警度是告警级别,根据触发器的严重性来选择。也可以如下图所示,将多个表达式按照一定逻辑关系来设置。并可以对已经设置好的逻辑表达式进行测试。

示警度,根据事件的严重程度为触发器划分等级。有“未分类”,“信息”,“警告”,“一般”,“严重”和“灾难”。

4.4 添加图形显示

       Zabbix的图形显示功能很强大,可以为每一个监控项绘制图表,也可以把多个监控项绘制在一张图形中。

通过系统配置->主机选择要绘制图标的主机,点击图形显示,再点击右上角的创建图形即可创建。(也可以在系统配置->模板,点击木板上的图形显示,再点击右上角的创建图形,当其他主机应用这个带有创建好的图形显示模板时,在系统配置->主机中可以看到该主机继承了模板上的图形显示)

       Graph type:图表样式,有线状、柱状、饼状。

还可以自定义图表大小,及Y轴最大最小值

通过添加监控项可以添加在同一个图表中展示的多个监控项(注:注意每个监控项的颜色及取值范围,范围相差太大图表会显示不全)

配置好的图形在状态统计->图形显示中查看

在状态统计->最新数据下能快速查看每个主机的每个监控项的图形

4.5 添加配置图表

图表将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是比较多个主机的同一种信息,这些信息可以为图形、拓扑图、主机等等,几乎涵盖zabbix所有的监控信息。

通过系统配置->配置图表->create screen来创建,创建时定义图表的行数和列数,点击对应单元格内的change,添加相应的信息。

通过状态统计->配置图表,可以查看之前配置好的信息

4.6 添加主机

主机是zabbix监控的基本载体,所有的监控项都是基于主机的。通过系统配置->主机->创建主机 来创建监控设备

按提示填入名称、主机组、IP,其他的选项默认即可,Linked Templates处选择一个模板,保存即可成功添加设备。(注:如果主机上没安装客户端,添加后的状态会是未检测,会采集不到值,zabbix自带大量的设备监控模板,添加主机时通过link到这些模板,就可以快速添加主机的监控项和告警触发条件)。

一类的主机可以归属到同一个主机组,便于分类管理同一类设备,在系统配置->主机组->创建组,可以添加设备组。

4.7 添加告警动作

当触发器条件被满足时,就会执行指定的告警操作。

通过系统配置->告警操作->Create Action来创建告警操作

事件源:触发告警操作的可以是触发器,也可以是自动发现

触发器:即所有的triggers条件满足时都会执行这个action

自动发现:根据自动发现规则触发

Auto registration:事件产生记录

Escalations:告警是否升级,及升级时间

默认主题、默认信息:告警标题和内容,此处可引用zabbix的宏变量:例如{{TRIGGER.SEVERITY}:{TRIGGER.KEY}.last(0)}表示最后一次采集值

Recovery Message:告警恢复信息,不勾选系统会用默认的,勾选后自定义

操作的预设条件:trigger产生的条件,条件可以多选

操作类型:选择发送告警的介质及用户

4.8 添加告警方式

zabbix可以提供四类告警方式:Email/SMS/Jabber/Script,通过高级配置->告警方式来修改或新增告警方式

Email方式是最常用的,填入相关的SMTP信息,即可通过邮件方式发送告警。

SMS方式要在server主机上接入短信modem

Jabber方式是一种Linux下的即时通讯工具,通过Jabber发送即时消息。

Script方式可以通过自己编写程序或脚本的方式发送告警信息。

4.9 添加用户和组

在高级配置->用户 可以添加用户和用户组

通过用户组可以用户的权限,zabbix自带的用户组的权限基本能满足要求。

高级配置->用户,点击右上角的创建组

用户组: 需要创建的用户组名称。

用户: 可以将右边已存在的用户加入到该组中。

WEB访问: 该用户组中的用户是否可以访问zabbix服务端的页面。

用户状态: 该用户组中的用户是否被启用。

API访问: 该用户组中的用户是否可以访问API接口。

调试模式: 是否对该组用户启用调试模式。

权限: 添加对该组中用户访问主机组中设备的权限。

用户权限(显示):显示当前用户组中的用户的权限,默认是禁止。

高级配置->用户,在右上角下拉菜单中选择用户,点击创建用户

创建用户时可以根据用户的不同作用划分到不同的组,告警方式中填入告警接收地址及告警接收时间等信息。

登陆名: 登录zabbix服务端页面的用户名

名称: 同用户名

姓氏: 同用户名

密码: 用户登陆的密码

User type: 用户类型:

Zabbix User:可以对zabbix服务端内容进行查看,默认是无法访问任何资源的,可以在用户组中定义该组用户可以访问哪些主机组。

Zabbix Admin:可以对zabbix服务端内容进行查看和配置。默认是无法访问任何资源的,可以在用户组中定义该组用户可以访问哪些主机组。

Zabbix Super Admin:最大权限

组: 该用户所属的组

Language: zabbix WEB界面的语言

Theme: zabbix登陆界面的主题

自动登录: 是否允许用户自动登录

自动退出: 是否允许用户在规定时间内无操作后退出

自动刷新间隔:自动刷新状态统计下面的页面

每页显示行数:页面数据显示行数

登录后定向到:用户登录后自动跳转到某个页面

报警介质: 为用户添加报警接收的方式

配置报警接收方式,再报警介质后面点击“添加”

类型:报警的类型,可以选择在高级配置->告警方式中定义的报警类型

收件人:接收报警的用户名或是邮箱

激活时间:定义接收报警的时间段。1-7,00:00-23:59表示24小时×7

Use if severity:选择报警的级别,这个是在触发报警的触发器中定义的

状态:是否激活报警状态下载本文

显示全文
专题