zabbix agent 自定義KEY執行報錯的解決辦法


zabbix agent 自定義KEY時,報錯“Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all”


環境:Centos 6.4 X64 ,zabbix agent 2.4.2,YUM方式安裝


在zabbix_agentd.conf裏添加了一條監控項,用於統計系統當前各類TCP的連接數

UserParameter=custom.tcp.count[*],netstat -antpl | grep -i $1  | wc -l


重啓代理進程後,發現監控裏的值爲0,使用命令驗證KEY定義是否正確:

./zabbix_get -s 10.21.1.88 -p 10050  -k custom.tcp.count[TIME_WAIT]


返回錯誤信息如下:[日誌裏也能看到此信息]

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)


zabbix agent是yum安裝,該服務以zabbix用戶啓動的,初步懷疑應該是zabbix用戶權限無法正常執行配置文件中自定義KEY裏的命令。驗證後發現, 原來是netstat -lantup裏的-p參數需要root用戶才能使用。

解決方法1:

取消netstat中的“-p”參數,重啓agent後,數據正常

解決方法2:提升zabbix用戶權限

考慮到監控系統中,可能還會遇到類似需要提升權限執行的操作,所以還是採取使用sudo提升用戶權限。

*注意*:

1. 最好使用visudo -f /etc/sudoers 命令去配置。雖然visudo也是調用vi去編輯,但是保存時會進行語法檢查,有錯會有提示。
2./etc/sudoers文件是440只讀權限,修改前先改權限爲640,修改完成,再把權限恢復爲440


編輯/etc/sudoers文件 

#註釋掉此行
Defaults    requiretty   

#在最後加入如下行:
zabbix ALL=(ALL)   NOPASSWD:  /bin/netstat

#“NOPASSWD”表示zabbix用戶在執行命令時,無需輸入密碼;
# “/bin/netstat”,是zabbix用戶可以root身份執行的命令,如果有多個,請用逗號分隔,這樣的好處是做到權限的精細控制


sudo命令的具體使用參考:http://www.centoscn.com/CentOS/help/2014/0408/2741.html


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