1、软件包准备

nagios-4.0.8.tar.gz

nagios-plugins-2.0.3.tar.gz

nrpe-2.15.tar.gz

httpd-2.2.23.tar.gz


2、Nagios Server端安装

1)、安装相关依赖包

yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel


2)、安装Nagios

# useradd -s /sbin/nologin nagios

# configure --prefix=/usr/local/nagios

# make all

# make install

# make install-init

# make install-commandmode

# make install-config

# chkconfig nagios on

# chkconfig --list | grep nagios 


3)、安装Nagios插件

# tar zxvf nagios-plugins-2.0.3.tar.gz

# cd nagios-plugins-2.0.3

# ./configure --prefix=/usr/local/nagios/

# make && make install


4)、安装配置apache

# tar zxvf httpd-2.2.23.tar.gz

# cd httpd-2.2.23

# ./configure --prefix=/usr/local/apache2

# make && make install

# vim /usr/local/apache2/conf/http.conf

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

User daemon 

Group daemon

修改为

User nagios

Group nagios

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<IfModule dir_module> 

  DirectoryIndex index.html 

</IfModule> 

修改并增加为 

<IfModule dir_module> 

  DirectoryIndex index.html index.php 

</IfModule>

AddType application/x-httpd-php .php 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

增加验证配置,即在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> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

创建上面的目录验证文件htpasswd

# /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd nagios

# vim /usr/local/nagios/etc/cgi.cfg

修改配置文件中所有含有nagiosadmin的内容

nagiosadmin => nagiosadmin,nagios

# scp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

# vim /etc/init.d/httpd

添加以下内容

# chkconfig: 2345 85 15

# description: Apache is a World Wide Web Server

# chkconfig httpd on

# chkconfig --list | grep httpd


5)、安装配置php

# tar zxvf php-5.4.10.tar.gz

# cd php-5.4.10

# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs

# make && make install

# service httpd start

# service nagios start


6)、安装nrpe

# tar zxvf nrpe-2.15.tar.gz

# cd nrpe-2.15

# ./configure --enable-command-args

# make all

# make install-plugin

# /usr/local/nagios/libexec/check_nrpe -H 10.0.2.203

NRPE v2.15

7)、配置commands.cfg,添加check_nrpe定义

vim /usr/local/nagios/etc/objects/commands.cfg

# 'check_nrpe' command definition

define command{

command_name    check_nrpe         

command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$                           

}

8、配置hosts.cfg

vim /usr/local/nagios/etc/objects/hosts.cfg

define host{

use                     linux-server

host_name               node.3

alias                   node.3

address                 10.0.2.203

}


9、配置node.3.cfg(也就是node.3的services.cfg文件,为了便于管理,每台机器的services.cfg文件分开配置,并以主机名命名)

vim /usr/local/nagios/etc/objects/node.3.cfg

define service{

use                     local-service

host_name               node.3

service_description     Current Load

check_command           check_nrpe!check_load

contact_groups          admins

}


define service{

use                     local-service

host_name               node.3

service_description     Check Disk disk

check_command           check_nrpe!check_disk

contact_groups          admins

}


define service{

use                     local-service

host_name               node.3

service_description     Total Processes

check_command           check_nrpe!check_total_procs

contact_groups          admins

}


define service{

use                     local-service

host_name               node.3

service_description     Current Users

check_command           check_nrpe!check_users

contact_groups          admins

}


define service{

use                     local-service

host_name               node.3

service_description     Check Zombie Procs

check_command           check_nrpe!check_zombie_procs

contact_groups          admins

}


10)、配置nagios.cfg

# vim /usr/local/nagios/etc/nagios.cfg

添加以下内容

cfg_file=/usr/local/nagios/etc/objects/hosts.cfg

cfg_file=/usr/local/nagios/etc/objects/node.3.cfg

11)、检查nagios配置文件,并重启nagios服务

# chown -R nagios.nagios /usr/local/nagios

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

# service nagios restart

3、Nagios Client端的配置安装

1)、安装相关软件包

yum install -y xinetd openssl*


2)、添加用户

useradd nagios

passwd nagios


3)、安装nagios插件

# tar zxvf nagios-plugins-2.0.3.tar.gz

# cd nagios-plugins-2.0.3

# ./configure --prefix=/usr/local/nagios

# make && make install

# chown -R nagios.nagios /usr/local/nagios


4)、安装nrpe

# tar zxvf nrpe-2.15.tar.gz

# cd nrpe-2.15

# ./configure --enable-command-args

# make all

# make install-plugin

# make install-daemon

# make install-daemon-config

# make install-xinetd

# vim /etc/services

在文件最后追加以下内容

nrpe            5666/tcp                # nrpe

# vim /etc/xinetd.d/nrpe

添加监控主机IP

only_from       = 127.0.0.1 10.0.2.201

# vim /usr/local/nagios/etc/nrpe.cfg

修改

dont_blame_nrpe=1

# service xinetd restart

# lsof -i:5666

# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1

NRPE v2.15

# vim /usr/local/nagios/etc/nrpe.cfg

command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1

修改

command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda


4、添加mysql和tomcat的监控

1)、添加mysql监控

Nagios Server:

# vim /usr/local/nagios/etc/objects/commands

添加以下内容

# 'check_mysql' command definition

define command{

command_name    check_mysql

command_line    $USER1$/check_mysql -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$

}

# vim /etc/ld.so.conf 

追加以下内容

/usr/local/mysql/lib/#因为check_mysql会提示找不到libmysqlclient.so.18文件

# /sbin/ldconfig -v

# /usr/local/nagios/libexec/check_mysql -H 10.0.2.203 -u mysql -p 123456

# vim /usr/local/nagios/etc/objects/node.3.cfg

追加以下内容

define service{

use                     local-service

host_name               node.3

service_description     Check MySQL

check_command           check_nrpe!check_mysql!mysql!123456

contact_groups          admins

}

Nagios Client:

# vim /usr/local/nagios/etc/nrpe.cfg

添加以下内容

command[check_mysql]=/usr/local/nagios/libexec/check_mysql -u $ARG1$ -p $ARG2$

# vim /etc/ld.so.conf 

追加以下内容

/usr/local/mysql/lib/#因为check_mysql会提示找不到libmysqlclient.so.18文件

# /sbin/ldconfig -v

2)、添加自定义tomcat监控

Nagios Server:

# vim /usr/local/nagios/etc/objects/commands

添加以下内容

# 'check_tomcat' command definition

define command{

command_name    check_tomcat

command_line    $USER1$/check_tomcat -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ 

}

# vim /usr/local/nagios/etc/objects/node.3.cfg

追加以下内容

define service{

use                     local-service

host_name               node.3

service_description     Check Tomcat

check_command           check_nrpe!check_tomcat!tomcat

contact_groups          admins

}

# service nagios restart


Nagios Client:

# vim /usr/local/nagios/etc/nrpe.cfg

添加以下内容

command[check_tomcat]=/usr/local/nagios/libexec/check_tomcat $ARG1$


# vim /usr/local/nagios/libexec/check_tomcat

#!/bin/sh

name=`basename $0`

process=`ps aux |grep -w "$1" | grep -vE "grep|$name"|wc -l |tr -d ' '`

if [ $process -ge 1 ]

then

   echo  "$1 proces running...."

   exit 0

else

   echo  "$1 proces no exist! "

   exit 2

fi

5、windows系统的监控

解压NSClient++-0.2.7.zip到C盘根目录

命令行:cmd

>c:\NSClient++-0.2.7

>nsclient++ /install

>nsclient++ SysTray

命令行:services.msc 

找到NSClientpp服务,双击打开,点击”登录“标签,在”允许服务与桌面交互“前打勾

编辑c:\NSClient++-0.2.7\NSC.ini

[modules]模块

去掉除CheckWMI.dll和 RemoteConfiguration.dll 以外行的”;“

[Settings]

去掉password行的注释,并设置密码123456,同时需要在Nagios Server端command.cfg配置文件中check_nt命令定义处配置对应的密码

define command{

command_name    check_nt

command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s 123456 -v $ARG1$ $ARG2$

}

去掉allowed_hosts行的注释,并将本行修改为allowed_hosts=127.0.0.1/32,10.0.2.201

[NSClient]

去掉port行前面的注释,并设置port=12489

6、配置报警

1)、声音报警

Nagios Server端

上传音乐文件到/usr/local/nagios/share/media文件夹中

# vim /usr/local/nagios/etc/cgi.cfg

取消以下行前的”#“

host_unreachable_sound=hostdown.wav

host_down_sound=hostdown.wav

service_critical_sound=critical.wav

service_warning_sound=warning.wav

service_unknown_sound=warning.wav

normal_sound=noproblem.wav

2)、邮件报警

# yum install -y sendmail*

# service sendmail start

# vim /usr/local/nagios/etc/objects/contacts.cfg

修改

emailnagios@local.com => email*******@qq.com

# service nagios restart

# vim /usr/local/nagios/etc/objects/templates.cfg

修改generic-service中

notification_interval60 => notification_interval5

修改local-service中

max_check_attempts 4 => max_check_attempts

normal_check_interval 5 => normal_check_interval 5

retry_check_interval 2 => retry_check_interval 1

表示每五分钟发送一次邮件报警,关于nagios报警时间的详细配置,请参考”关于nagios报警时间间隔的配置“一文。