zabbix自定义监控规则

这里先需要再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端监控

键值需要自己输入,选择里面是没有的

未分类

添加触发器

未分类

查看结果

未分类