Zabbix報警執行遠程命令

        日常Zabbix報警案例中,大多都是報警發送郵件,場景裏很少有需要報警後執行一個命令(啓動服務、清空磁盤空間、關停服務器);而今天就給大家講講最近需要做的事:報警後執行遠程命令

    首先講講需求吧,  遙遠的一天,小夥伴們用上了mongodb,而且需要大力使用,日後一些數據存儲在mongodb;從生產環境遷移數據進mongodb,那麼問題來了,經常聽到別人說,mongodb量大就掛了。mongodb有些數據是在程序當中被引用到,白天某個時刻掛了,那麼用戶、客服、運營就呼喚着了。。團隊中也在查問題,找原因,請教大神,升級版本,可還是掛了。。 目前掛了就是在啓動。。 小夥伴們不可能時常和電腦在一起,有時需要和妹紙在一起調情啦、上高地啦。剛好zabbix動作中有個遠程命令功能,那麼就通過它來解決問題。。

    

   遠程命令整個過程:  items -> triggers -> action -> remote commands

   配置過程:

   1.創建一個mongodb items

   Configuration -> Hosts > Items

   wKioL1PN6SjB5IWmAAGqLQRk_Zg461.jpg

   spacer.gif

  2.配置mongodb triggers

  Configuration -> Hosts > Triggers

   wKioL1PN6U6yzifwAADLF5mn3xs708.jpg


  3.配置遠程命令的actions

  Configuraction -> Actions

   wKiom1PN6GbRPiw3AAGpMejev9A604.jpg

  條件選擇觸發器值爲PROBLEM、觸發器爲上面的mongodb觸發器spacer.gif

wKiom1PN6H3iYRcnAAGGwNkM9JM812.jpg

  執行次數爲5次,每次間隔60秒

  操作類型爲:遠程命令

  類型爲:自定義腳本

  命令:具體的指令。內容將貼在下面。

  wKiom1PN6JrznY7mAAORPm0zyH8222.jpg

  至此整個過程都配完了,,但是現在mongodb掛了,actions會執行啓動mongodb命令麼。?  肯定不會。

  遠程命令前提條件,需要在配置文件開啓遠程命令參數,並啓動agentd。

  echo 'EnableRemoteCommands=1' >> /usr/local/zabbix/zabbix_agentd.conf

  /etc/init.d/zabbix_agentd restart

  #注意,遠程命令不支持在zabbix agentd active模式。。切記。。

 

   腳本內容:

   cat /usr/local/mongodb/start_mongod.sh

   #!/bin/bash

   /usr/local/mongodb/mongod -f /usr/local/mongodb/mongod.conf  >> /tmp/start.log

   #注意,zabbix啓動用戶,需要能執行上述命令,也就是需要sudo賦權

   

   那麼現在,已經全部完成,總結一下配置過程

   1.在agentd配置文件中開啓EnableRemoteCommands參數

   2.配置actions裏的Remote Comand

   3.Commands裏的腳本製作


   故障演示

   幹掉mongodb

   #killall mongod

   

   過了採集時間,zabbix將會把triggers置爲problem,同時觸發actions。記錄裏顯示如下

   Administration -> Audit -> Actions

wKioL1PN6dbCLE6gAAC5ROXttiU457.jpg

   如果配置正確,那麼audit一定會產生一條remote commnad記錄。

   有誤1,Audit無記錄,查下配置文件、actions配置

   有誤2,Audit有記錄,但mongodb卻未啓動,腳本有問題,調試一下。。

   希望這篇文章能幫助大家,tks。 - -

  

  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章