Error: Could not open command file ‘/usr/local/nagios/var/rw/nagios.cmd’ for update!
出现这个问题,一般是apache服务运行的账户对nagios.cmd没有权限。所以导致报错。
常见的解决办法是直接修改nagios.cmd的文件权限,直接改为777,问题即可解决。
但是在下次重新启动nagios服务时,此文件权限会又会变为原先的权限。
prw-rw—-. 1 nagios nagios 0 May 9 23:13 nagios.cmd
解决办法1:
修改apache的运行账户为nagios账户。这个nagios账户就是运行nagios服务的账户,一般我们会用”nagios”用户来运行。
但是这样可能会对apache有某种程度影响。如果是本机单纯跑nagios监控那就无所谓了。
解决办法2:
将naigos的运行账户改为apache的运行账户。
上面两种方法总结一句话就是apache和nagios的运行账户必须是同一个。
由于实际环境限制,它俩又不能用同一个账户,我采用下面方法。
解决方法3:
在nagios启动脚本上下手。
[root@localhost ~]# vi /etc/rc.d/init.d/nagios #截取其中一部分
case "$1" in start) echo -n "Starting nagios:" $NagiosBin -v $NagiosCfgFile > /dev/null 2>&1; if [ $? -eq 0 ]; then su - $NagiosUser -c "touch $NagiosVarDir/nagios.log $NagiosRetentionFile" rm -f $NagiosCommandFile touch $NagiosRunFile chown $NagiosUser:$NagiosGroup $NagiosRunFile $NagiosBin -d $NagiosCfgFile if [ -d $NagiosLockDir ]; then touch $NagiosLockDir/$NagiosLockFile; fi echo " done." chmod 777 /usr/local/nagios/var/rw/nagios.cmd exit 0 else echo "CONFIG ERROR! Start aborted. Check your Nagios configuration." exit 1 fi ;;
在 echo ” done.”(13行)下面添加一句chmod 777 /usr/local/nagios/var/rw/nagios.cmd
目的就是为了启动nagios的时候顺便执行一下修改权限。
另外还需要修改restart)部分 (重启nagios),这里第三种方式我认为最方便。
这样一来支持执行 service nagios start/restart 时就可以自动修改文件权限。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/2567.html