我在运行 Nagios 的 CentOS 服务器上运行了更新,更新后,Nagios 无法启动。
日志中的错误是:
无法获取文件 /var/run/nagios.pid 的锁定:权限被拒绝
因此,我检查了一下,发现 /var/run 中没有 Nagios 的 pid 文件。我创建了一个并赋予它以下权限:
-rwxr--r-- 1 nagios nagios 6 5月31日 11:58 nagios.pid
Nagios 随后启动并且似乎运行正常。
唯一的问题是,它现在拒绝停止,所以我无法重新启动它来添加要监控的新服务器和服务!
当我发出命令“service nagios stop”时,我得到[FAILED],但是没有任何内容输出到日志中,并且服务仍然运行。
关于如何立即停止该服务,您有什么想法吗?
我正在运行通过 yum 从 RPMForge 存储库安装的 RPM 版本。服务器是 CenotOS 5.5。
答案1
如果你不想更改/var/运行文件夹本身,你可以配置 nagios 将锁定文件存储在系统的任何位置,方法是将下面的行添加到你的nagios配置文件文件。只要你指向锁定文件选择 nagios 有权访问的目录来创建、修改和删除文件,然后您就可以开始了。
您甚至可以通过创建如下目录将锁文件存储在 nagios 安装目录中:/usr/lib/nagios/var
lock_file=/usr/lib/nagios/var
答案2
首先,找出pid
进程nagios
是什么:
$ ps aux | grep nagios
然后您可以使用此命令重新启动该服务:
kill -HUP <nagios_pid>
并停止:
kill <nagios_pid>
要自动停止 nagios,您应该将其pid
放入 中/var/run/nagios.pid
。检查一下。
答案3
正如 Bart B 上面所说,不是chmod 777 永远不要在生产系统上对任何目录进行修改,除非有充分的理由并且您知道自己在做什么。这是一个快速修复,但这是不是解决方案。
至少对我来说,这个问题的正确解决方案是更新 nagios.cfg Nagios 配置文件(我的是 /etc/nagios/nagios.cfg),并改变这行:
lock_file=/var/run/nagios.pid
更改为:
lock_file=/var/nagios/nagios.pid
锁定文件在 /etc/init.d/nagios 服务配置文件中设置为 /var/nagios/nagios.pid,但显然被 nagios.cfg 中的上述值覆盖
然后您可以重新启动 Nagios 服务/守护进程:
service nagios restart
那就可以了。
答案4
如果 Nagios 服务器在 CentOS 6.x 上的启动/停止出现问题,我使用以下命令:/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
它在我的 Nagios 服务器上运行。