根據上篇配置的環境,接下來說明在zabbix agent上執行遠程命令是如何完成的。 遠程命令受到一些限制: (1)在agent執行遠程命令必須給zabbix用戶定義sudu規則: (2)不支持active模式的agent (3)不支持代理模式 (4)命令長度不得超過255個字元 (5)可以使用巨集 ...
根據上篇配置的環境,接下來說明在zabbix agent上執行遠程命令是如何完成的。
遠程命令受到一些限制:
(1)在agent執行遠程命令必須給zabbix用戶定義sudu規則:
(2)不支持active模式的agent
(3)不支持代理模式
(4)命令長度不得超過255個字元
(5)可以使用巨集
(6)zabbix-server僅執行命令,而不關心命令是否執行成功
修改一下agent的配置文件,vim /etc/zabbix/zabbix_agentd.conf 把EnableRemoteCommands和LogRemoteCommands這兩個參數都設置為1,第一個參數表示支持遠程命令執行,第二個表示該操作將被記錄到日誌中。
回到zabbix web gui界面在client主機下定義一個新的item:
此處我設置的數據類型為Boolean,非真(1)即假(0),item key 為監聽tcp的80埠。
item定義好了
再為該item定義一個trigger
Expression表示最後一次取值是否為0,如果為0則觸發該trigger。
trigger也定義好了
為該trigger定義一個action:
制定了在哪台agent上執行命令為client,註意執行的命令前要添加sudo。
action定義好了
因為執行命令的用戶為zabbix。此時該命令還無法執行,還得去sudoer文件去為zabbix用戶添加執行許可權,在agent端執行命令visudo
添加一行,表示zabbix可以在任何主機(過來請求執行命令的主機)執行任何命令,而不需要密碼。
Defaults這個參數表示要求執行命令的用戶必須通過tty終端登錄了該主機,而執行遠程命令的zabbix不會登陸系統,所以必須得註釋掉該參數。
手動啟動httpd服務發現服務雖然啟動了但報了一個錯:
vim /etc/hosts
把第一行的主機名修改為client(當前主機名)。停掉httpd服務。這時遠程命令就會自動執行了,ss -tnl 查看80埠會被監聽了。查看一下日誌最後一行顯示命令已經執行:
接下來自定義個item key,vim /etc/zabbix/zabbix_agentd.conf
這個目錄存放自定義item key的文件, 自定義item key的語法為:UserParameter=key,command或UserParameter=key[*],command後面的那個表示是可以帶參數,參數在command中的調用為$1,$2..
vim /etc/zabbix/zabbix_agentd.d/os.conf
自定義的item key名字為os.memory.free 命令取得的值為空閑的記憶體數,還得重啟agent服務 service zabbix-agent restart。
回到gui界面,重新定義一個item
再為該item定義一個graph
此圖下麵已經顯示所取得平均值了。
還有些等下次更新。