I'm trying to disable active check for a service through Nagios web interface, but I cant make it. The Nagios instance is running on a Centos 5 distribution
Each time I try to stop the service I get this message : Could not open command file ‘/usr/local/nagios/var/rw/nagios.cmd’ for update!
Although I tried several proposals found on the web :
usermod -a -G nagios apache
chmod 666 /usr/local/nagios/var/rw/nagios.cmd
chown nagios.nagcmd /usr/local/nagios/var/rw
chmod u+rwx /usr/local/nagios/var/rw
chmod g+rwx /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
Each time rebooting nagios service afterwards of course.
Thanks for your help ! Cheers
This command is wrong:
usermod -a -G nagios apache
The group permissions on your rw directory and nagios.cmd file are nagcmd, not nagios. You need this, instead:
usermod -a -G nagcmd apache
This is what worked for me - or more specifically, on Ubuntu, it's:
usermod -a -G nagios www-data
Selinux can also cause this problem. You can check its status with:
sestatus
If current mode is enforcing, change it to permissive with:
setenforce 0
Then you may be able to commit your changes into nagios.cmd.
This is how you have to follow
service httpd stop
service nagios stop
usermod -G nagcmd nagios
usermod -G nagcmd apache
chown nagios:nagcmd /usr/local/nagios/var/rw
chown nagios:nagcmd /usr/local/nagios/var/rw/nagios.cmd
service httpd start
service nagios start
The following should fix the issue in Debian:
chown -R www-data:www-data /usr/local/nagios/var/
The only issue with this is selinux. Stop it and it will work fine. Credit goes to Nagios team.
I haven't seen this mentioned and it caught me out, it's worth checking the apache child processes are running as the apache user.
I built my apache from source and this uses daemon as the default user and group for the child processes so this had to be changed for this to work.
来源:https://stackoverflow.com/questions/26142420/nagios-could-not-open-command-file-usr-local-nagios-var-rw-nagios-cmd-for-up