我正在尝试使用这个脚本来监视软件raids:https://github.com/linuxsquad/zabbix_mdraid
当我在zabbix_agentd.conf中有以下设置(使用SUDO)时:
UserParameter=mdraid[*], sudo /usr/local/bin/zabbix_mdraid.sh -m'$1' -$2'$3'
UserParameter=mdraid.discovery, sudo /usr/local/bin/zabbix_mdraid.sh -D并从Zabbix代理执行以下命令:
zabbix_get -s HOSTNAME -k mdraid[/dev/md0,d,1]我在zabbix_agentd.log中收到以下错误(“对不起,您必须有一个tty才能运行sudo"):
25547:20141229:090259.961 Requested [mdraid[/dev/md0,d,1]]
25547:20141229:090259.961 In zbx_popen() command:' sudo /usr/local/bin/zabbix_mdraid.sh -m'/dev/md0' -d'1''
25547:20141229:090259.962 End of zbx_popen():7
25552:20141229:090259.962 zbx_popen(): executing script
sudo 25546:20141229:090259.970 listener #1 [processing request]
25546:20141229:090259.970 Requested [system.cpu.util[,steal]]
25546:20141229:090259.970 Sending back [0.000000]
25546:20141229:090259.970 listener #1 [waiting for connection]
: sorry, you must have a tty to run sudo是的,我已经调整了/etc/sudoers文件:
/etc/sudoers:
zabbix ALL=(ALL) NOPASSWD: ALL
Defaults:zabbix !requiretty我还尝试注释掉/etc/sudoers中包含requiretty的所有行
当我切换到zabbix用户并手动运行脚本时:
-bash-4.1$ sudo /usr/local/bin/zabbix_mdraid.sh -m'/dev/md0' -eState
clean,degraded-bash-4.1$它工作得很好。所以这个脚本很好,而且/etc/sudoers不需要zabbix用户的tty。还有什么地方是错的呢?你有什么办法让它工作吗?
顺便说一下,这是RHEL 6.5 (代理、代理和服务器)
发布于 2015-01-20 21:29:38
在监视XenServer主机(基于CentOS)上的MegaRAID硬件时,我也遇到了同样的问题。最后,我只需要注释掉这一行:
Defaults requiretty来自/etc/sudoers的,并且它起作用了。据我所知,它可以被安全地删除,并将在未来被RedHat删除。我不需要向Defaults行添加任何内容(就像您对zabbix所做的那样)。
当然,最后一个测试适用于您,因为当您手动运行该命令时,您所做的是在tty中;)
发布于 2019-08-22 19:04:04
尝试禁用SELinux:
sudo setenforce 0在RHEL和Centos中,默认情况下会启用该功能
https://stackoverflow.com/questions/27705272
复制相似问题