最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

zabbix深入玩转

来源:动视网 责编:小OO 时间:2025-09-28 06:43:01
文档

zabbix深入玩转

zabbix深入玩转Part1.Zabbix简介一、             Zabbix简介ZabbixZabbix是一个提供Web管理界面的企业级的开源系统/网络监控分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。官方网站:http://www.zabbix.comZabbix1.8官方文档:http://www.zabbix.com/documentation/1.8/startZabbix通过C/S模式采集数据,通过B/S模式在
推荐度:
导读zabbix深入玩转Part1.Zabbix简介一、             Zabbix简介ZabbixZabbix是一个提供Web管理界面的企业级的开源系统/网络监控分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。官方网站:http://www.zabbix.comZabbix1.8官方文档:http://www.zabbix.com/documentation/1.8/startZabbix通过C/S模式采集数据,通过B/S模式在
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:选择报警的级别,这个是在触发报警的触发器中定义的

状态:是否激活报警状态

文档

zabbix深入玩转

zabbix深入玩转Part1.Zabbix简介一、             Zabbix简介ZabbixZabbix是一个提供Web管理界面的企业级的开源系统/网络监控分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。官方网站:http://www.zabbix.comZabbix1.8官方文档:http://www.zabbix.com/documentation/1.8/startZabbix通过C/S模式采集数据,通过B/S模式在
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top