nconf 无法生成 nagios 配置文件

nconf 无法生成 nagios 配置文件

我安装了一个全新的 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

相关内容