1、安装前准备

(1)创建nagios用户和用户组
[root@localhost ~]#useradd -s /sbin/nologin nagios
[root@localhost ~]#mkdir /usr/local/nagios
[root@localhost ~]#chown –R  nagios.nagios /usr/local/nagios


(2)开启系统sendmail服务
         在nagios监控服务器上开启sendmail服务的主要作用是让nagios在检测到故障时可以发送报警邮件,目前几乎所有的linux发行版本都默认自带了sendmail服务,所以,在安装系统时只需开启sendmail服务即可,并且不需要在sendmail上做任何配置。


2、 编译安装Nagios
首先安装如下安装包
[root@localhost ~]# yum –y install httpd gcc glibc glibc‐common gd gd‐devel 
下载安装包:wget http://down1.chinaunix.net/distfiles/nagios-3.2.0.tar.gz
[root@localhost ~]# tar -zxvf nagios-3.2.0.tar.gz
[root@localhost ~]# cd nagios-3.2.0
[root@localhost nagios-3.2.0]#./configure --prefix=/usr/local/nagios 
#指定nagios的安装目录,这里指定nagios安装到/usr/local/nagios目录
[root@localhost nagios-3.2.0]#make all 
[root@localhost nagios-3.2.0]#make install      
# make install用来安装nagios的主程序,CGI和HTML文件
[root@localhost nagios-3.2.0]# make install-init  
#通过make install-init命令可以在/etc/rc.d/init.d目录下创建nagios启动脚本
[root@localhost nagios-3.2.0]# make install-commandmode 
#通过make install-commandmode命令来配置目录权限
[root@localhost nagios-3.2.0]# make install-config  
#make install-cofig命令用来安装nagios示例配置文件,这里安装的路径是/usr/local/nagios/etc



3、安装Nagios插件
         这里下载的版本是nagios-plugins-1.4.16。
         注意:插件版本与nagios版本的关联并不大
http://nchc.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz
[root@localhost nagios]#tar –zxvf  nagios-plugins-1.4.16.tar.gz
[root@localhost nagios]#cd  nagios-plugins-1.4.16
[root@localhost nagios-plugins-1.4.16]#./configure --prefix=/usr/local/nagios
[root@localhost nagios-plugins-1.4.16]# make

----------------------------------------------------------------------------------
 

Make nagios插件报错

 

check_http.c: In function ‘process_arguments’:
check_http.c:312: 错误:‘ssl_version’ 未声明 (在此函数内第一次使用)
check_http.c:312: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
check_http.c:312: 错误:所在的函数内只报告一次。)
make[2]: *** [check_http.o] 错误 1
make[2]: Leaving directory `/root/rpm/nagios-plugins-1.4.16/plugins'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/root/rpm/nagios-plugins-1.4.16'
make: *** [all] 错误 2
 

解决:yum -y install openssl* openssl-devel

 

----------------------------------------------------------------------------------
[root@localhost nagios-plugins-1.4.16]# make install
    安装完成,在/usr/local/nagios下的libexec目录下,生成很多可执行文件,这些正是nagios所需要的插件。

4、安装Nagios中文化插件

中文插件下载地址:
http://sourceforge.net/projects/nagios-cn/files/
下载对应nagios版本的中文插件,然后开始安装:
[root@localhost ~]#tar xvjf  nagios-cn-3.2.0.tar.bz2
[root@localhost nagios-cn-3.2.0]#cd nagios-cn-3.2.0
[root@localhost nagios-cn-3.2.0]#./configure
[root@localhost nagios-cn-3.2.0]#make all
[root@localhost nagios-cn-3.2.0]#make install

5、安装与配置apache和php
     apache和php不是安装nagios所必须的,但是nagios提供了web监控界面,通过web监控界面可以清晰的看到被监控主机、资源的运行状态,因此,安装一个web服务是很必要的。
     需要注意的是,nagios在nagios3.1.x版本以后,配置web监控界面时需要php的支持。这里我们下载的nagios版本为nagios-3.2.0,因此在编译安装完成apache后,还需要编译php模块,这里选取的php版本为php5.3.2。
(1)安装apache与php
首先安装apache,步骤如下:
[root@nagiosserver ~]# tar zxvf httpd-2.0.63.tar.gz
[root@nagiosserver ~]#cd httpd-2.0.63
[root@nagiosserver ~]#./configure  --prefix=/usr/local/apache2
[root@nagiosserver ~]#make
[root@nagiosserver ~]#make install
接着安装php,步骤如下:
[root@nagiosserver ~]# tar zxvf php-5.3.2.tar.gz
[root@nagiosserver ~]#cd php-5.3.2
[root@nagiosserver ~]#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
---------------------------------------------------------------------------------
 

安装php时的报错

 

checking libxml2 install dir... no
checking for xml2-config path... 
configure: error: xml2-config not found. Please check your libxml2 installation.

检查是否安装了libxm包

[root@XKWB3403 php-5.3.8]# rpm -qa |grep  libxml2
libxml2-2.6.26-2.1.12
libxml2-python-2.6.26-2.1.12

重新安装libxml2和libxml2-devel包

yum install libxml2
yum install libxml2-devel -y

安装完之后查找xml2-config文件是否存在

[root@XKWB3403 php-5.3.8]# find / -name "xml2-config"
/usr/bin/xml2-config

如果存在的话重新安装php
---------------------------------------------------------------------------------
[root@nagiosserver ~]#make
[root@nagiosserver ~]#make install
从安装步骤可知,apache安装路径为/usr/local/apache2,而php安装路径为/usr/local/php。
 

 

 
(2)配置apache
 
找到apache配置文件/usr/local/apache2/conf/httpd.conf 
 
找到:
 
User nobody
 
Group #-1
 
修改为
 
User nagios
 
Group nagios
 
然后找到
 
DirectoryIndex index.html index.html.var
 
修改为
 
DirectoryIndex index.html index.php
 
接着增加如下内容:
 
AddType application/x-httpd-php .php
 
为了安全其间,一般情况下要让nagios的web监控界面必须经过授权才能访问,这需要增加验证配置,即在httpd.conf文件最后添加如下信息:
 
#setting for nagios
 
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
 
       <Directory "/usr/local/nagios/sbin">
 
           AuthType Basic
 
           Options ExecCGI
 
           AllowOverride None
 
           Order allow,deny
 
           Allow from all
 
           AuthName "Nagios Access"
 
AuthUserFile /usr/local/nagios/etc/htpasswd
 
           Require valid-user
 
       </Directory>
 
 
 
Alias /nagios "/usr/local/nagios/share"
 
       <Directory "/usr/local/nagios/share">
 
           AuthType Basic
 
           Options None
 
           AllowOverride None
 
           Order allow,deny
 
           Allow from all
 
           AuthName "nagios Access"
 
AuthUserFile /usr/local/nagios/etc/htpasswd
 
           Require valid-user
 
       </Directory>
 
(3)创建apache目录验证文件
 
在上面的配置中,指定了目录验证文件htpasswd,下面要创建这个文件:
 
         [root@localhost nagios]#/usr/local/apache2/bin/htpasswd \
 
>-c /usr/local/nagios/etc/htpasswd ixdba    
 
         New password: (输入密码)    
 
         Re-type new password: (再输入一次密码)    
 
         Adding password for user ixdba
 
         这样就在/usr/local/nagios/etc目录下创建了一个htpasswd验证文件,当通过http://ip/nagios/访问时就需要输入用户名和密码了。
 
         最后,启动服务:
 
         [root@ nagiosserver ~]#/usr/local/apache2/bin/apachectl  start
       为了开机时自动启动服务,可以做如下操作:
     touch /etc/rc.d/init.d/apache
        vi /etc/rc.d/init.d/apache
        chown -R root /etc/rc.d/init.d/apache
        chmod 700 /etc/rc.d/init.d/apache
        ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S60apache   #S 是start的简写、代表启动、K是kill的简写、代表关闭。60数字        代表启动的顺序。
        apache的内容:
       #!/bin/bash
       #Start httpd service
       /usr/local/apache/bin/apachectl start
       至此 apache服务就可以在运行级别3下 随机自动启动了。(可以结合chkconfig 对启动服务进行相应的调整)


6.验证Nagios配置文件的正确性

                  nagios在验证配置文件方面做的非常到位,只需通过一个命令即可完成:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

         Nagios提供的这个验证功能非常有用,在错误信息中通常会打印出错误的配置文件以及文件中的哪一行,这使得nagios的配置变得非常容易,报警信息通常是可以忽略的,因为一般那些只是建议性的。

2、 启动与停止nagios

1)启动nagios

         通过初始化脚本启动nagios

/etc/init.d/nagios start

         或者

Service nagios start

     手工方式启动nagios

         通过nagios命令的“-d”参数来启动nagios守护进程:

/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

2)关闭nagios

       通过初始化脚本关闭nagios服务

         /etc/init.d/nagios stop

或者

         Service nagios stop

             通过kill方式关闭nagios

          kill <nagios_pid>

3)重启nagios

       通过初始化脚本来重启nagios

/etc/rc.d/init.d/nagios reload

/etc/rc.d/init.d/nagios restart

 通过web监控页重启nagios

     手工方式平滑重启

 kill -HUP <nagios_pid>

####################常见错误###########################

1、监控界面乱码

 修改/usr/local/apache2/conf/httpd.conf

 最后添加AddDefaultCharset utf-8

 

 

2、拓扑图乱码

 

如果使用中文做为主机名,则在拓扑图显示时须加入中文字体设置。
在cgi.cfg文件最后几行:
ttf_file=/usr/X11R6/lib/X11/fonts/truetype/FZSongTi.ttf
这个是Suse企业版的字体设置,请自行查找系统字体文件所在位置并指向它,如果
你的拓扑图里显示不出字,就是这个设置不对。

 

编辑/usr/local/nagios/etc/cgi.cfg配置文件,加入

# add fonts setting for topo p_w_picpath
ttf_file=/usr/share/fonts/chinese/TrueType/ukai.ttf

# service httpd restart
# service nagios restart

分别重启httpd和nagios服务,拓扑图中的中文乱码解决

 

 

3、重启nagios总有提示

 

service nagios restart

Running configuration check…done.

Stopping nagios: done.

Starting nagios:This account is currently not available.

done.

这个报错看起来有点碍眼,但实际上nagios是启动正常的。如果要去掉这个信息提示需要把/etc/passwd里的/sbin/nologin修改成/bin/bash

 

 

4、无法配置主机组

 

CGI的认证功能没有开启编辑文件 /usr/local/nagios/etc/cgi.cfg

将 use_authentication 值设成1 (0/1 关闭/开启)

use_authentication=1

并重启 nagios

service nagios restart