我们在另外两台服务器上运行着Nagios 3.2.0的工作版本,但在这些新服务器上,我们使用apt-get install安装了它,但一直遇到以下问题。权限和配置文件都是安装时默认的,将其与我们拥有的 Nagios 工作版本进行比较时,一切似乎都是正确的......
注意:Nagios网站正在运行,但是当我单击左侧的任何选项时,我得到这个...
Error: Could not read object configuration data!
Verify configuration options using the -v command-line option to check for errors.
Check the Nagios log file for messages relating to startup or status data errors.
运行
sudo /usr/sbin/nagios3 -v /etc/nagios3/nagios.cfg
给:
...
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight check
/var/log/nagios3/nagios.log 没有给出任何错误,只是一堆:
...
[1389054450] Auto-save of retention data completed successfully.
[1389058050] Auto-save of retention data completed successfully.
不是权限问题,也没有尝试将所有内容更改为nagios用户和组,但没有运气:
drwxr-xr-x 4 root root 4096 2013-12-10 16:35 .
drwxr-xr-x 141 root root 12288 2014-01-06 16:27 ..
-rw-r--r-- 1 root root 1905 2011-06-08 01:07 apache2.conf
-rw-r--r-- 1 root root 12218 2011-06-08 01:08 cgi.cfg
-rw-r--r-- 1 root root 2441 2011-06-08 01:08 commands.cfg
drwxr-xr-x 2 root root 4096 2013-12-10 16:35 conf.d
-rw-r--r-- 1 root root 26 2013-12-10 16:35 htpasswd.users
-rw-r--r-- 1 root root 43769 2011-06-08 01:08 nagios.cfg
-rw-r----- 1 root nagios 1293 2011-06-08 01:07 resource.cfg
drwxr-xr-x 2 root root 4096 2013-12-10 16:35 stylesheets
将其改回根目录。
停止了Nagios并重新启动,但仍然一无所获。请帮忙!
这是一个权限问题,Web服务器用户应该能够访问nagios目录结构。请尝试以下操作。假设您的 Web 服务器未以根用户身份运行。
chgrp -R webserver_user /var/cache/nagiosx/
并检查其他 Nagios 目录以获取正确的权限。
将 Nagios 作为守护进程运行
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
几天前解决了。这些服务器上的Apache很久以前就被配置为以不同的用户身份运行,而不是www-data。这并没有解决我们当时遇到的问题,所以我们保持原样,忘记了 apache。现在我们有Nagios在apache上运行,这导致了问题。所以这最终是一个权限问题。
注意:检查是否是权限问题时,不要只检查文件和目录权限,还要检查需要访问它们的内容是否确实在其配置中以该用户的身份运行。在这种情况下,它已更改为/etc/apache2/envvars
吸取的教训。
就我而言(Nagios 4,Centos 7),由于selinux权限,我收到了此错误(尽管没有将任何拒绝的痕迹记录到syslog中)。测试问题是否出在 selinux 上的简单方法:
- 加载页面,确认失败。
- 运行命令
getenforce
,应返回
强制。 - 运行命令
setenforce 0
。 - 重新加载页面。如果它现在有效,则错误与 selinux 权限有关。
自选:
- 运行命令
setenforce 1
。 - 重新加载页面,它应该再次失败。
有一个 SELinux 问题,如果您不喜欢关闭安全性,您可以仅为这种情况创建规则。
以人类可读的格式查看错误
audit2allow -a -w
让 audit2allow 创建 TE 允许规则
audit2allow -a -M nagios-www
semange nagios-www.pp
刷新并查看其工作情况
nagios 配置文件在 cgi 配置文件中引用,/etc/nagios3/cgi.cfg
. 检查该文件是否包含该行
main_config_file=/etc/nagios3/nagios.cfg
在我的情况下,它是/var/cache/nagios3 的权限。 您可以通过跟踪 CGI 来确认它,即 sudo su -s /bin/sh -c 'REQUEST_METHOD=GET strace -fo /tmp/strace.log /usr/lib/cgi-bin/nagios3/status.cgi' www-data
.
就我而言,Web 服务器无权访问/var/log/nagios/nagios.log
.
使用 EPEL 的 RPM 软件包从 Nagios 3.5 更新到 Nagios 4.3 后遇到了同样的问题。解决了安装包含 SELinux 配置文件 ( yum install nagios-selinux
) 的相应软件包的问题。有关更多详细信息:https://serverfault.com/q/894349/217522
就我而言,我必须为objects.cache文件带来更广泛的权限。就我而言,我的文件位于:/usr/local/nagios/var/objects.cache
希望这有帮助