今天,遇到一个棘手的问题,在zabbix agent端,执行shell脚本获取java进程的信息,可以取到值,但是,在zabbix server端,执行./zabbix_get的脚本获取值为空。

首先,想到可能是zabbix用户在agent端的权限问题,然后在/etc/sudoers加入了zabbixsudo权限,但是取到的值还是为空。

 

之后,想到,可能所执行的脚本中,需要在执行的命令,比如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   #这行注释就可以了