一、客户端的设置
修改本次实验中的配置文件/usr/local/zabbix-agent/etc/zabbix_agentd.conf,添加:
UnsafeUserParameters=1
UserParameter=checkpsef[*],/usr/bin/bash /usr/bin/psef.sh $1 $2
自定义取键值的 /usr/bin/psef.sh脚本,很简单,就是通过第一个参数匹配准备监控的进程名称,第二个是该进程的数量,小于这个数量就返回键值0,大于这个数量则表示正常,返回1
获取自定义监控项返回值的shell脚本
[root@V76 jenkins]# cat /usr/bin/psef.sh
#!/bin/bash
procnum=`ps -ef | grep $1 | grep -v grep | grep -v $0 | wc -l`
#echo $procnum
if [ $2 -gt $procnum ];
then
echo 0
else
echo 1
fi
重启客户端
二、服务器端的配置
服务端的调用测试,把准备传递的参数放到监控项里面就能获取返回值了,这次监控的时服务器是否存在一个jenkins的进程,再根据这个返回值,配置触发器是否告警
在ZABBIX管理界面配置主机级别的监控项,键值手动输入,30秒检查一次
配置触发器,选中新建好的监控项,返回指定的键值即触发自定义级别的告警
三、测试配置的效果
手动kill掉jenkins的进程,触发告警
批量化部署的时候可将配置文件脚本的批量推送到客户端,并在模板级别设置监控项和触发器