zabbix執行遠程命令


概述
監控,有的人只把他當做報警使用,出現問題之后打開跑回家打開電腦,巴拉巴拉的處理掉,大多數時候都是一些小問題,為何不讓 zabbix幫你把這些事情處理掉呢?和朋友具體,收到xx硬盤空間慢了、xx服務器高負載等問題,你要回家處理?多掃興
瞧瞧zabbix遠程執行命令可以做些什么吧:
  • 重啟應用(Apache、nginx、MySQL等等)
  • 使用IPMI接口重啟服務器
  • 自動釋放磁盤空間(刪除老文件,清除/tmp目錄等等)
  • CPU過載時講一個虛擬機遷移到另外一台物理服務器
  • 雲環境下,一台服務器CPU\硬盤\內存\其他硬件資源不足的情況下,可以自動添加過去
 
創建一個報警,記得使用郵件報警嗎?呵呵,實際上,我們把發送郵件的操作改成執行遠程命令就行了
 
備注:zabbix代理不支持遠程命令
遠程命令最大長度為255字符,同時支持多個遠程命令,如需要執行多條命令,只需要另起一行寫命令即可,還有,遠程命令可以使用宏變量。
 
接下來我將一步一步告訴大家如何設置遠程命令
配置
首先我們需要在zabbix客戶配置文件開啟對遠程命令的支持,編輯zabbix_agentd.conf,修改
EnableRemoteCommands=1
重啟客戶端
備注:Aive zabbix不支持遠程命令
然后配置action,Configuration->Actions,選擇Operation選項卡,operation type改成Remote Command,選擇遠程命令類似 (IPMI, Custom script, SSH, Telnet, Global script),輸入遠命令
配置Action
  • 在Operations選顯卡中選擇Remote command
  • 選擇遠程命令類型(IPMI, Custom script, SSH, Telnet, Global script)
  • 寫上遠程命令
示例:
sudo/etc/init.d/apache restart
上面例子用來在出現狀況的情況下重啟Apache,務必全包zabbix agent能夠執行這個命令.
備注:
1.sudo不用多說了,zabbix用戶沒有運行某些命令的權限,必須加上.
2.遠程命令,自然是在遠程的主機后台運行。
Conditions選項卡定義了什么條件下,這個遠程命令會被執行,其實這個和前面說的action真沒什么區別,大家都能看懂。下圖的意思是,在非維護時間Apache應用出現狀況,並且嚴重性級別為Disaster。滿足條件之后,就開始執行命令了。
訪問權限
確保你的zabbix用戶有執行權限,如果某些命令需要root權限,那么請使用sudo
# visudo
編輯sudoer文件,zabbix用戶便可以執行Apache restart命令了
# allows 'zabbix' user to run all commands without password.
zabbix ALL=NOPASSWD:ALL
# allows 'zabbix' user to restart apache without password.
zabbix ALL=NOPASSWD:/etc/init.d/apache restart
備注:在某些情況下,zabbix需要sudo才能執行命令,請先在/etc/sudoer開啟requiretty.具體的方法,請百度或者google.
使用多種接口執行遠程命令
如果目標系統支持多種接口:zabbix agent、IPMI、遠程命令(默認),請看如下一些實例
示例1
通過zabbix檢測到的一些問題,然后自動重啟 windows
參數 描述
Operation type Remote command
Type Custom script
Command c:\windows\system32\shutdown.exe -r -
示例2
使用IPMI重啟服務器
參數 描述
Operation type Remote command
Type IPMI
Command reset on
示例三
使用IPMI關機
參數 描述
Operation type Remote command
Type IPMI
Command power off


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM