当前我监控1000+的服务器,动做有近200个,监控方式有短信、邮件与语音报警电话,若是动做配置有问题或者某个动做被关闭,就会致使某些报警没法触发,不能及时收到报警通知并处理。并且zabbix配置用户权限的时候,若是给某些用户部门管理员的话,他就能够本身修改动做,好比关闭,而后业务出现问题没法报警,虽然能够从zabbix审计里查看(我测试了,不少状况下用户本身关闭动做,审计是看不到的),但扯皮是浪费时间的。mysql
因此我本身写了一个程序判断当前动态是否有被关闭,若是有关闭就使用zabbix通知。web
下面是程序代码sql
[root@puppet bin]# cat check_zabbix_action_status.sh #!/bin/bash #this script is check zabbix action status ip='localhost' user='zabbix' pwd='zabbix' database="zabbix" port="3306" mysql_cmd="select count(*) from actions where status=1;" check_result=`/usr/bin/mysql -h$ip -u$user -p$pwd -P$port $database -Bse "$mysql_cmd"` echo $check_result
这个脚本就是登录mysql服务器,查看是否有状态为1(关闭)的,而后打印结果。bash
下面是在zabbix_agentd.conf里配置服务器
[root@puppet bin]# grep action /usr/local/zabbix/conf/zabbix_agentd.conf UserParameter=check_zabbix_action_status,sudo /usr/local/zabbix/bin/check_zabbix_action_status.sh
下面是在web里进行item添加ide
下面是在web里配置trigger测试
图形显示为this
其中0是当前没有关闭状态的动做,1就是有关闭状态的动做。spa
下面是出现报警时候的显示内容blog
报警基本是通常报警,就是使用短信通知。有需求的能够参考这个来定制。