Nagios常见错误及解决

前面好几篇文章都是零零散散关于Nagios的文章。看上去说了很多,其实Nagios要是细说起来这几篇文章也是远远不够,我也是浅浅的测试安装试用了一下。因为安装试用过程中遇到了很多错误,都把它记录了一下,给以后自己安装做个记录。

Nagio Web输出权限问题

首先安装完毕了以后提示“It appears as though you do not have permission to view information you requested...”。其实这个错误的主要原因是Nagios的Web输出界面没有权限读取监控的的信息。这个问题有两种解决办法。

直接暴力解决就是/usr/local/nagios/etc/cgi.cfg文件,把use_authentication=1这个参数改成0。当然这个最暴力,问题可以解决,但是直接关闭用户验证容易造成安全问题。

正确的解决方式还是修改/usr/local/nagios/etc/cgi.cfg文件,把文件中的nagiosadmin中后面都增加一个半角逗号,后面跟上之前的我们生成的管理员帐号。具体操作详见我之前的文章

‘default_user_name=nagiosadmin,Nicky’项目。

Nagios常见错误及解决

Nagios启动错误

类似于下面这种。

Nagios常见错误及解决

下面是打开Host看到所有的服务都是Down的状态。

应该是/usr/local/nagios/libexec插件没有正确安装到相应的位置。

解决办法最好是重装一遍。如果不想重装可以commands.cfg里面修改关于插件的地址,也可以利用ln -s /path/to/file /path/to/symlink或者干脆直接将相应的文件拷贝到/usr/local/nagios/libexec文件夹下。

Nagios常见错误及解决

设置正确后,Nagios恢复正常。

Nagios常见错误及解决

PNP4Nagios显示问题

这个原因是pnp-0.6和pnp-0.4已经完全不同了。

修改commands.cfg ? 最后两项按照如下进行配置。

# 'process-host-perfdata' command definition

define command{
command_name process-service-perfdata
command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata
}

define command{
command_name process-host-perfdata
command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata
}

修改完毕后重新启动nagios

service nagios restart

Nagios常见错误及解决

PNP4Nagios显示测试页面

就类似于以下的界面。其实这时说明PNP4Nagios安装正确,需要删除/usr/local/pnp4nagios/share/install.php这个页面,最下面的深红色框也有提示。

Nagios常见错误及解决

PNP4Nagios无法正常绘制图像

出现这种错误

Pango-WARNING **: failed to choose a font, expect ugly output

其实这是因为PNP4Nagios的字体没有安装成功的原因。只需要执行以下命令再重启Nagios然后刷新网页。

yum –y install  liberation* xorg-x11-font* pango*
service nagios restart

Nagios常见错误及解决

Apache模块缺少错误

这个我没有截图,大概错误会显示:

Apache Rewrite Module Apache mod_rewrite is not enabled

这个实际上是Apache没有安装rewrite模块。
正常安装Apache时应该带以下模块安装。

./configure --prefix=/usr/local/apache -enable-rewrite

如果没有正确操作,那么需要重新下载Apache。然后找到mod_rewrite.c,再进行编译。

find . -name mod_rewrite.c
cd httpd-2.2.23/modules/mappers/
/usr/local/apache/bin/apxs -c mod_rewrite.c
/usr/local/apache/bin/apxs -i -a -n mod_rewrite mod_rewrite.la

如果没有什么错误的话,应该在你的apache的modules目录中编译出一个mod_rewrite.so文件。编辑httpd.conf文件,确认httpd.conf中已经包含mod_rewrite.so的加载语句,如下:

LoadModule rewrite_module modules/mod_rewrite.so

接下来重启Apache服务。

service httpd restart

PHP的socket错误

应该类似于如下显示。也是需要重装相应的模块。

PHP socket extension ? PHP socket extension not available

正常安装php时添加php路径及socket

 ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-gd  --with-zlib --with-config-file-path=/usr/local/php/etc --enable-sockets

如果没有正确操作,那么需要重新下载PHP并解压。

cd php-5.5.27/ext/sockets/
/usr/local/php/bin/phpize
./configure --enable-sockets --with-php-config=/usr/local/php/bin/php-config
make && make install

拷贝源码的php.ini-production到 /usr/local/php/lib为php.ini

并在php.ini添加

extension = sockets.so

最后重启Apache服务。

service httpd restart

修改ssh端口后Nagios设置

修改SSH端口以后,Nagios并不一定能正确切换到新的SSH端口进行监控,这时候我们需要手动修改Nagios的配置文件。

1、Nagios服务器修改SSH端口

修改localhost.cfg文件

vi /usr/local/nagios/etc/objects/localhost.cfg
define service{
use local-service ; Name of service template to use
host_name localhost
service_description SSH
check_command check_ssh! -p 1234!127.0.0.1
notifications_enabled 0
}

2、被监控的服务器的配置文件

这里假如配置文件是other.cfg

vi /usr/local/nagios/etc/servers/other.cfg
define service{
use generic-service
host_name other
service_description SSH
# check_command check_nrpe!check_ssh
check_command check_ssh! -p 1234!172.16.1.5
}

另外还有一些其他的功能或应用,大家也可以参考以下网页。

http://myhat.blog.51cto.com/blog/391263/654830

http://myhat.blog.51cto.com/391263/653363/

http://my.oschina.net/fufangchun/blog/87214

http://linux.cn/article-4141-1.html

http://www.jb51.net/article/15029_3.htm

http://www.codelast.com/?p=2213

http://www.linuxidc.com/Linux/2015-02/112672.htm

网友评论1

  1. 沙发
    爱软客:

    这么专业的文章,看也看不懂。

    2015-12-25 13:42 [回复]

发表评论

表情
还能输入210个字