×

微信扫一扫,快捷登录!

标签: 监控
来自:网络

详解运维监控利器Nagios 系列(五)-利用插件扩展Nagios的监控功能

一、            利用NRPE外部构件监控远程主机 1nrpe实现监控远程主机原理             nagios安装
         NRPE是nagios的一个功能扩展,它可在远程Linux/Unix主机上执行插件程序,通过在远程服务器上安装nrpe构件以及nagios插件程序,来向nagios监控平台提供该服务器的一些本地的情况。例如,cpu负载、内存使用、硬盘使用等等。
[  /attachment/201302/094709185.png][  /uploads/img/201407/03113729_H9Sw.png][/url][/url]
2 配置nagios客户端
(1)安装nagios插件
         在nagios客户端主机上需要安装nrpe和nagios插件,Nrpe插件可以从nagios官方网站下载到,从[ ttp://www. /download/addons]http://www. /download/addons[/url]下载最新稳定版本nrpe-2.12.tar.gz,然后开始安装和配置,基本操作如下:
[root@nagios-client ~]#useradd -s /usr/sbin/nologin nagios
[root@nagios-client ~]#tar zxvf nagios-plugins-1.4.14.tar.gz
[root@nagios-client ~]#cd nagios-plugins-1.4.14
[root@nagios-client ~]#./configure
[root@nagios-client ~]#make
[root@nagios-client ~]#make install
设置插件目录权限
[root@nagios-client ~]#chown nagios.nagios /usr/local/nagios
[root@nagios-client ~]#chown -R nagios.nagios /usr/local/nagios/libexec
(2)安装nrpe插件
         在客户端安装nrpe插件过程要比在服务端安装复杂,因为nrpe在客户端是作为一个守护进程在运行的,操作如下:
[root@nagios-client ~]#tar zxvf nrpe-2.12.tar.gz
[root@nagios-client ~]#cd nrpe-2.12
[root@nagios-client ~]#./configure
[root@nagios-client ~]#make all
[root@nagios-client ~]#make install-plugin
[root@nagios-client ~]#make install-daemon
[root@nagios-client ~]#make install-daemon-config
(3)配置nrpe
  nrpe的配置文件为/usr/local/nagios/etc/nrpe.cof。
首先找到“server_address=127.0.0.1”
将后面的地址改为客户端主机的ip地址,然后找到:
“allowed_hosts=127.0.0.1”

一行,将其改为:
allowed_hosts=127.0.0.1, Nagios监控服务器的地址或域名
   修改这个配置的作用是声明合法的nrpe服务对象,没有在这里指定的地址是无法从本机的NRPE获得服务信息的。“Nagios监控服务器的地址或域名”可以是ip地址,也可以是域名。可以根据自己的情况设定。                开源监控软件
(4)启动nrpe守护进程
启动NRPE很简单,只需执行如下操作:
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
建议将此命令加入到/etc/rc.local文件中,这样就可以开机自动运行NRPE守护进程了。
Nrpe守护进程默认的端口为5666,通过如下命令可以检测端口是否启动:
[root@nagios-client ~]# netstat -antl|grep 5666
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN  
可以看到,nrpe守护进程端口5666已经启动了。

(5)测试nrpe功能
首先在nagios客户端本机上测试,执行如下命令:
/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
如果正常,应该出现如下信息:
[root@nagios-client ~]# /usr/local/nagios/libexec/check_nrpe  -H  127.0.0.1     
NRPE v2.12
正常的返回值为被监控服务器上安装的NRPE的版本信息,如果能看到这些,表示NRPE已经正常工作了。

(6)定义监控服务器内容
要监控一个远程服务器下的某些信息,首先要在远程服务器中定义监控的内容,例如,如果要监控一台远程服务器上的当前用户数、cpu负载、磁盘利用率、交换空间使用情况时,则需要在nrpe.conf中定义监控内容:
command[check_users_1]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load_1]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_sda5_1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda5
command[check_zombie_procs_1]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs_1]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_swap_1]=/usr/local/nagios/libexec/check_swap -w 20 -c 10
  其中,command后面中括号里面的内容就是定义的变量,变量名可以随意指定。                nagios配置
3、在服务端安装nrpe和配置nagios服务
(1)安装nrpe插件
         nrpe在服务端安装很简单,操作如下:
[root@nagiosserver ~]#tar zxvf nrpe-2.12.tar.gz
[root@ nagiosserver ~]#cd nrpe-2.12
[root@ nagiosserver ~]#./configure
[root@ nagiosserver ~]#make all
[root@ nagiosserver ~]#make install-plugin

         通过“make install-plugin”命令将check_nrpe插件默认安装到了/usr/local/nagios/ libexec目录下。

(2)测试插件与客户端是否能正常通信
         在nagios服务端(即nagios监控平台)服务器上执行如下指令:
/usr/local/nagios/libexec/check_nrpe -H 客户端主机地址
例如:
[root@nagiosserver  ~]# /usr/local/nagios/libexec/check_nrpe  -H 192.168.12.251
NRPE v2.12
如果能显示如上的输出信息,表明nrpe可以与客户端正常通信。

(3)定义一个check_nrpe监控命令
修改/usr/local/nagios/etc/commands.cfg文件,添加如下内容:
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

(4)添加远程主机监控
修改/usr/local/nagios/etc/service.cfg,添加如下监控内容:
define service{
        use                             local-service
        host_name                       mysql
        service_description                     users
        check_command                   check_nrpe!check_users_1
        }
define service{
        use                             local-service
        host_name                       mysql
        service_description                     load
        check_command                   check_nrpe!check_load_1
        }
define service{
        use                             local-service
        host_name                       mysql
        service_description                     disk
        check_command                   check_nrpe!check_sda5_1
        }

define servicegroup{                  #定义一个服务组
        servicegroup_name       servergroup       #服务组名称,可以随意指定                  监控软件
        alias                   server-group       #服务组别名
        members              web,PING,web,SSH,web,SSHD,web,http,mysql,users,mysql,load,mysql,disk,mysql,swap   #服务组成员,格式为“主机名,主机对应的服务描述”
        }

(5)测试和启动nagios服务
[root@nagiosserver  ~]#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
[root@nagiosserver  ~]#/etc/init.d/nagios restart
[  /attachment/201302/094722723.png][  /uploads/img/201407/03113730_a36B.png][/url][/url]
二、            利用飞信实现Nagios短信报警功能 1 飞信简介
         一个完善的nagios监控系统,故障报警的准确性和及时性显得尤为重要,报警的方式有很多种,可以通过邮件报警、手机短信报警、QQ或MSN报警等,这些方式各有优缺点,通过邮件、QQ或MSN进行报警通知最简单和实用,但是及时性不好;通过手机短信方式最方便,而且及时性很高,但是短信报警需要使用短信猫或者短信网关。但是短信报警需要使用短信猫或者短信网关,这些设备在每个企业不一定都有,并且还要支付短信费用。
         飞信,既免费,同时又及时快捷的报警方式,要使用飞信功能,首先手机要开通中国移动的飞信业务,目前使用飞信发送短信是免费的,仅需要把接受短信的手机和飞信发送手机加为好友即可。
         Linux飞信客户端下载地址:
[  /fetion/downng/fetion20091117-linux.tar.gz]fetion/downng/fetion20091117-linux.tar.gz[/url]
2 安装与配置飞信
(1)      安装飞信
这里假定飞信的安装目录为/usr/local/fetion,操作如下:
[root@nagiosserver  ~]#tar zxvf fetion20091117-linux.tar.gz
[root@nagiosserver  ~]# cp fx/* /usr/local/fetion
执行完毕后,/usr/local/fetion/fetion就是我们需要的飞信客户端程序。
(2)      配置飞信
配置fetion所需的动态链接库:
[root@nagiosserver  ~]# vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/fetion
[root[  /u/570656]@localhost[/url] src]# ldconfig
         测试fetion能否正常运行:
[root@nagiosserver  ~]#ldd /usr/local/fetion/fetion
[root@nagiosserver  ~]#/usr/local/fetion/fetion
Usage:
    --mobile=[mobile]
    --sid=[sid]
    --pwd=[pwd]
    --config=[config file] *format:index mobile password
(3) fetion使用说明

[  /attachment/201302/094745243.png][  /uploads/img/201407/03113730_sjmh.png][/url][/url]
(4)使用飞信举例
[root@nagiosserver  ~]#/usr/local/fetion/fetion --mobile=13466xxxxxx --pwd=chengxc123 --to 13866xxxxxx  --msg-utf8=”test  fetion”
这个例子是测试飞信能否成功发送短信,注意,发送对象必须是自己飞信的好友或自己。其中,“13466xxxxxx”是发送人的手机号码,“13866xxxxxx”是接收人的手机号码。
如果短信发送成功,应该能看到如下返回信息:
SIP-C/2.0 280 Send SMS OK
3 整合飞信到nagios
(1)编辑/usr/local/nagios/etc/command.cfg文件,添加以下内容:             nagios实施
define command{
        command_name notify-service-by-sms   #定义了一个服务故障时发送报警短信的指令
        command_line /usr/local/fetion/fetion --mobile=xxxxxxxxxxx --pwd=xxxxxx --to=$CONTACTPAGER$ --msg-utf8="$HOSTADDRESS$' $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$"
             }

define command{
        command_name notify-host-by-sms   #定义了一个主机故障时发送报警短信的指令
        command_line /usr/local/fetion/fetion --mobile=xxxxxxxxxxx --pwd=xxxxxx --to=$CONTACTPAGER$ --msg-utf8="Host $HOSTSTATE$ alert for $HOSTNAME$! on '$DATETIME$'"
}
(2)修改/usr/local/nagios/etc/templates.cfg文件
找到联系人为generic-contact的定义,修改后的内容如下:
define contact{
        name                            generic-contact  
        service_notification_period     24x7
        host_notification_period        24x7  
        service_notification_options    w,u,c,r
heduled downtime events
        host_notification_options       d,u,r
uled downtime events
        service_notification_commands   notify-service-by-email,notify-service-by-sms
        host_notification_commands      notify-host-by-email,notify-host-by-sms
        register                        0                     
        }
其中,加粗字体是新增的内容,也就是在command.cfg文件中新定义的两个指令。

(3)修改/usr/local/nagios/etc/contacts.cfg文件
         修改联系人为sasystem的定义,修改后的内容如下:               nagios培训
define contact{
        contact_name                      sasystem
        use                             generic-contact
        alias                              sa-system
        email                               ixdba@126.com
        pager                             139xxxxxxxx
        }

其中,加粗字体部分为新增内容,“pager”用来指定接收报警短信的手机号码,如果有多个手机号码,每个号码之间用逗号分割即可。




想做Nagios Zabbix,Cacti,iTop各种交流的,可以进入开源监控工具Nagios交流  QQ群号 476809427




上一篇:详解运维监控利器Nagios(3)-配置Nagios监控系统 (1)
下一篇:详解运维监控利器Nagios(4)-Nagios的日常维护和管理
monicazhang

写了 2297 篇文章,拥有财富 12859,被 21 人关注

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

Powered by IT 运维管理
返回顶部