第一, nagios 的插件介绍
1,nagios 是一款开源的网络监控软件,可以用来监控host ,service等对象,nagios能根据监控对像状态的变化的改变,而进行通知管理员,当然 您可以选择报警的方式( E-mai,SMS(即短信服务))
2 nagios 通常有一个主程序,一个插件程序nagios-plugins和四个可选的ADDON 分别是NRPE,NSCA,NSClient++和Ndoutils 做成,当然nagios的监控工作都是通过插件来实现的,nagios和nagios-Plugins 是服务器端工作必须的组件,而其他四个ADDON的作用分别是
NRPE是用来监控远程linux/unix 主机,用来执行远程主机上的插件或者脚本,来进行监控主机的资源及其服务,当然用该中方法监控远程linux/unix主机上的资源的话,必须nagios 服务端同时也要安装该NRPE
NSCA是用来被监控的远程linux/unix 主机主动将监控信息发送给nagios 服务端(在冗余监控模式中用到,当在nagios的分布式监控中同样也要用到该插件) 如果用NSCA插件进行监控远程主机上的资源的话,同样nagios 服务器端同样要安装该插件
NSClient++ 该插件是用来监控Window 主机上的资源的,
NDOUTILS ADDON主要用来将Nagios的配置信息和event产生的数据存入数据库(目前的beta版支持mysql和pgsql,稳定版只支持mysql),以方便实现数据的快速检索和处理,并且为其它通过web接口程序来管理这些数据提供了保障。
在一个大型应用中,可能存在多个独立的或分布式布置的Nagios服务器,这种环境中的每个Nagios服务器通常被称为一个Nagios实例。在多Nagios实例的环境中,既可以把所有实例的数据存入到一个数据库,也可以将各实例的数据分别存储。
在只有一个Nagios实例环境中,其实例名称通常为“default”;而在多实例的环境中,则需要为此些Nagios实例各自命名。
1)NDOMOD Event Broker Module(NDOMOD.O):用来输出Nagios进程产生的数据(data和logic),其前提是Nagios在编译时开启了Event broker的功能。同时,NDOMOD模块还可以导出Nagios配置有关的信息(包括Nagios监控进程运行时环境产生的动态数据)至文件、Unix域套接字或者TCP套接字。NDO2DB将通过前面的这三种方式获得Nagios的有关数据。
2)NDO2DB:用来接收由NDOMOD和LOG2NDO组件输出的信息并将之存储在数据库中。启动时,NDO2DB进程将创建一个TCP套接字或Unix域套接字以监听客户端(输出端)的连接请求。目前仅支持MySQL数据库。
多个客户端可以同时向一个NDO2DB守护进程输出数据,此时的NDO2DB将为每一个连接进来的客户端(Nagios实例)建立一个连接进程,以实现每个客户端数据的独立存储、检索和处理。
3)LOG2NDO:用来将Nagios的历史日志通过NDO2DB进程输出至数据库。LOG2NDO与NDO2DB进程通信的方法依然是标准文件、Unix域套接字或者TCP套接字三种。
4)FILE2SOCK:从标准文件或标准输入读入数据,并将之输出至Unix域套接字或TCP套接字。当NDOMOD或LOG2NDO将数据输出至标准文件时,此工具则可用来将这些标准文件中数据读出并发送给NDO2DB进程监听的TCP套接字或Unix域套接字。
下面是nagios 的组件的架构图,如下:
第二 ,首先在nagios服务器上安装NRPE插件
# tar xvf nrpe-2.12.tar.gz
# cd xvf nrpe-2.12
#make install-daemon-config
# cp nrpe.cfg /usr/local/nagios/etc
#cp src/nrpe /usr/local/nagios/bin
#cp init-script /etc/init.d/nagios-nrpe
#chmod +x /etc/init.d/nagios-nrpe
2 同样也要为nagios指定固定端口,只要该端口没被占用就可以,也没有必要指定的是5666
nrpe 5666/tcp #NRPE
only_from = 127.0.0.1 <nagios_ip_address>注: 必须添加nagios的服务端的地址如果为配置允许nagios服务端的地址的话,nagios 服务器不能正常通过nrpe 进行监控该主机、
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
而该命令生成的日志在系统日志中(即/var/log/message)中。如果没有错误,就基本上是完成了
#cd /usr/local/nagios/etc/object
command_name check_nrpe
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADRESS$ -c $ARG1$
}
#/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
第三 在远程主机上安装nagios-plugins 和nrpe
1添加nagios用户,应为nagios默认情况下运行NRPE
#tar xvf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
#mkdir etc bin
#chown -R nagios.nagios /usr/local/nagios
#tar xvf nrpe-2.12.tar.gz
#make install-daemon-config
# cp nrpe.cfg /usr/local/nagios/etc
#cp src/nrpe /usr/local/nagios/bin
#cp init-script /etc/init.d/nagios-nrpe
#chmod +x /etc/init.d/nagios-nrpe
#cd /usr/local/nagios/etc
allow_hosts=127.0.0.1 Nagios-IP-Address #注: 修改为nagios的服务器地址,如果是多个IP 中间用“,” 隔开
only_from = 127.0.0.1 <nagios_ip_address>注: 必须添加nagios的服务端的地址如果为配置允许nagios服务端的地址的话,nagios 服务器不能正常通过nrpe 进行监控该主机
nrpe 5666/tcp #NRPE
#/etc/init.d/nagios-nrpe start
#netstat -tunlp | grep nrpe
#/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
#/usr/local/nagios/libexec/check_nrpe -H IP(远程主机)
注:如果远程主机和nagios上的服务器的iptables如果要是开启的话,同样也需要配置相对于的iptables 规则
10当然通过NRPE,可以监控到的信息,只要在被监控服务器上的插件(/usr/local/nagios/libexec中的所有插件),都可以使用,也就是说,只要在该文件下有对应的插件,就能监控对应的信息,当然就可以实现.注意的是,必须在远程主机中nrpe 中定义相应的命令,否则不能监控对应的资源