1. 程式人生 > >zabbix執行遠程命令

zabbix執行遠程命令

最大的 好處 ebo proxy 系統 init.d tar pass 不能

Remote command 最大的好處是什麽呢? 是自動。 Zabbix會根據配置的條件,去執行對應的命令,下面看看Remote command的應用場景。

    • 應用無法響應時,自動重啟某些應用。
    • 當服務器不響應時,使用IPMI的“reboot”命令重啟服務器。
    • 在磁盤要滿了的情況下,自動刪除一些文件(比如/tmp)。
    • 根據CPU負載,自動進行虛擬機調配。
    • 彈性計算,根據系統情況,新增或刪除雲節點。

Zabbix無法通過Zabbix Proxy向Zabbix Agent發送,一定要從Zabbix Server 發起。而且,發送的命令長度也有限制,即不能超過255個字符,這個對於一般命令綽綽有余了,只要不是cat某個文件之類的,都足夠了。如果在多行寫多個命令,Zabbix會按照順序執行。而且在Remote command中,還支持Macro定義。

Remote command稍顯復雜。在Agent上執行的自定義腳本(即Custom scripts)一定要在Zabbix_agentd.conf中預先定義,而且在zabbix_agentd.conf中“EnableRemoteCommands”這一項要設置為1,否則無法遠程執行命令。這是必然的,因為Active默認的Zabbix Agent其實根本沒有在服務器上安裝Zabbix Agent,怎麽能發送命令給它執行呢?

對於遠程執行命令,權限也是個問題。 默認情況下,Zabbix是沒有權限來重啟系統服務的,如果Zabbix用戶想要有某個權限,需要修改下sudoer文件。

# visudo
#允許“Zabbix”用戶不需要密碼就可以運行所有root權限的命令
zabbix ALL=NOPASSWD: ALL
#允許“zabbix”用戶可以在不需要密碼的情況下運行/etc/init.d/httpd restart ,即重啟apache
zabbix ALL=NOPASSWD: /etc/init.d/httpd restart

1)zabbix_server 登錄到 zabbix_proxy的python腳本 restart_tomcat_69.py

zabbix執行遠程命令