Zabbix 事件遠端命令操作-Remote commands
Remote commandshttps://www.zabbix.com/documentation/6.0/en/manual/config/notifications/action/operation/remote_command
官網說明:
應用遠端命令(Remote commands),您可以定義在某種條件下在受監控主機上自動執行某個預定義命令。
遠端命令是智慧主動監控的強大機制。
在該功能最明顯的用途中,您可以嘗試:
所以發生事件時Zabbix Server除了發送訊通知,也可以使用遠端執行預先定義的指令執行操作。
在zabbix_prxoy.conf設定檔加入EnableRemoteCommands=1
應用遠端命令(Remote commands),您可以定義在某種條件下在受監控主機上自動執行某個預定義命令。
遠端命令是智慧主動監控的強大機制。
在該功能最明顯的用途中,您可以嘗試:
- 如果某些應用程式((web server, middleware, CRM)沒有回應,則自動重新啟動。
- 如果遠端伺服器不回應請求,使用 IPMI命令reboot,重新啟動該伺服器。
- 如果磁碟空間不足,自動釋放磁碟空間(刪除舊文件,清理 /tmp)
- 根據 CPU 負載將虛擬機器從一個實體設備遷移到另一個實體設備
- 當CPU(磁碟、記憶體等)資源不足時為雲端環境新增節點
環璄設定
遠端主機
Agent Remote commands設定
在zabbix_agent2.conf設定檔加入AllowKey=system.run[*]在zabbix_prxoy.conf設定檔加入EnableRemoteCommands=1
# vi /etc/zabbix/zabbix_agent2.conf
---
---
AllowKey=system.run[*]
Plugins.SystemRun.LogRemoteCommands=1
---
Plugins.SystemRun.LogRemoteCommands=1,將遠端執行指令紀錄在zabbix_agent2.log
帳號存取權限
讓zabbix帳號可以使用sudo來存取特權命令。若要設定存取權限,可以不輸入密碼以root執行。如果無法執行visudo,請先安裝sudo套件。
# visudo
---
# 1.zabbix 不需輸入密碼執行所有commands。
zabbix ALL=NOPASSWD: ALL
# 2.zabbix 不需輸入密碼執行重啟apache2
zabbix ALL=NOPASSWD: /etc/init.d/apache2 restart
---
Zabbix WEB設定
Scripts設定
Scripts可以使用webhook、script、SSH、Telnet、IPMI,預先定義執行項目。在Administration > Scripts,右上方Create script新增
新增使用Script-agent df,透過Zabbix agent執行commands,檢查硬碟空間。
在commands寫入df -h > /tmp/dh-agent.txt,讓zabbix 使用df -h檢查硬碟空間。
在commands寫入sudo df -h > /tmp/dh-agent2.txt,讓bzabbix 使用sudo df -h檢查硬碟空間。
在commands寫入sudo df -h > /tmp/dh-agent2.txt,讓bzabbix 使用sudo df -h檢查硬碟空間。
新增使用Script-ssh df,使用密碼認證,設定帳號及密碼,透過SSH執行commands,檢查硬碟空間。
在commands寫入sudo df -h > /tmp/dh-ssh.txt,讓bee01使用sudo df -h檢查硬碟空間。
新增使用Script-Restart Apache2 init,透過Zabbix agent執行commands,重啟apache2 。
在commands寫入sudo /etc/init.d/apache2 restart,讓zabbix使用sudo重啟apache2。
Trigger actions設定
在Configuration> Actions> Trigger actions,右上方Create action新增。Actions
Name:Trigger severity Actions Escalations remotecommandType of calculation:A or B or C ,只有ABC有一個發生。
Conditions
A 觸發嚴重性大於或等於災難
B 觸發嚴重性大於或等於高
C 觸發嚴重性大於或等於警告
Operations
Steps:1 Send message to user groups: it via Line Notify步驟1 當事件發生時,使用Line notify自定訊息通知it群組。
Steps:1 Run script "agent df" on hosts: d11-agent2
Steps:2 Run script "ssh df" on hosts: d11-agent2
步驟2 當事件持續發生,在遠端主機d11執行Script-ssh df。
Steps:3 Run script "Restart Apache2 init" on hosts: dnode01
步驟3 當事件持續發生,在遠端主機dnode01執行Script-Restart Apache2 init。
Default operation step duration:1m
步驟時間為預設的1m (1分鐘)
Default operation step duration:1m
步驟時間為預設的1m (1分鐘)
測試結果
遠端主機d11
zabbix_agent2.log收到執行指令
/tmp查看生成的檔案,agent df的2個指令都有成功生成檔案,ssh df沒有成功權限可能要再調整。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。