需求:表中监控主机添加自定义监控项。
自定义监控项如下:
ps -ef | grep dmb_lsn_2dfa | grep -v ADMIN | awk '{if $3=="1") print $2;}'| wc -l
ps -ef | grep sok_lsn_2dfa | grep -v ADMIN | awk '{if ($3=="1") print $2;}' |wc -l
ps -ef | grep KCORE | awk '{if($3==1)print $2}' |wc -l
项目名 | 主机名 |
---|---|
支付平台 | 10.20.56.8 |
支付平台 | … |
支付平台 | 10.20.20.8 |
支付平台 | 10.10.40.6 |
分析:可以看到三个监控项有共同之处,除了dmb_lsn_2dfa,sok_lsn_2dfa ,KCORE 不同之外,其余基本相同,故可以将其设为变量。
1.添加脚本
进入etc/zabbix目录下:
mkdir bin
touch procMonitor.sh
vim procMonitor.sh
在procMonitor.sh文件中写入如下脚本:
#!/bin/bash
proc_name=$1
ps -ef | grep $proc_name | grep -v ADMIN | awk '{if ($3=="1") print $2;}'|wc -l
测试脚本是否正确:
sh procMonitor.sh zabbix
返回数字1则说明正确。
2.修改配置文件,配置自定义监控项
由zabbix_agentd.conf配置文件中Include得知,配置文件会自动扫描/etc/zabbix/zabbix_agentd.d/下面所有以.conf结尾的文件。故在/etc/zabbix/zabbix_agentd.d/下新建procMonitor.conf文件,文件中加入如下字段(即将自定义监控项加入zabbix)
UserParameter=procMonitor[*],bash /etc/zabbix/bin/procMonitor.sh $1
3.进入zabbix页面,新建模板
由于多台主机添加的监控项相同,故使用模板进行添加。
4.添加监控项
自定义的监控项无法在键值中选择,故只能手工输入,注意不要输错。
添加完如下所示:
5.新建触发器
监控项的含义为:当监控到该进程时值为1,故触发器设置为监控项最新值为0时告警。
触发器添加完毕如下:
6.查看最新数据
找到对应主机,在最新数据中查看是否有数据,即1。有则配置成功。