软件版本:
icinga-1.13.0-0.el7.centos.x86_64
nagios-plugins-all-2.0.3-3.el7.x86_64
CentOS 7.3.1611
[1484095979] 执行命令 '/check_ping' 时出错:没有该文件或目录。请确保该文件确实存在(如果已设置,则在 PATH 中)且可执行!
[1484095979] 执行命令 '/check_swap' 时出错:没有该文件或目录。请确保该文件确实存在(如果已设置,则在 PATH 中)且可执行!
[1484095989] 执行命令 '/check_ssh' 时出错:没有该文件或目录。请确保该文件确实存在(如果已设置,则在 PATH 中)且可执行!
然而 resources.cfg 包含行 $USER1$=/usr/lib64/nagios/plugins
,并且插件文件都是 -rwxr-xr-x 并且拥有 root:root,就像在其他正在运行的 Icinga 机器上一样。
SELinux 已禁用。
/var/log/secure 包含我不明白的行。
1 月 10 日 15:25:55 bnx-aakadsnmp polkitd[660]: 已为 unix-process:24805:242041525 注册的身份验证代理(系统总线名称:1.9697 [/usr/bin/pkttyagent --notify-fd 5 --fallback],对象路径 /org/freedesktop/PolicyKit1/AuthenticationAgent,语言环境 en_US.UTF-8) 1 月 10 日 15:25:55 bnx-aakadsnmp polkitd[660]: 未为 unix-process:24805:242041525 注册的身份验证代理(系统总线名称:1.9697,对象路径 /org/freedesktop/PolicyKit1/AuthenticationAgent,语言环境 en_US.UTF-8)(已与总线断开连接) 1 月 10 日15:27:32 bnx-aakadsnmp polkitd[660]: unix-process:24831:242051221 的已注册身份验证代理(系统总线名称:1.9698 [/usr/bin/pkttyagent --notify-fd 5 --fallback],对象路径 /org/freedesktop/PolicyKit1/AuthenticationAgent,语言环境 en_US.UTF-8) 1 月 10 日 15:27:32 bnx-aakadsnmp polkitd[660]: unix-process:24831:242051221 的未注册身份验证代理(系统总线名称:1.9698,对象路径 /org/freedesktop/PolicyKit1/AuthenticationAgent,语言环境 en_US.UTF-8)(已与总线断开连接)
编辑:我可以通过向 /etc/sudoers 添加规则来允许 icinga 运行这些 nagios 二进制文件并编辑我的 command.cfg 文件以在命令之前运行 sudo 来解决此权限问题,例如
define command {
command_name check-host-icmp
command_line /usr/bin/sudo $USER1$/check_icmp -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
}
但这让我想知道是否没有更干净的方法。或者为什么 Nagios 插件需要由 root:root 拥有?