案例1:监控远程主机的公有数据
案例2:监控远程主机的私有数据

1 案例1:监控远程主机的公有数据
1.1 问题

本案例要求在Nagios平台上添加对远程主机pc207的监控,主要包括下列服务:

ping连通状态
Web服务
FTP服务
SSH服务

1.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:准备被监控主机pc207

1)正确配置IP地址,确保与主机svr7可相互ping通

[root@pc207 ~]# ping  192.168.4.7
PING 192.168.4.7 (192.168.4.7) 56(84) bytes of data.
64 bytes from 192.168.4.7: icmp_seq=1 ttl=64 time=0.621 ms
64 bytes from 192.168.4.7: icmp_seq=2 ttl=64 time=0.427 ms
.. ..

2)确保已启用httpd、vsftpd、sshd服务,并关闭防火墙服务firewalld

[root@pc207 ~]# yum  -y  install  httpd  vsftpd
.. ..
[root@pc207 ~]# systemctl  restart  httpd  vsftpd  sshd
[root@pc207 ~]# systemctl  disable  firewalld  --now

步骤二:配置监控服务器svr7

1)新建监控配置pc207.cfg,定义监控目标(主机、服务)

[root@svr7 ~]# vim  /usr/local/nagios/etc/objects/pc207.cfg
define host {
        use    linux-server
        host_name   pc207
        address  172.25.0.10
        }
define service {
        use    local-service
        host_name   pc207
        service_description     PING
        check_command         check_ping!100.0,20%!500.0,60%
        }
define service  {
        use    local-service
        host_name   pc207
        service_description          Web Server
        check_command               check_http 
        }
define service  {
        use    local-service
        host_name   pc207
        service_description           FTP Server
        check_command               check_ftp
        }
define service  {
        use    local-service
        host_name   pc207
        service_description           SSH Server
        check_command               check_ssh
        }

2)调整nagios.cfg,启用pc207.cfg监控配置

[root@svr7 ~]# vim /usr/local/nagios/etc/nagios.cfg
.. ..
cfg_file=/usr/local/nagios/etc/objects/pc207.cfg

3)重启nagios服务

[root@svr7 ~]# systemctl  restart  nagios

步骤三:刷新Nagios管理界面,确认新增主机pc207的监控结果

1)确认Hosts下新增的主机,如图-2所示

图-2

2)确认Services下新增的服务信息,如图-3所示

图-3
2 案例2:监控远程主机的私有数据
2.1 问题

本案例要求在Nagios服务器上添加对远程主机pc207上私有数据的监控,完成以下监控项目:

运行的进程数
登录的用户数
CPU负载
根分区使用量

2.2 方案

Linux主机的内存信息、磁盘I/O信息等私有数据默认不对外提供,若希望从Nagios监控平台获取远程主机的私有数据,需要在被监控主机上配置启用nrpe服务。

主要工作结构:Nagios监控端(check_nrpe插件) ==> 被监控端(nrpe服务),如图-4所示。

图-4
2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:准备被监控主机pc207

1)安装nagios-plugins插件

[root@pc207 ~]# yum  -y  install  gcc  glibc  glibc-common
[root@pc207 ~]# groupadd  nagcmd
[root@pc207 ~]# useradd  -G  nagcmd  nagios
[root@pc207 ~]# tar  xf  ~/nagios-plugins-2.1.4.tar.gz  -C  /usr/src/
[root@pc207 ~]# cd  /usr/src/nagios-plugins-2.1.4/
[root@pc207 nagios-plugins-2.1.4]# ./configure  --with-nagios-user=nagios  --with-nagios-group=nagcmd
[root@pc207 nagios-plugins-2.1.4]# make
[root@pc207 nagios-plugins-2.1.4]# make install

2)安装nrpe

[root@pc207 ~]# yum  -y  install  openssl-devel          //安装SSL头文件
[root@pc207 ~]# tar  xf  nrpe-3.1.0.tar.gz  -C  /usr/src/
[root@pc207 ~]# cd  /usr/src/nrpe-3.1.0/
[root@pc207 nrpe-3.1.0]# ./configure
[root@pc207 nrpe-3.1.0]# make  all                      //编译所有
[root@pc207 nrpe-3.1.0]# make  install                     //安装nrpe及插件
[root@pc207 nrpe-3.1.0]# make  install-init              //安装服务
[root@pc207 nrpe-3.1.0]# make  install-config              //安装配置文件

3)定义nrpe监控命令

[root@pc207 ~]# vim  /usr/local/nagios/etc/nrpe.cfg
.. ..
allowed_hosts=172.25.0.0/24,127.0.0.1,::1              //允许哪些主机
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_rootdir]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p  /
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

4)启用nrpe服务并测试

[root@pc207 ~]# systemctl  restart  nrpe
[root@pc207 ~]# systemctl  enable  nrpe
.. ..
[root@pc207 ~]# /usr/local/nagios/libexec/check_nrpe   -H  localhost
NRPE v3.1.0-rc1              //测试连本机nrpe服务

步骤二:配置Nagios监控服务器

1)为Nagios安装check_nrpe插件

[root@svr7 ~]# yum  -y  install  openssl-devel
[root@svr7 ~]# tar  xf  nrpe-3.1.0.tar.gz  -C  /usr/src/
[root@svr7 ~]# cd  /usr/src/nrpe-3.1.0/
[root@svr7 nrpe-3.1.0]# ./configure
[root@svr7 nrpe-3.1.0]# make  all                  //编译所有
[root@svr7 nrpe-3.1.0]# make  install-plugin         //安装check_nrpe插件

2)测试连远程的nrpe服务,并添加远程nrpe监控指令

[root@svr7 ~]# /usr/local/nagios/libexec/check_nrpe  -H  172.25.0.10
NRPE v3.1.0-rc1                                  //测试连远程 的nrpe服务
[root@svr7 ~]# vim  /usr/local/nagios/etc/objects/commands.cfg 
.. ..
define command{
    command_name   check_nrpe
    command_line   $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
                                              //-c 要求对方执行的命令
}

3)修改监控目标配置pc207.cfg,添加对远程主机pc207私有数据的获取

[root@svr7 ~]# vim  /usr/local/nagios/etc/objects/pc207.cfg
.. ..
define service {
        use    local-service
        host_name    pc207
        service_description    NRPE-Total Procs
        check_command    check_nrpe!check_total_procs
        }
define service {
        use    local-service
        host_name    pc207
        service_description    NRPE-Users
        check_command    check_nrpe!check_users
        }

步骤三:刷新Nagios管理界面,确认主机pc207的私有数据监控结果

确认pc207主机及服务监控结果,如图-5所示。

图-5