nagios的使用及插件调用

一监控本机服务和系统状况

1修改联系人配置文件contacts.cfg

这里使用系统自带的sendmail进行收邮件测试,所以需要创建lisi用户

2修改主机配置文件host.cfg

设置监控地址为本机地址

3修改服务配置文件

这里列举常用系统状态的几项监测项目,可根据需要自行添加;首先要在command.cfg文件中有定义好的命令(要有对应的插件)

4校验nagios配置文件的正确性并重启服务

5客户端登陆查看监控信息

二监控远程主机服务和系统状态

监控远程主机服务的配置,不同的服务略有不同,下面以监控mysql服务和httpd服务为例说明

·监控远程服务器的mysql服务

1在远程主机上安装mysql,启动mysqld服务并设置为开机自动启动

2在mysql服务器上创建监控检测帐户,开启3306端口

3在nagios主机上检测是否可以连接mysql主机上的mysql服务

注:若没有check_mysql插件,是因为没有安装mysql-devel包,将mysql-devel包安装后重新安装一下nagios-plugins就有了

4添加check_mysql插件的调用

因为是新安装的插件,commands.cfg配置文件中并没有定义,因此需要添加进去

5添加主机定义

修改host.cfg文件,直接复制之前的主机定义,修改以下内容即可,主机组添加mysqlhost

6添加服务定义

针对不同的服务,可定义不同的报警时间和收件人

7检测配置文件并重载服务,然后测试访问

8查看状态报告邮件

·监控远程服务器的httpd服务

继续在mysql服务器上配置

1安装httpd服务,启动httpd服务并设置为开机自动启动

2在mysql服务器上开启80端口

3在nagios服务器上查看check_http插件是否存在

默认已安装

4添加check_http插件的调用

默认已调用

5添加主机定义

这里我将httpd服务安装到mysql服务器上,因此直接使用mysql主机即可

6添加服务定义

直接修改一下内容即可;注意模板和主机名

7检测配置文件并重载服务,然后访问查看监测信息

·监控远程服务器系统状态

Nagios通过NRPE插件监控远程主机系统状况(如msyql主机)

NRPE总共由两部分组成:

check_nrpe插件:运行在监控主机上 (即nagios主机)

NRPE daemon:运行在远程的linux主机上(通常就是被监控机)

整个的监控过程:

当Nagios需要监控某个远程linux主机的服务或者资源情况时:

1:nagios运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么.

2:check_nrpe插件会通过SSL连接到远程的NRPE daemon.

3:NRPE daemon会运行相应的nagios插件来执行检查本地资源或服务.

4:NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理.

注意:NRPE daemon需要nagios插件和Nrpe一起安装在远程被监控linux主机上,否则,daemon不能做任何的监控. 别外因为它们间的通信是加密的SSL,所以需要安装SSL

这个插件需要openssl的支持,没有就直接安装一下(yum install openssl-devel

这里仍然对mysql服务器进行监控,在mysql主机上进行如下操作:

1创建nagios用户

2编译安装nagios-plugins插件

3安装nrpe依赖包xinetd软件包

4编译安装nrpe软件包

make install-daemon         //安装守护进程

make install-daemon-config     //安装配置文件

make install-xinetd         //安装xinetd脚本

5配置nrpe

vi /etc/xinetd.d/nrpe 修改如下行

only_from = 127.0.0.1 192.168.10.100 //在后面增加监控主机(即nagios服务器)的地址192.168.10.100,以空格间隔

6添加nrpe服务

编辑/etc/services文件,在相应位置增加NRPE服务:mrpe 5666/tcp #nrpe服务监听端口

7定义监控命令

NRPE daemon只运行nrpe.cfg中所定义的命令;默认已定义常用的,现在手动定义一项

vi /usr/local/nagios/etc/nrpe.cfg 修改如下行

将下图中的#注释去掉并进行修改

修改后效果如下图:根分区监测

check_nrpe 的-c参数可以接的内容,等号(=)后面是实际执行的插件程序(只这与commands.cfg中定义命令的形式十分相似,不过是写在了一行).也就是说check_users就是等号后面/usr/local/nagios/libexec/check_users -w 5 -c 10的简称

8重启xinetd服务(即开启nrpe服务)

9开放5666端口

至此客户端配置完成,如需要监测其它系统状态,可自行添加

10在nagios服务器上编译安装nrpe软件包,并测试连接是否正常

11定义插件命令

用check_nrpe –h查看用法;-c后面带的$ARG1$参数是传给nrpe daemon执行的检测命令,之前说过了它必须是nrpe.cfg中所定义的命令中的其中一条

12添加主机定义和服务定义

主机定义已添加过mysql服务器,因此可以不用重复定义

添加服务定义

其中配置项的含义如下

define service{  

use generic-service //使用的模板

        host_name              mysqlhost //被监控的主机名,这里注意必须是linux且运行着nrpe,而且必须是hosts.cfg中定义的

        service_description     check-disk  //监控项目的名称

        check_command           check_nrpe!check_disk  //监控命令是check_nrpe,是在commands.cfg中定义的,带的参数是check_disk,是在nrpe.cfg中定义的  

        max_check_attempts      5  //最大检测尝试次数

        normal_check_interval   3  //正常检测间隔时间

        retry_check_interval    2  //重试检测间隔时间

        check_period            24x7  //监控周期设置

        notification_interval   10  //通知间隔

        notification_period     24x7  //通知周期设置

        notification_options    w,u,c,r  //定义什么状态时报警

        contact_groups          sagroup  //报警联系组

        }  

13检测配置文件并重载nagios服务

14登录nagios的web页面,查看监控状态