我安装了一个全新的 nagios 服务器,并安装了全新的 nconf。我只需要看看 nconf 如何为 ngaios 生成配置文件。
但当我点击生成 Nagios 配置, 我有:
Nagios Core 4.0.5
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 04-11-2014
License: GPL
Website: http://www.nagios.org
Reading configuration data...
Error: Cannot open main configuration file '/opt/htdocs/nconf/temp/test/Default_Collector.cfg' for reading!
Error processing main config file!
我以为 nconf 是生成文件的,但它想读取一个文件。我不知道我应该向 nconf 提供什么文件。好困惑,求助。
但 Default_Collector.cfg 文件不存在. 没有这样的目录 /opt/htdocs/nconf/temp/test/。/opt/htdocs/nconf/temp/ 中为空
编辑:权限设置
[root@localhost nconf]# ll |grep ^d
drwxr-xr-x 2 apache root 4096 Dec 11 2011 ADD-ONS
drwxr-xr-x 3 apache root 4096 Dec 11 2011 bin
drwxrwxr-x 2 apache apache 4096 Apr 30 11:14 config
drwxr-xr-x 2 apache root 4096 Dec 11 2011 config.orig
drwxr-xr-x 3 apache root 4096 Dec 11 2011 design_templates
drwxr-xr-x 3 apache root 4096 Dec 11 2011 img
drwxr-xr-x 9 apache root 4096 Dec 11 2011 include
drwxrwxr-x 2 apache apache 4096 Apr 30 11:28 output
drwxrwxr-x 2 apache apache 4096 Dec 11 2011 static_cfg
drwxrwxr-x 2 apache apache 4096 Apr 30 11:29 temp
[root@localhost nconf]# ps -ef|grep apache
root 15568 15528 0 10:14 pts/0 00:00:00 grep apache
apache 26125 1 0 Apr29 ? 00:00:01 /usr/local/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
apache 26126 26125 0 Apr29 ? 00:00:00 /usr/bin/php-cgi
apache 26127 26126 0 Apr29 ? 00:00:15 /usr/bin/php-cgi
答案1
是的,我搞定了。就我而言,这是一个全新的 CentOS 6.8 安装,所有默认或 epel 软件包均通过 yum 安装(无需手动为系统安装)。
无论如何,支持 perl 脚本 nconf/bin/generate_config.pl 至少有两个 perl 包依赖项是我遗漏的,因此失败了。虽然运行 generate_config.pl 的包装器脚本尝试检测失败,但它没有看到来自 perl 脚本的错误,因此包装器脚本继续并实质上尝试从零开始创建新的 nagios 配置(因为 generate_config.pl 没有生成任何内容),因此出现此错误。
运行yum install perl-DBI perl-DBD-MySQL
解决了我的问题,但也可能是缺少其他 perl 包或包装器脚本无法识别来自 generate_config.pl 的不同错误。我的建议是尝试手动运行 perl 脚本,例如sudo -u apache /opt/nconf/bin/generate_config.pl
。一旦您确实使该部分正常工作,您将需要清理 /opt/nconf/temp 文件夹,然后 web nconf 应用程序才会允许您生成另一个配置集。
祝你好运!
答案2
确保运行 nconf 的用户能够写入以下目录。
/opt/htdocs/nconf/config
/opt/htdocs/nconf/output
/opt/htdocs/nconf/static_cfg
/opt/htdocs/nconf/temp
答案3
对于当前的 Ubuntu 18.04,这似乎是由于当前 perl (5.26.1) 不允许使用哈希作为参考造成的,如https://stackoverflow.com/questions/11044211/using-hash-as-a-reference-is-deprecated:
Can't use a hash as a reference at /var/www/nconf/bin/lib/NConf/ExportNagios.pm line 1274.
你可以通过手动运行generate_config.pl来查看更多的错误(Web生成器并没有真正说明发生了什么),如下所示:sudo -u www-data bin/generate_config.pl
有关可能修复的提示位于https://github.com/nconf/nconf/issues/37