前面好几篇文章都是零零散散关于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启动错误
类似于下面这种。
下面是打开Host看到所有的服务都是Down的状态。
应该是/usr/local/nagios/libexec插件没有正确安装到相应的位置。
解决办法最好是重装一遍。如果不想重装可以commands.cfg里面修改关于插件的地址,也可以利用ln -s /path/to/file /path/to/symlink或者干脆直接将相应的文件拷贝到/usr/local/nagios/libexec文件夹下。
设置正确后,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
PNP4Nagios显示测试页面
就类似于以下的界面。其实这时说明PNP4Nagios安装正确,需要删除/usr/local/pnp4nagios/share/install.php这个页面,最下面的深红色框也有提示。
PNP4Nagios无法正常绘制图像
出现这种错误
Pango-WARNING **: failed to choose a font, expect ugly output
其实这是因为PNP4Nagios的字体没有安装成功的原因。只需要执行以下命令再重启Nagios然后刷新网页。
yum –y install liberation* xorg-x11-font* pango* service nagios restart
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
本文作者为Nicky,转载请注明。
这么专业的文章,看也看不懂。