由于列出的产品nagios3、pnp4nagios、check_mk、nagvis都是非常成熟的产品了。所以大都有相应的rpm包,我这里就不再以源码包安装的方式去安装,因为安装过程比较繁琐。还是yum来的方便。

一、安装httpd及相关软件

1yum install -y gd gd-devel httpd php gcc glibc glibc-common

注:注意关闭selinux,虽然它很安全,不过它也很严格。

二、安装第三方源及nagios和pnp4nagios

1wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
2rpm -ivh epel-release-6-8.noarch.rpm
3yum install -y nagios*

由于默认redhat和centos的源里都不包含nagios和pnp4nagios的rpm包,我们这里选择fedora的源,反正大家核心区别不大,又都是rpm包。直接拿来主义了。

启动相关服务如下:

1service httpd start
2service nagios start
3service npcd start
4chkconfig nagios on
5chkconfig httpd on
6chkconfig npcd on

npcd也可以选择不启动,因为pnp4nagios与nagios的整合方式不只一种。具体整合方式如下:

Configuration

具体选择那一种方式,根据个人喜好而定吧。

在防火墙上开启httpd服务所用的80端口:

1# vi /etc/sysconfig/iptables
2 -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
3 -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT

复制pnp4naigos的ssi到nagios的目录进行引用:

1cp /usr/share/doc/pnp4nagios-0.6.21/contrib/ssi/status-header.ssi
2 /usr/share/nagios/html/ssi/status-header.ssi

上面这一步也可以省略,使用了的好处是多了点图显示缩略图的效果。所以,还是建议做一步。

默认安装完成后,通过web方式打开后nagios的登陆的用户名密码都是nagiosadmin 。

三、check_mk的安装

首先需要安装python模块:

1yum install mod_python

打开check_mk下载页,下载最新的check_mk,最新的稳定版是1.2.2p3 。

1http://mathias-kettner.de/download/check_mk-1.2.2p3.tar.gz
2tar zxvf check_mk-1.2.2p3.tar.gz
3cd check_mk-1.2.2p3
4./setup.sh

运行setup后,会在终端界面做一个交互式的选择输入界面。如果是centos下rpm包安装的,apache 、nagios、pnp4nagios的各项都可以自动检测到选择自动回车即可。如果是源码包安装的以上三个程序,就需要手动输入各程序的路径了。最后,其后做一个最终确认的界面,确认后,即会自动安装。如下图所以,是一个以源码包安装上面三个软件后的确认界面

check_mk

配置完成后,更改如下配置添加监控主机(多个主机之间以逗号分隔):

1vim /etc/check_mk/main.mk
2# Put your host names here
3# all_hosts = [ 'localhost' ]
4all_hosts = [ "localhost" , "192.168.10.122" ]

被监控机器上直接安装rpm包的check_mk_agent就可以了,check_mk_agent的监听端口是6556 。不过这里不建议以main.mk的方式进行配置,建议以WATO的方式在web界面上直接配置。

四、nagvis的安装

安装nagvis所需的环境

1yum install php-mbstring php-pdo yum graphviz

安装nagvis

1tar zxfv nagvis-1.7.10.tar.gz
2cd nagvis-1.7.10
3./install.sh

nagvis安装的时候也和check_mk一样会有很多交互选择输入项需要选择输入。

五、源码包安装时遇到的一些问题

1Check_mk: Incomplete Apache2 Installation
2You need mod_python in order to run the web interface of check_mk.
3Please install mod_python and restart Apache.

在http打开check_mk的页面时,会报上面的错是由没装mod_python模块。使用第三方fedora的源就可以通过yum安装mod_python并重启apache即可。

 1Internal error:: [Errno 13] Permission denied: '/etc/check_mk/conf.d/wato/contacts.mk'
 2Traceback (most recent call last):
 3  File "/usr/share/check_mk/web/htdocs/index.py", line 310, in handler
 4    userdb.hook_page()
 5  File "/usr/share/check_mk/web/htdocs/userdb.py", line 592, in hook_page
 6    general_page_hook()
 7  File "/usr/share/check_mk/web/htdocs/userdb.py", line 566, in general_page_hook
 8    create_auth_file("page_hook", load_users())
 9  File "/usr/share/check_mk/web/htdocs/userdb.py", line 147, in load_users
10    file(filename, "a")
11IOError: [Errno 13] Permission denied: '/etc/check_mk/conf.d/wato/contacts.mk'

在安装完成后,在web界面上操作时,报这个错,当时没找到解决方法,后来改用yum装后,问题解决。也没细一步的研究 。

1Inventory failed for this host:
2Error
3Empty output from agent at TCP port 6556 

要先查看被监控端有没有启动check_mk_agent ,有没有监听6556端口,另外监听过后,从主控端telnet IP 6556看有没有输出,如果输出如下的话:

1[/root]telnet 127.0.0.1 6556
2Trying 127.0.0.1...
3Connected to 127.0.0.1.
4Escape character is '^]'.
5Connection closed by foreign host.

与该问题相对应的还有Connection refused 属于同一问题。需要查看iptables、tcp_wrapper、selinux等防火墙有没有放行。

参考页面:http://eldespistado.com/instalacion-de-nagios-pnp4nagios-check_mk-nagvis-en-centos-6-4-redhat-6-4/

2014年2月12日安装后记:

在原源码包搭建的nagios平台上(使用的ldap认证),新增编译check_mk,编译完装完成后。通过http://xxx.xxx.xxx.xxx/check_mk 打开wato项时,发现很多项目没有查看权限,报错如下:

Sorry, you have no permission on the folder “Main Directory”. The folder has no contact groups assigned to it.

解决方法:打开/etc/check_mk/multisite.mk 文件,将其中的 admin_users = [“nagiosadmin”] 更改ldap认证用的用户名,如361way 即可。