解决nagiosxi无法应用配置的问题
解决nagiosxi无法应用配置的问题
首先发现是nagiosxi提示数据库错误,进入 /usr/local/nagiosxi/scripts,利用repair_databases.sh进行修复。 修复完成后,可以正常进入nagiosxi。但是应用配置一直无法完成。
这时候做两个操作,点击应用配置后检查,tail -f /var/log/message,检查 tail -f /usr/local/nagiosxi/var/cmdsubsys.log。
根据提示,发现有错误。就是应用配置检查没有问题,但是就是无法完成。
再在这个脚本里面,运行reconfigure_nagios.sh,检查错误,发现https://localhost/nagiosxi/…/ccm/ 提示无法访问,证书协议错误的信息。
但是用正常的https://nagios.mydomain.com/nagiosxi/…/ccm/,就可以正常访问。
阅读reconfigure_nagios.sh的源码,发现里面有几个调用,对这些调用进行修改,将其中的url都改成https://nagios.mydomain.com/的形式。
[root@nagiosxi scripts]# vi reconfigure_nagios.sh
#!/bin/bash
# Copyright (c) 2008-2015 Nagios Enterprises, LLC. All rights reserved.
# $Id$
# exit codes:
# 1 config verification failed
# 2 nagiosql login failed
# 3 nagiosql import failed
# 4 reset_config_perms.sh failed
# 5 nagiosql_exportall.php failed (write configs failed)
# 6 /etc/init.d/nagios restart failed
# 7 db_connect failed
#
# Import data to NagiosQL
./import_nagiosql.sh
ret=$?
if [ $ret -gt 0 ]; then
exit $ret
fi
# Restart Nagios
./restart_nagios_with_export.sh
ret=$?
if [ $ret -gt 0 ]; then
exit $ret
fi
exit 0
- 继续对import_nagiosql.sh进行查看。
#!/bin/bash
# Copyright (c) 2008-2015 Nagios Enterprises, LLC. All rights reserved.
# $Id$
# Login to NagiosQL
/usr/bin/php -q nagiosql_login.php
#error handling
ret=$?
if [ $ret -gt 0 ]; then
echo "NAGIOSQL LOGIN FAILED!"
exit $ret
fi
# Import all data
/usr/bin/php -q nagiosql_importall.php
ret=$?
if [ $ret -gt 0 ]; then
echo "NAGIOSQL IMPORT FAILED!"
exit $ret
fi
- 继续对nagiosql_login.php进行查看
发现其中有一行
$url.=”://localhost”.$port.get_component_url_base(“ccm”,false).”/”; 修改为:
$url.="://nagios.mydomain.com".$port.get_component_url_base("ccm",false)."/";
- 继续对nagiosql_importall.php进行检查
同样的,将$url.=”://localhost”.$port.get_component_url_base(“ccm”,false).”/”改为$url.=”://nagios.mydomain.com”.$port.get_component_url_base(“ccm”,false).”/”。
- 对nagiosql_exportall.php进行同样的操作。
经过上面的操作后,在进行apply configure的时候,检查tail -f /usr/local/nagiosxi/var/cmdsubsys.log。 发现配置文件检查通过,但是提示进行tar操作的时候出现错误。
对提示的文件夹进行权限变更,发现当前的权限应该是正确的/usr/local/nagiosxi/etc 属于apache:nagios.
对其中错误提示的一个目录权限变更为777进行应用配置的再次尝试,发现问题依旧。
这个错误不解决,应用配置就不能完成,这样新添加的host/service/contact的配置就不能生效。
再次回到reconfigure_nagios.sh, 对其中的restart_nagios_with_export.sh进行查看。
注释下面nom开头的几句。让整个的应用配置能够实现。
# Make a new NOM checkpoint
# ./nom_create_nagioscore_checkpoint.sh > /dev/null 2>&1 &
# There was a problem with the config, so restore older config from last NOM checkpoint
# Make a new NOM error checkpoint
# ./nom_create_nagioscore_errorpoint.sh
# Restore the last known good checkpoint
# ./nom_restore_nagioscore_checkpoint.sh
注释完成后,再进行一次apply configure,这时候tail -f /usr/local/nagiosxi/var/cmdsubsys.log中发现配置文件检查通过,返回code为0,说明配置已经生效。
但是apply configure的页面始终没有结束。
到host里面去看,确实新添加的host已经在里面了,而且监控服务已经可以反应出来了。
总结
问题不算复杂,但是需要仔细的一步一步的进行分析。最终的结果没有实现完美。只是解决了根本的问题。
至于为什么apply configure的页面没有结束,还是需要继续检查。目前先到这个效果吧。