當前我監控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
報警基本是通常報警,就是使用短信通知。有需求的能夠參考這個來定製。