解决nagiosxi无法应用配置的问题

解决nagiosxi无法应用配置的问题

首先发现是nagiosxi提示数据库错误,进入 /usr/local/nagiosxi/scripts,利用repair_databases.sh进行修复。 修复完成后,可以正常进入nagiosxi。但是应用配置一直无法完成。

这时候做两个操作,点击应用配置后检查,tail -f /var/log/message,检查 tail -f /usr/local/nagiosxi/var/cmdsubsys.log。

根据提示,发现有错误。就是应用配置检查没有问题,但是就是无法完成。

nagiosxi_scripts

再在这个脚本里面,运行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
#!/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

发现其中有一行

$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).”/”。

经过上面的操作后,在进行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的页面没有结束,还是需要继续检查。目前先到这个效果吧。

| 访问量:
Table of Contents