naigo监控服务器主机及应用服务状态  for redhat as 4.2

简单介绍nagios
nagios是一款开源的监控软件,能够对网络内的主机和硬件设备进行状态监控。
功能:
     1. 状态监控
     2. 预警报告
     3. 集中,规模化管理
     4. web可视化显示方式
     5. 自定义shell脚本或插件实现更多的功能
[url]http://www.nagios.org[/url]
nagios的实现方式:nagios采用分布-集中的管理模式。在nagios服务器上安装nagios主程序,
    在被监控主机上安装nagios代理程序。通过nagios主程序和nagios代理程序之间的通讯,监视主机状态
。主程序和代理程序之间有两种工作方式,一种是主程序-->Active-->代理程序;另一种是主程序--
>passive-->代理程序;顾名思义,是以一方向另一方主动提出通讯需求来划分的。

所需软件:
nagios-2.9.tar.gz
nagios-plugins-1.4.9.tar.gz
nrpe-2.8.1.tar.gz
这三个软件都可以官方网站下载:[url]http://www.nagios.org/download/[/url]
imagepak-base.tar.gz
下载地址:
[url]http://download.chinaunix.net/download.php?id=9332&ResourceID=4709[/url]

实现要求:在一台机器上面监控多台运行主机状态,所以安装步骤为首先安装监控机器,再配置监控机器,
最后安装被监控端软件。
一.安装监控中心
1.nagios 安装
tar zxf nagios-2.9.tar.gz
useradd nagios
cd nagios
 ./configure --prefix=/usr/local/nagios --with-gd-lib=/usr/local/lib --with-gd-
inc=/usr/local/include
 make all
 make install
 make install-init
 make install-commandmode
 make install-config
chown nagios.nagios /usr/local/nagios
2.安装nagios-plugins
tar zxf nagios-plugins.tar.gz
cd nagios-plugins
./configure --prefix=/usr/local/nagios-plugins
make all
make install
mv /usr/local/nagios-plugins/libexec /usr/local/nagios/

(在redhat系统上面安装可能出现configure时,到这里checking for redhat spopen problem...就不动了,
所以需要在configure时再加上这个 --enable-redhat-pthread-workaround )
3安装imagepak-base.tar.gz
tar zxf imagepak-base.tar.gz
解压以后是base目录
cp -r base /usr/local/nagios/share/images/logos/
4安装nrpe-2.8.1.tar.gz
tar zxf nrpe-2.8.1.tar.gz
cd nrpe-2.81
./configure --enable-ssl  --enable-command-args
make all
cp src/check_nrpe /usr/local/nagios/libexec
vi /usr/local/nagios/etc/checkcommands.cfg
#添加下面内容
define command{
     command_name check_nrpe
     command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
     }
到此监控中心所需软件安装完毕,接下来进行配置nagios
二. 配置nagios
1.配置apache
在httpd.conf中追加
ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/
<Directory "/usr/local/nagios/sbin/">
     AllowOverride AuthConfig
     Options ExecCGI
     Order allow,deny
     Allow from all
</Directory>
  Alias /nagios/ /usr/local/nagios/share/
<Directory "/usr/local/nagios/share">
     Options None
     AllowOverride AuthConfig
     Order allow,deny
     Allow from all
</Directory>

2.配置nagios
cd /usr/loca/nagios/etc/
把这里.cfg-sample文件配置文件模板,全部重命名为.cfg
如:cp nagios.cfg-sample nagios.cfg
然后检查配置文件是否出错
     /usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg
     出现Total Warnings: 0
        Total Errors:   0
     
vi /usr/local/nagios/etc/cgi.cfg
use_authentication=1改为use_authentication=0,即不用验证.
启动后台进程把nagios作为守护进程:
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
/etc/init.d/nagios start
[url]http://ip/nagios/[/url] 这样可以打开web页面

三、在被监控机器上面安装nrpe和plugin
1、安装nrpe
tar zxf nrpe-2.8.1.tar.gz
cd nrpe-2.8.1
./configure --enable-ssl  --enable-command-args
make all
mkdir -p /usr/local/nagios/etc
mkdir /usr/local/nagios/bin
mkdir /usr/local/nagios/libexec
useradd nagios
chown -R nagios.nagios /usr/local/nagios/
cp sample-config/nrpe.cfg /usr/local/nagios/etc/
cp src/nrpe /usr/local/nagios/bin/
chmod 755 /usr/local/nagios/bin/nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
启动nrpe 端口为5666   用netstat -an |grep 5666 查看端口是否已经监听
2、安装插件
tar zxf nagios-plugins-1.4.9.tar.gz
cd nagios-plugins
./configure --prefix=/usr/local/nagios
make all
make install
 
在上面全部安装完毕之后,开始定义配置文件,下面配置全部都是临控端进行。
说说我自己的理解,不一定全对。
在nagios安装完毕之后,主要是看调好配置文件。
cd /usr/local/nagios/etc/ 为配置文件。
nagios.cfg为主配置文件,增加新的.cfg配置文件,需要在nagios.cfg里面添加才可以。
localhost.cfg 定义了本机一些监控配置等,创建新的或其它配置文件可以参考此文件。
创建下面几个cfg配置文件在/usr/local/nagios/etc里面
touch contactgroups.cfg contacts.cfg hostgroups.cfg hosts.cfg services.cfg timeperiods.cfg
在对上面相关几个文件添加内容后,还是需要在nagios.cfg中,添加对应文件。如:我在hosts.cfg 添加了
对192.168.0.1这台机器,那个在nagios中就要有这样一句:cfg_file=/usr/local/nagios/etc/hosts.cfg
对其的文件操作方法是一样的。
中。
添加要监控的主机到配置文件中,有两种方法。一种就是将这台机器要监控的内容分别写入hosts.cfg
contacts.cfg service.cfg 文件中,然后要在nagios.cfg添加好对应的cfg文件路径。
另一种方法,就是生成一个单独的ip.cfg文件,之后把要监控的内容写入这一个文件就可以了。
 
例子:1,添加监控本机的web服务。
vi nagios/etc/localhost.cfg
添加
define service{
        use                             local-service        
        host_name                       localhost
        service_description             Current http
        check_command                   check_http!100.0,20%!500.0,60%
        }
这配置就是参考上面的PING监控改的,如果要添加其它服务同理。
之后重新启动nagios ,打开web页面5分钟后,就可以看本机apache的状态了。

2.添加192.168.0.128这台远程机器
vi 192.168.0.128.cfg 创建新文件
define host{
use generic-host ; Name of host template to use
host_name test_nrpe
alias client
address 192.168.0.128
check_command check-host-alive
max_check_attempts 1
check_period 24x7
notification_interval 120
notification_period 24x7
notification_options d,r
contact_groups ghbadmin
}

define service{
use generic-service ; Name of service template to use
host_name test_nrpe
service_description apache
is_volatile 0                     #类似声音警告功能关闭
check_period 24x7                 #监控期限为24X7
max_check_attempts 1              #最大重试次数
normal_check_interval 1           #标准检测时间间隔 1分钟
retry_check_interval 1            #重试时间间隔
contact_groups admins             #联系组
notification_options w,u,c,r      # w,u,c,r 发生这四种情况时,进行通告。
notification_interval 960         # 通告间隔
notification_period 24x7          #通告过期时间
check_command check_http!100.0,20%!500.0,60%    
}
文件里面第一部为监控主机是否存活,第二部分为监控apache服务,如果死掉了,则通过 ghbadmin 这个组来
发送邮件,而且这个ghbadmin邮件联系组是在哪里定义的呢,我是在localhost.cgf 文件定义的,这样就不用
在其它配置文件再次写入了。
vi localhost.cfg
define contactgroup{
        contactgroup_name       ghbadmin
        alias                   Nagios Administrators
        members                 ghbspecial
        }
define contact{
        contact_name                    ghbspecial
        alias                           Nagios Admin
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,r
        service_notification_commands   notify-by-email
        host_notification_commands      host-notify-by-email
        email                           [email]ghb@aaa.com[/email]
        }
上面配置完毕之后,记得要修一下nagios.cf文件,把192.168.0.128.cfg 添加进去
cfg_file=/usr/local/nagios/etc/192.168.0.128.cfg

重新启动nagios  /etc/init.d/nagios restart
关掉服务,或关掉主机,就可以通过web页面看到状态了,并且很快就会收到邮件了,如果想收到短信,可以
到网易等申请短信提醒业务。
如果想用邮件功能,那么nagios所在服务器上面一定要开启邮件服务功能。
到此nagios监控配置完毕。