这里先需要再zabbix端安装一个测试工具,用于测试自定义的规则是否可用
查看可以安装的工具:
yum list all |grep zabbix
进行安装
yum install zabbix-get.x86_64
现在举一个监控进程状态的例子
1、先编写脚本,这个脚本可以是python也可以是shell,下面以shell为例子
1)无需传参数的脚本
#!/bin/sh
ret_ok=1
ret_warn=0
info_count=`/etc/init.d/workflow status|grep running|wc -l` #进程在运行中
#echo ${info_count}
#process_count=$((${info_count}-0))
if [[ ${info_count} == 1 ]]; then
echo ${ret_ok} #成功返回1,打印出来就会被zabbix接收,zabbix触发器也是比较这个值
else
echo ${ret_warn} #失败返回0
fi
2)可以传参数的脚本
#!/bin/sh
ret_ok=1
ret_warn=0
model=$1 #接收一个参数,用于监控不同模块
info_count=`/etc/init.d/$1 status|grep running|wc -l`
#echo ${info_count}
#process_count=$((${info_count}-0))
if [[ ${info_count} == 1 ]]; then
echo ${ret_ok}
else
echo ${ret_warn}
fi
2、修改zabbix_client的配置文件
模块好像不用配置,我的没有配置,但是网上很多人都手动配置了一下
vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.d/*.conf
创建一个conf文件
vim /etc/zabbix/zabbix_agentd.d/check_process.conf
填入下面两行
UserParameter=checkworkflow,sh /home/zabbix/moniterworkflow.sh #监控单个模块,对应的是没有传参的那个脚本
UserParameter=checkmodel[*],sh /home/zabbix/moniall.sh $1 #监控多个模块,对应的是可以传参的脚本
3、再到zabbix-server上去测试一下
不传参的:
[root@localhost ~]# zabbix_get -s 200.200.169.212 -k "checkworkflow"
1
传参的
[root@localhost ~]# zabbix_get -s 200.200.169.212 -k "checkmodel[workflow]"
1
4、配置到web端监控
键值需要自己输入,选择里面是没有的
添加触发器
查看结果