7iuyk 发表于 2015-10-12 12:57:20

nagios4.1.1 服务端及监控端部署(三)之nrpe监控远程linux主机

前面两篇做了大量监控准备工作,接下来才是进入正题,监控远程主机资源,如这里我要监控远程主机的cpu负载、内存、硬盘、网卡流量等    规范:
    1).所有下载压缩包统一存放于/usr/local/src下
    2).编译安装目录统一为/usr/local/下
    服务端IP:10.30.20.2
    客户端IP:10.30.20.10

正文
    在被监控主机既客户端(以下均使用客户端),安装nagios-plugins-2.1.1.tar.gz、nrpe-2.15.tar.gz,解压后的nrpe包内有具体的配置文档
一. 客户端安装及配置

安装前准备
    useradd -s /sbin/nologin nagios

1.nagios-plugins安装

1
2
3
4
tar zxvfnagios-plugins-2.1.1.tar.gz
cd nagios-plugins-2.1.1
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make && make install





2.安装xinetd服务
    因本文档的nrpe启动方式是利用xinetd启动,因此需要服务器有xinetd服务
    yum install xinetd -y
3.安装nrpe插件

1
2
3
4
5
tar zxvf nrpe-2.15.tar.gz
cd nrpe-2.15
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make all && make install-plugin && make install-daemon && make install-daemon-config
make install-xinetd




    说明:非官方说明,个人理解解释其含义

    make all 编译全部文件
    make install-plugin 安装插件
    make install-daemon 以daemon模式安装
    make install-daemon-config 生成daemon配置文件
    make install-xinetd 生产xinetd配置文件
    修改/etc/xinetd.d/nrpe文件,使nagios服务端可以访问客户端

1
only_from= 127.0.0.1 <nagios_ip_address>




    此处要做下说明,only_from有多个ip值时是以空格区分,之前配置时以逗号区分多个IP,启动xinetd服务时nrpe服务并没启动,排查了好长时间才发现是这里配置的问题
    将nrpe加入xinetd,编辑/etc/services,在最后一行添加如下内容,可使用shift+g或G直接跳到最后一行

1
2
vim /etc/services
nrpe      5666/tcp            #nrpe





   启动xinetd服务,并查看nrpe进程


1
2
service xinetd start
netstat -at | grep nrpe





4.测试nrpe是否通信是否正常

1
/usr/local/nagios/libexec/check_nrpe -H localhost






   说明:
    -h 帮助信息
    -H 指定主机地址
5.配置nrpe监控插件及执行命令
    注:只有在此定义了执行命令及执行插件,服务端才可调用


1
2
3
4
5
6
7
vim /usr/locat/nagios/etc/nrpe.cfg
command=/usr/local/nagios/libexec/check_users -w 5 -c 10
command=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
command=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command=/usr/local/nagios/libexec/check_swap -w 20% -c 10%





    说明:以下面一条做下解释,需用此条是因为需要根据自己的实际情况修改/dev/sda1磁盘目录
    插件具体用法可通过-h参数查看帮助


1
command=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1




    command #定义远程调用时的插件名或是调用方法
    =/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1 #定义插件名的具体插件及执行参数
    -w 参数定义警告阀值
    -c 参数定义严重阀值
    -p 参数指定具体磁盘目录
    如有其它资源需要监控,只需在nrpe.cfg中添加对应的调用名及参数即可远程调用
    客户端配置到此基本结束,下面配置服务端,既nagios服务器
二.服务端配置

[*]测试
前面客户端已经做好配置了,在配置服务端之前,可以先在服务端对客户端的监控做下测试,为什么要这么做呢?因为我在配置服务端的时候出错了,不确定是配置文件里写错了,还是压根服务端就得不到客户端的监控信息
服务端执行如下命令,会返回客户端nrpe的版本



1
/usr/local/nagios/libexec/check_nrpe -H 10.30.20.10





    执行个监控cpu load的命令

1
/usr/local/nagios/libexec/check_nrpe -H 10.30.20.10 -c check_load




执行成功则返回类似以下的信息

    2.commands.cfg配置
在文件最后一行增加以下内容

1
2
3
4
5
vim /usr/local/nagios/etc/commands.cfg
define command{
            command_name    check_nrpe
            command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}




    3.配置主机及服务
    创建webapp目录存放配置文件
    主机配置


1
2
3
4
5
6
7
8
9
10
vim webapp/host.cfg
define host{
         use                      linux-server,host-pnp
         #这个是根据templates.cfg信息定义,如果上面定义的模板host-pnp添加在define host
         #和define sevice里面,这儿host-pnp可以不用加,因为linux-server已经包含了
         host_name                cacti               #必须是 被监控的主机名
         alias                  cacti-web             #别名随便定义
         address                  10.30.20.10         #主机ip地址
         contact_groups         admins                #邮件组,下面会演示
}




    主机组配置

1
2
3
4
5
6
vim webapp/hostgroup.cfg
define hostgroup{
         hostgroup_name      servers                   #组名
         alias               servers_group             #别名
         members             cacti               #主机名(为host.cfg文件定义的host_name名称) 多个 逗号 隔开
}




    服务配置,既需要监控的服务内容都在此文件内配置,此文只列举部分作为参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
vim webapp/cacti_service.cfg
#### set cacti host
define service{
         use                  local-service,services-pnp #使用的模板名称,一定要在templates.cfg里面提前定义好
         host_name            cacti
         service_descriptionhttp
         check_command      check_http
         contact_groups       admins
         flap_detection_enabled          0
}

define service{
         use                   local-service,services-pnp
         host_name             cacti
         service_description   SSH_port
         check_command         check_tcp!22
         contact_groups      admins
         flap_detection_enabled          0
}
define service{
       use                      local-service,services-pnp
       host_name                cacti
       service_description      Current Load
       check_command            check_nrpe!check_load#使用nrpe检测,客户端需要定义
       contact_groups         admins
       flap_detection_enabled   0
}




等上几分钟就可以在web页面查看到监控信息了


我的主机进程数太多了,可能和之前被人植入ddos工具有关,抽时间再查查服务


页: [1]
查看完整版本: nagios4.1.1 服务端及监控端部署(三)之nrpe监控远程linux主机