今天,遇到一個棘手的問題,在zabbix agent端,執行shell腳本獲取java進程的信息,可以取到值,但是,在zabbix server端,執行./zabbix_get的腳本獲取值爲空。
首先,想到可能是zabbix用戶在agent端的權限問題,然後在/etc/sudoers加入了zabbix的sudo權限,但是取到的值還是爲空。
之後,想到,可能所執行的腳本中,需要在執行的命令,比如jstat之前加上 sudo 命令,但是取到的值還是爲空,這時候我已經不淡定了。
後來,請教了公司的運維大神,可能是 sudo不允許遠程執行,需要將 /etc/sudoers中的一行註釋就可以了。如下
# Disable "ssh hostname sudo<cmd>", because it will show the password in clear.
# You have to run "ssh -t hostname sudo <cmd>".
#
#Defaults requiretty #這行註釋就可以了