Zabbix添加自定义监控项

 

在Zabbix的监控系统中通常是由Zabbix Server与Zabbix Agent一起配合实现监控。在Zabbix Agent内置了很多监控基础的监控项,参见https://www.zabbix.com/documentation/2.0/manual/config/items/itemtypes/zabbix_agent。这些监控项都是CPU, 文件系统, 网络,磁盘等基础的监控项。

对于自己开发服务的监控,Zabbix提供了良好框架为用户实现监控和报警。下面将以为MySQL添加监控为例,介绍如何添加自定义监控。

实验环境

localhost

角色:Zabbix Agent, Zabbix Server, MySQL, 面板

第一步,监控规划

在创建监控项之前要尽量考虑清楚要监控什么,怎么监控,监控数据如何存储,监控数据如何展现,如何处理报警等。要进行监控的系统规划需要对Zabbix很了解,这里只是提出监控的需求。

  • 需求一:监控MySQL的状态,当状态发生异常,发出报警;

第二步,使用自定义脚本监控扩展Agent

Zabbix Server与Agent之间监控数据的采集主要是通过Zabbix Server主动向Agent询问某个Key的值,Agent会根据Key去调用相应的函数去获取这个值并返回给Server端。Zabbix 2.0.3的Agent本并没有内置MySQL的监控功能(但是Server端提供了相应的Template配置),所以我们需要使用Zabbix的User Parameters功能,为MySQL添加监控脚本。

对于需求一 ,我们采用mysqladmin这个工具来实现,命令如下:

$ mysqladmin -uroot -ppasswd ping
mysqld is alive

如果MySQL状态正常,会显示mysqld is alive,否则会提示连接不上。对于服务器端,mysqld is alive这样的句子不好理解,服务器端最好只接收1和0,1表示服务可用,0表示服务不可用。那么再改进一下这个命令,如下:

$ mysqladmin -uroot -ppasswd ping | grep -c alive

用户名和密码放在命令中对于以后的维护不好,所以我们在/var/lib/zbbix下创建一个包含MySQL用户名和密码的配置文件“.my.cnf”,如下

[client]user=root
host=localhost
password=password

有了这个文件后的命令变更为

HOME=/var/lib/zabbix mysqladmin ping | grep -c alive

做完这一步后需要做的就是,将这个监控命令添加到Zabbix Agent中,并与一个Key对应,这样Zabbox Server就能通过这个Key获取MySQL的状态了。我们使用mysql.ping作为MySQL状态的Key。

首先在去除/usr/local/etc/zabbix/zabbix_agentd.conf中“Include=/usr/local/etc/zabbix_agentd.conf.d/”这一行的注释符。

其次,在/usr/local/etc/zabbix_agentd.conf.d/目录下创建userparameter_mysql.conf文件。在文件中添加如下命令:

UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive

这个命令中”UserParameter”表示这是一个用户自定义的脚本;“=”号后是脚本的内容;“mysql.ping”是Key,“,”号后的命令会在Zabbix Server向Agent发起获取“mysql.ping”这个key的请求时被调用,并将返回值返回给Server。 保存并退出后可以使用下面的命令测试是否正常工作。  添加后需要重启客户端。否则如果zabbix server不在本机则不能识别key

$ zabbix_agentd -t mysql.ping
mysql.ping [t|1]

[t|1]中的1表示的是返回的值(这里用zabbix_agentd测试一下最后的只很有必要,因为可能这里的值和你命令得到的值可能不一样,这里得到的值才是server最后会得到的值)

同时,在Server端也可以使用使用zabbix_get命令来测试从Server端获取指定的Client端的数据,如下:

$ zabbix_get -s 127.0.0.1 -k mysql.ping
1

下面是实际应用中监控监控 TSSTimingTaskService项目  

由于没有端口因此采用自定义脚本监控

1.vim /etc/zabbix/zabbix_agentd.conf

添加:Include=/etc/zabbix/zabbix_agentd.d/

2.创建 vim /etc/zabbix/zabbix_agentd.d/userparameter_TSSTimingTaskService.conf 文件

这里的这个文件中间命名可以自由(TSSTimingTaskService)必须要以.conf 结尾

cat  /etc/zabbix/zabbix_agentd.d/userparameter_TSSTimingTaskService.conf

UserParameter=TSST.test,ps -ef | grep TSSTimingTaskService | grep -c '^tomcat'

3.重启客户端

4.测试

客户端测试:

[root@HK_TSS6 ~]# zabbix_agentd -t TSST.test 
   
 
   

     TSST.test                                     [t|1] 
   
 
   

     server端测试: 
   
 
   

      [root@HK-zabbix-server ~]# zabbix_get -s HK_TSS6 -k TSST.test

1

5.zabbix web界面配置:

zabbix添加监控域名 zabbix添加自定义监控项_开发工具

 

zabbix添加监控域名 zabbix添加自定义监控项_开发工具_02