一 zabbix自定义监控实现思路

我在前面有写到:

  • zabbix3.x服务端安装和配置

  • zabbix3.x客户端安装和配置

  • zabbix监控memcached

实际上我们要想使用zabbix来监控一些服务的原理很简单,步骤分别是:

  1. 写一个脚本用于获取待监控服务的一些状态信息

  2. 在zabbix客户端的配置文件zabbix_agentd.conf中添加上自定义的“UserParameter”,目的是方便zabbix调用我们上面写的那个脚本去获取待监控服务的信息

  3. 在zabbix服务端使用zabbix_get测试是否能够通过第二步定义的参数去获取zabbix客户端收集的数据

  4. 在zabbix服务端的web界面中新建模板,同时第一步的脚本能够获取什么信息就添加上什么监控项,“键值”设置成前面配置的“UserParameter”的值

  5. 数据显示图表,这一步就很简单了,直接新建图形并选择上一步的监控项来生成动态图表即可

下面我将以“如何在zabbix中监控自定义端口的连接数”来举例说明

二 zabbix自定义监控某个端口的连接数

(1)zabbix客户端添加获取连接数的脚本:

[root@prx01 ~]# cd /usr/local/zabbix/scripts
[root@prx01 scripts]# vim 9080_port.sh

其内容如下:

#!/bin/sh

netstat -an | grep 192.168.10.104:9080 | grep ESTABLISHED | wc -l

这个脚本很简单,就是获取9080端口已经建立的连接,并用“wc -l”来统计一共多少行

注:/usr/local/zabbix/scripts这个路径中的scripts目录本来是不存在的,是我自己新建的

(2)给脚本添加执行权限:

[root@prx01 scripts]# chmod a+x 9080_port.sh

(3)修改zabbix_agentd配置文件,添加一个“UserParameter”:

[root@prx01 scripts]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

添加如下内容:

UserParameter=9080connectNum,/usr/local/zabbix/scripts/9080_port.sh

注:这里的“9080connectNum”就是item key,不能跟已有的重复,并且后面需要使用

(4)重启zabbix_agentd:

[root@prx01 scripts]# service zabbix_agentd restart

(5)zabbix服务端测试获取数据:

[root@nmp01 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.10.104 -k 9080connectNum

输出如下:

587

注:上面的192.168.10.104就是指的客户端的IP

(6)zabbix的web界面中新建模板、监控项以及图形:

i)新建模板:

配置 –> 模板 –> 创建模板:

模版名称 :Template Port9080

zabbix自定义监控实现思路以及自定义监控某个端口的连接数_第1张图片

ii)给该模板添加监控项:

打开该模板 –> 监控项 –> 创建监控项:

名称:9080端口连接数

键值:9080connectNum

其他随意

zabbix自定义监控实现思路以及自定义监控某个端口的连接数_第2张图片

iii)添加图形:

打开该模板 –> 图形 –> 创建图形:

名称:9080端口连接数

监控项:添加上刚才创建的监控项

zabbix自定义监控实现思路以及自定义监控某个端口的连接数_第3张图片

(7)最后完成之后效果如下:

zabbix自定义监控实现思路以及自定义监控某个端口的连接数_第4张图片

到此,我们使用zabbix自定义监控一个端口的连接数的配置就完成了。当然,根据我上面提到的原理,使用zabbix来监控一些其他服务也将不再是难事了