Nagios监控及配置

Nagios简介

Nagios是一款用来监视系统和网络的开源应用软件。利用其众多的插件实现对本机和远端服务的监控,当被监控对象发生异常时,会及时向管理员告警,提供一批预设好的监控插件,用户可以直接调用,也可以自定义Shell脚本来监控服务,适合各类企业的业务监控,可通过Web页面显示对象状态、日志、告警信息

Nagios与Cacti的区别

Cacti:在监控方面绘图比较不错,在流量与图形展现方面存在优势

Nagios:侧重于监控应用状态、故障分析,报警机制(邮箱、短信等)相对来说比Cacti灵活

 

搭建nagios监控服务器(192.168.4.11)

安装前环境准备:设置SELinux为permissive ---> setenforce 0

                关闭防火墙 ---> systemctl stop/disable firewall

1 部署nagios服务的运行环境

1)安装网站平台环境、编译工具

[root@nagios ~]# yum  -y  install  httpd  php  

[root@nagios ~]# rpm -q httpd php

2)启用httpd服务

[root@nagios ~]# systemctl  restart  httpd       //启用Web

3)访问nagios网页界面

echo "" >/var/www/html/test.php

客户端254:

# yum -y install elinks

# elinks --dump http://localhost/test.php

firefox http://192.168.4.11/test.php       //firefox http://服务器地址/test.php

2 安装提供nagios监控服务的软件

2.1 准备装包环境

1)安装编译工具

[root@nagios ~]# yum  -y  install  gcc  gd glibc  glibc-common

2)创建运行账号

[root@nagios ~]# groupadd  nagcmd

[root@nagios ~]# useradd  -G  nagcmd  nagios

[root@nagios ~]# gpasswd  -a  apache  nagcmd

2.2 安装软件包

[root@nagios nagios]# tar -xf nagios-4.2.4.tar.gz       //解包

[root@nagios nagios]# cd nagios-4.2.4/                 //进源码目录

[root@nagios nagios-4.2.4]# ./configure  --with-nagios-user=nagios   --with-nagios-group=nagcmd  --with-command-group=nagcmd

                           // 配置  ./configure --help查询可选项

[root@nagios nagios-4.2.4]# make all                    //编译

[root@nagios nagios-4.2.4]# make install                //安装程序

[root@nagios nagios-4.2.4]# make  install-init           //启动脚本

[root@nagios nagios-4.2.4]# make  install-config         //安装配置文件

[root@nagios nagios-4.2.4]# make  install-commandmode  //修改文件权限

[root@nagios nagios-4.2.4]# make install-webconf    //部署网站配置,web访问接口

[root@nagios nagios-4.2.4]# make install-exfoliation    //web页面样式

[root@nagios nagios-4.2.4]# chkconfig --add nagios   //加载服务配置

2.3查看安装文件

# ls /usr/local/nagios/下的

bin     可执行命令

libexec  监控插件及工具

share   Nagios网页目录

var     日志文件

sbin    CGI脚本文件

etc 配置文件

var     Nagios运行数据

nagios配置文件解析说明:

[root@nagios ~]#  cd  /usr/local/nagios/etc    //默认安装目录

程序命令:/usr/local/nagios/bin      

监控插件及工具:/usr/local/nagios/libexec

cgi脚本:/usr/local/nagios/sbin      

Nagios网页目录:/usr/local/nagios/share

Nagios运行数据日志:/usr/local/nagios/var     

配置文件:/usr/local/nagios/etc/

nagios.cfg: nagios服务的主配置文件   

resource.cfg:宏定义文件,定义nagios服务变量的配置文件

cgi.cfg:cgi程序的配置文件

 

[root@nagios ~]# vim /usr/local/nagios/etc/nagios.cfg

——通过cfg_file=加载配置

  29 cfg_file=/usr/local/nagios/etc/objects/commands.cfg 定义监控命令

  30 cfg_file=/usr/local/nagios/etc/objects/contacts.cfg 定义接收报警信息邮箱地址,使用工作邮箱,postfix邮件服务器,查看邮箱:grep mail contacts.cfg

  31 cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg定义监控时间模版配置文件 ,一般不做更改

  32 cfg_file=/usr/local/nagios/etc/objects/templates.cfg定义监控模版配置文件

  35 cfg_file=/usr/local/nagios/etc/objects/localhost.cfg 监控本机配置文件

 

监控对象及模板配置:/usr/local/nagios/etc/objects/

[root@nagios ~]# cd /usr/local/nagios/etc/objects/

commands.cfg 定义监控命令配置

contacts.cfg 定义接收报警信息邮箱地址,使用工作邮箱,postfix邮件服务器

timeperiods.cfg定义监控时间模版配置文件 ,一般不做更改

templates.cfg定义监控方式模版配置文件 ,grep linux templates.cfg

localhost.cfg 监控本机配置文件

switch.cfg:监控交换机配置文件

printer.cfg:监控打印机配置文件         

windows.cfg:监控windows操作系统主机配置文件

 

commands.cfg语法格式:

define command{

     command_name    命令名称,如check_local_procs  

     command_line    插件,$USER1$/check_procs -w $ARG1$ -c  $ARG2$ -s $ARG3$    //变量在resource.cfg里定义

        }

2.4 安装监控插件nagios-plugins

[root@nagios nagios]# tar -xf nagios-plugins-2.1.4.tar.gz     //解压

[root@nagios nagios]# cd nagios-plugins-2.1.4/              //进源码目录

[root@nagios nagios-plugins-2.1.4]# ./configure --with-nagios-user=nagios   --with-nagios-group=nagcmd  //配置

[root@nagios nagios-plugins-2.1.4]# make                   //编译

[root@nagios nagios-plugins-2.1.4]# make install             //安装

# ls /usr/local/nagios/libexec/check_*                         //查看安装的插件

 

2.5 检查配置语法:

/usr/local/nagios/bin/nagios -v /usr/local /nagios/etc/objects/commands.cfg

 

2.6 启动nagios监控服务

1)为Nagios平台添加Web管理用户(即访问监控页面,查看监控信息时,需要使用的用户名及密码)

# vim /etc/httpd/conf.d/nagios.conf

[root@nagios ~]# htpasswd  -c  /usr/local/nagios/etc/htpasswd.users nagiosadmin                  //创建Web管理用户nagiosadmin,-c创建用户;  输入两次密码

# cat /usr/local/nagios/etc/htpasswd.users

# grep  "nagiosadmin"   /usr/local/nagios/etc/cgi.cfg

2)启用nagios服务

[root@nagios ~]# systemctl  restart  nagios      //启用nagios

或用命令/etc/rc.d/init.d/nagios start启动服务

[root@nagios ~]# echo "/etc/rc.d/init.d/nagios start" >> /etc/rc.local  //设置开机自启

 

5 在客户端访问监控服务器查看监控信息(登录监控页面查看监控信息)

[root@nagios ~]# systemctl  restart  httpd       //启用Web

firefox http://192.168.2.11/nagios      //firefox http://服务器地址/nagios

账号:nagiosadmin

密码:123456

**默认监控本机**

 

nagios服务监控过程

Nagios服务启动时,自动调用监控插件——即加载主配置文件nagios.cfg(定义监控哪些主机),在调用监控插件可以设置监控的阀值,可以定义警告值 和错误值

nagios服务监控资源时,显示的监控状态:

OK      正常,监控到的数据<警告值

WARNING    警告,警告值<监控到的数据<错误值   

UNKOWN     不知道,找不到调用的监控插件时

CRITICAL      错误,错误值<监控到的数据

PENDING      监控中,正在获取数据

默认监控的资源有哪些?

CPU负载

登录系统用户数量

网站服务状态

Ping

根分区使用量

交换分区使用量

系统总进程数量

 

监控插件的使用——/usr/local/nagios/libexec/

查看插件的帮助信息:cd /usr/local/nagios/libexec  ------》./插件名 --help

CPU负载 :check_load -w 1分钟,5分钟,分钟的负载 -c 1分钟,5分钟,15分钟的负载

./check_load -w 1,2,3 -c 2,4,6   //与uptime同

登录系统用户数量 :check_users -w 警告值 -c 错误值 

./check_users -w 5  -c 10       //与uptime同,监控登录系统的用户数大于5时就警告,大于10时就报错

检测主机连通性:使用check_ping监控到目标的连接质量

-w 响应时间(毫秒),丢包率%    //设警告阈值

-c 响应时间(毫秒),丢包率%    //设严重太阈值

check_ping -H ip地址 -w 响应时间(毫秒),丢包率% -c 响应时间(毫秒),丢包率%  -p 包的个数

./check_ping -H 192.168.4.254 -w 10,50% -c 20,75% -p 5

检测硬盘使用率 :使用check_disk监控硬盘使用率

check_disk -w 警告值 -c 错误值 -p 分区

-w 剩余空间%    //设警告阈值,取百分号%表示

-c 剩余空间%    //设严重太阈值,取百分号%表示

-p 指定挂载点或对应的设备

./check_disk -w 50%  -c 25%   -p /boot            //与df -hT同

dd if=/dev/zero  of=/boot/test.txt bs=1M count=200  //快速生成一个大文件,写200M

./check_disk -w 50%  -c 25%   -p /boot

./check_disk -w 50%  -c 25%   -p /dev/vda1  //监控/dev/vda1的使用率小于50%就警告,小于25%就报错

交换分区使用量 :check_swap -w 警告值 -c 错误值

./check_swap -w 50% -c 20%          //与free -m同

系统总进程数量 :check_procs监控进程数量

check_procs -w 警告值 -c 错误值 [-s 进程状态]

./check_procs  -w 100  -c 101       //与ps -aux |wc -l同

./check_procs  -w 10  -c 15 -s [R/S/Z/D/T]//监控进程数量大于10就警告,大于15就报错,R运行中S睡眠中Z僵尸进程

监控sshd服务(默认连接目标主机的22端口):

check_ssh -H localhost/目标IP地址 [-p 端口]

./check_ssh -H 192.168.4.12 -p 2022    //监视192.168.4.12的2022端口    

 

检测应用端口

网站服务状态 :check_http监视网站服务(默认连接目标主机的80端口)

check_http -H ip地址 [-p 端口号]

./check_http -H localhost              //在网页根目录下有index.html文件

./check_http -H 192.168.4.254 -p 8080 //监控默认网页及指定端口,否则错误

连接目标主机的TCP端口:

check_tcp  -H 主机ip -p 端口号

./check_tcp  -H 127.0.0.1  -p 21

连接目标主机的UDP端口:

check_udp  -H 主机ip -p 端口号 -s 发送的内容 -e 捕获的内容

./check_udp -H 192.168.4.11 -p 25 -s aaa -e aaa

... ...

 

案例:

使用插件 check_http 检测本机的Web端口

1)关闭本机的httpd服务,执行check_http检查

[root@nagios ~]# /usr/local/nagios/libexec/check_http -H localhost -p 80connect to address localhost and port 80: 拒绝连接

HTTP CRITICAL - Unable to open TCP socket

2)启动本机的httpd服务,并建立默认首页index.html

[root@nagios ~]# vim  /var/www/html/index.html

Default site.

[root@nagios ~]# systemctl  restart  httpd

3)再次执行check_http检查

[root@nagios ~]# /usr/local/nagios/libexec/check_http  -H  localhost  -p  80

HTTP OK: HTTP/1.1 200 OK - 302 bytes in 0.006 second response time |time=0.006236s;;;0.000000 size=302B;;;0

使用插件check_tcp检测本机的FTP服务端口

1)未启动FTP服务时,执行check_ftp检查

[root@nagios ~]# /usr/local/nagios/libexec/check_ftp -H localhost -p 21

connect to address localhost and port 21: 拒绝连接

2)安装及启动vsftpd服务以后,再次执行check_ftp检查

[root@nagios ~]# yum  -y  install  vsftpd

[root@nagios ~]# systemctl  restart  vsftpd

[root@nagios ~]# /usr/local/nagios/libexec/check_ftp -H localhost -p 21

FTP OK - 0.002 second response time on localhost port 21 [220 (vsFTPd 3.0.2)]|time=0.002164s;;;0.000000;10.000000

使用插件check_disk检测本机/boot分区使用率

1)查看/boot目录所在分区的使用率

[root@nagios ~]# df  -hT  /boot

文件系统       类型  容量  已用  可用 已用% 挂载点

/dev/vda1      xfs   497M  140M  358M   29% /boot

2)使用check_disk检查

可用空间低于80%报 WARNING,可用空间低于60%报 CRITICAL

[root@nagios ~]# /usr/local/nagios/libexec/check_disk  -w  80%  -c  60%  -p  /boot

DISK WARNING - free space: /boot 357 MB (71% inode=99%);| /boot=139MB;99;198;0;496

3)查看实际使用率情况,调低阈值再次check_disk测试

[root@nagios ~]# /usr/local/nagios/libexec/check_disk  -w  60%  -c  40%  -p  /boot

DISK OK - free space: /boot 357 MB (71% inode=99%);| /boot=139MB;297;198;0;496

 

 

/usr/local/nagios/libexec/check_procs  -w   100  -c 110  -s  Z

check_local_procs $USER1$/check_procs -w  $ARG1$ -c $ARG2$ -s ARG3$

check_local_procs!90!100!R   //!,表示给变量传值

check_local_disk!20%!15%!/boot

 

 

定义各协议端口号的配置文件 /etc/services

/var/spool/mail/nagios 存储邮件的位置,nagios为用户名

6 配置监控服务

监控思路:

配置过程——Nagios监控配置的实现过程

  1. 定义监控命令 ----> /usr/local /nagios/etc/objects/commands.cfg

# vim  commands.cfg

define command{

command_name 自定义命令名

command_line 对应的具体操作(可调插件)

}

例子:定义监控命令监控本机/boot使用率、ftp端口状态、以及系统进程状态

    1. :接收报警信息的邮箱地址  email  nagios@localhost
    1. :定义监控时间模板  24*7
    2. :定义监控模板  linux-server主机、local-service资源

监控本机引导分区的使用情况 剩余空间小于50%报警  小于25%报错;监控本机ftp服务的运行状态,监控本机登录的用户数量大于1个时 报警 大于 2个时 报错 ,不监控本机交换分区的使用情况。

vim  commands.cfg

####################myselft define#############################################

define command{

command_name check_disk_boot

command_line $USER1$/check_disk -w 50% -c 25% -p /boot

}

define command{

        command_name check_local_ftp

        command_line $USER1$/check_tcp -H localhost -p 21

}

define command{

command_name check_local_users

command_line $USER1$/check_users -w $ARG1$ -c $ARG2$ 

}

define command{

        command_name check_local_proc

        command_line $USER1$/check_procs -w $ARG1$  -c $ARG2$ -s $ARG3$

}

define command{

        command_name check_http

        command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$

}

 

 

  1. 定义监控对象,修改或自定义新的配置文件 ----> /usr/local /nagios/etc/objects/localhost.cfg

localhost.cfg 配置的语法格式

define host {             # 配置被监控的主机

     use                   使用的主机监控模板名,   //如linux-server 模版

host_name              目标主机名 ,            //如localhost

alias                   别名

    address                 被监控主机的ip地址       //如127.0.0.1

}

define service{           #配置被监控的服务

     use                    使用的服务监控模板名,     //local-service  模版

      host_name             目标主机名                 //如localhost

  service_description   服务描述信息

  check_command          使用的监控命令

    •  
    • commands.cfg监控命令定义监控命令用到变量时,localhost.cfg本机配置文件在调用监控命令时需要赋值,语法格式为:check_command      自定义的命令名!值1!值2!...

 

  1. 由nagios服务在主配置里加载监控配置文件  ----> /usr/local /nagios/etc/objects/nagios.cfg

cfg_file=加载配置

 

4) 检查配置

 alias checknagios=’/usr/local/nagios/bin/nagios -v /usr/local /nagios/etc/objects/commands.cfg’    //-v,验证

5) 重启监控服务

6) 访问监控监控页面查看

6.1 监控本机---->修改监控本机的配置文件localhost.cfg

    •  
    • ftp服务的运行状态,监控本机引导分区的空闲空间使用情况,监控本机正在运行进程的数量,不监控本机的交换分区,监控本机系统登录用户数量时,登录用户数大于1警告大于2报错

添加新的监控资源:监控本机引导分区、监控本机ftp服务

vim  localhost.cfg

define host {             

     use               linux-server

host_name              localhost

alias                  localhost

address            127.0.0.1

}

define service{

        use                             local-service

        host_name                       localhost

        service_description             ftp

        check_command                   check_local_ftp

        }

define service{

        use                             local-service

        host_name                       localhost

        service_description             boot

        check_command                   check_local_boot

        }

define service{

        use                             local-service

        host_name                       localhost

        service_description             run-process

        check_command                   check_local_process!50!51!R

        }

define service{

        use                             local-service

        host_name                       localhost

        service_description             ssh

        check_command                   check_local_ssh!1!2

        }

 

#删除已经监控的资源:不监控本机的交换分区

#define service{

#        use                             local-service         

#        host_name                       localhost

#        service_description             Swap Usage

#       check_command                   check_local_swap!20!10

#        }

#修改已有监控资源监控阀值:登录系统用户数量 >1时警告, >2时错误

define service{

        use                             local-service         

        host_name                       localhost

        service_description             Current Users

        check_command                   check_local_users!1!2

        }  

 

:wq

 

检查配置语法

#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/objects/localhost.cfg

#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

 

重启nagios服务并客户端测试

# /etc/init.d/nagios stop

# /etc/init.d/nagios start

Or

# /etc/init.d/nagios restart

firefox http://IP地址/nagios

 

###############################################################################

6.2 监控远端主机

6.2.1 监控远端主机公有资源(服务)

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

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

要求:监控主机10上数据库服务和网站服务的运行状态,监控主机状态

实验前准备:准备被监控主机server10

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

[root@nagios~]# ping  192.168.4.10

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

[root@nagios~]# yum  -y  install  httpd  vsftpd

[root@nagios~]# systemctl  restart  httpd  vsftpd  sshd

[root@nagios~]# systemctl  disable  firewalld  --now

  1. 定义监控命令

vim  commands.cfg

define command{

        command_name check_10_tcp

        command_line $USER1$/check_tcp -H 192.168.4.10 -p 21

}

define command{

        command_name check_local_10_http

        command_line $USER1$/check_http -H 192.168.4.10

}

  1. 创建监控主机的配置文件

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

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

[root@nagios ~]# vim  /usr/local/nagios/etc/objects/server10.cfg

define host {

        use    linux-server

        host_name   server10

        address  192.168.4.10

        }

define service {

        use    local-service

        host_name   server10

        service_description     PING

        check_command         check_ping!100.0,20%!500.0,60%

        }

define service  {

        use    local-service

        host_name   server10

        service_description          Web Server

        check_command               check_http

        }

define service  {

        use    local-service

        host_name   server10

        service_description           FTP Server

        check_command               check_ftp

        }

define service  {

        use    local-service

        host_name   server10

        service_description           SSH Server

        check_command               check_ssh

        }

 

  1. 配置Nagios服务运行时,加载监控远端主机的配置文件

[root@nagios ~]# vim /usr/local/nagios/etc/nagios.cfg

.. ..

cfg_file=/usr/local/nagios/etc/objects/server10.cfg    //添加行

 

  1. 检查配置

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/objects/commands.cfg

  1. 重启监控服务

[root@nagios ~]# systemctl  restart  nagios

 

  1. 登录监控页面查看监控信息

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

1)确认Hosts下新增的主机。

2)确认Services下新增的服务信息。

 

 

6.2.2 监控远端主机的私钥资源

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

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

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

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

 

配置客户端(被监控主机)

1)安装监控插件nagios-plugins

[root@nagios~]# yum  -y  install  gcc  glibc  glibc-common

[root@nagios~]# groupadd  nagcmd

[root@nagios~]# useradd  -G  nagcmd  nagios

[root@nagios~]# tar  xf  ~/nagios-plugins-2.1.4.tar.gz  -C  /usr/src/  //解压

[root@nagios~]# cd  /usr/src/nagios-plugins-2.1.4/      //进源码目录

[[email protected]]# ./configure  --with-nagios-user=nagios  --with-nagios-group=nagcmd             //配置

[[email protected]]# make         //编译

[[email protected]]# make install       //安装

# ls /usr/local/nagios/libexec/check_*          //查看安装的插件

2)安装nrpe服务

[root@nagios~]# yum  -y  install  openssl-devel gcc gcc-c++   //安装SSL头文件,数据加密传输

[root@nagios~]# tar  xf  nrpe-3.1.0.tar.gz  -C  /usr/src/          //解压

[root@nagios~]# cd  /usr/src/nrpe-3.1.0/                   //进源码目录

[[email protected]]# ./configure                     //配置

[[email protected]]# make  all                      //编译所有

[[email protected]]# make  install                     //安装nrpe及插件

[[email protected]]# make  install-init              //安装服务

[[email protected]]# make  install-config              //安装配置文件

[[email protected]]# make  install-daemon              //安装守护进程

在docs文件夹下有指导安装文件,可查看

#ls /usr/local/nagios/bin/nrpe

#ls /usr/local/nagios/etc/nrpe.cfg

#ls /usr/local/nagios/libexec/check_nrpe

#ls /usr/lib/systemd/system/nrpe.service

 

修改配置文件nrpe.cfg,添加监控主机以及定义监控命令

vim  /usr/local/nagios/etc/nrpe.cfg

格式:allowed_hosts=127.0.0.1,监控服务器的ip地址

  command[命令名]=使用的插件

98 allowed_hosts=127.0.0.1, 192.168.4.11

287 command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

288 command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25    ,20

289 command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /d    ev/hda1

290 command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10     -s Z

291 command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 2    00

添加以下几句

command[nrpe_check_users]=/usr/local/nagios/libexec/check_users -w 1  -c 2

command[nrpe_check_boot]=/usr/local/nagios/libexec/check_disk -w 30% -c 15% -p /boot

command[nrpe_check_sum_proc]=/usr/local/nagios/libexec/check_disk -w 100 -c 101

command[nrpe_check_running_procs]=/usr/local/nagios/libexec/check_procs -w 50 -c 51 -s R

:wq

启动服务

#netstat -utnalp  | grep :5666

#systemctl  start nrpe ;  systemctl  enable nrpe

#netstat -utnalp  | grep :5666

测试配置

连接本机的nrpe服务测试配置:

/usr/local/nagios/libexec/check_nrpe -H localhost -p 5666 -c nrpe服务自定义命令名

#/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -p 5666 -c nrpe_check_boot

#/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -p 5666 -c nrpe_check_users

# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -p 5666 -c check_nrpe_check_running_procs

 

配置服务端(192.168.4.11)

1) 提供连接nrpe服务的插件

/usr/local/nagios/libexec/check_nrpe -H 被监控主机ip地址 -p 5666 -c 命令名

 

a 安装提供check_nrpe插件的软件包

#rpm -q  gcc gcc-c++  make  openssl  openssl-devel

#yum -y  install  gcc gcc-c++  make  openssl  openssl-devel  //安装网站平台环境以及编译工具

[root@nagios~]# groupadd  nagcmd

[root@nagios~]# useradd  -G  nagcmd  nagios

 

[root@nagios~]# tar  xf  ~/nagios-plugins-2.1.4.tar.gz  -C  /usr/src/  //解压

[root@nagios~]# cd  /usr/src/nagios-plugins-2.1.4/      //进源码目录

[[email protected]]# ./configure  --with-nagios-user=nagios  --with-nagios-group=nagcmd ; make && make install  

[root@nagios~]# tar  xf  nrpe-3.1.0.tar.gz  -C  /usr/src/          //解压

[root@nagios~]# cd  /usr/src/nrpe-3.1.0/                   //进源码目录

[[email protected]]# ./configure ;make; make all;make install;make install-init; make install-config                     

[[email protected]]# make  install-plugin             //安装服务

# ls /usr/local/nagios/libexec/check_nrpe

 

b 使用插件check_nrpe连接被监控主机

#/usr/local/nagios/libexec/check_nrpe -H 192.168.4.11 -p 5666 -c check_zombie_procs

 

# /usr/local/nagios/libexec/check_nrpe -H 192.168.4.12 -p 5666 -c nrpe_check_users

 

定义监控命令

vim  commands.cfg

define command {

        command_name  check_12_users

        command_line  $USER1$/check_nrpe -H 192.168.4.12 -p 5666 -c nrpe_check_users

}

 

define command {

        command_name  check_12_procs

        command_line  $USER1$/check_nrpe -H 192.168.4.12 -p 5666 -c nrpe_check_rprocs

}

 

define command {

        command_name  check_nrpe

        command_line  $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }

:wq

在监控主机的配置文件里调用定义的监控命令

vim  server10.cfg

define service{

        use                             local-service

        host_name                       server10

        service_description             boot

        check_command                   check_12_boot

        }

 

define service{

        use                             local-service

        host_name                       server10

        service_description             running-procs

        check_command                   check_12_procs

        }

 

define service{

        use                             local-service

        host_name                       server10

        service_description             users

        check_command                   check_12_users

        }

define service{

        use                             local-service

        host_name                       server10

        service_description             NRPE-Users

        check_command                   check_nrpe!check_users

        }

define service{

        use                             local-service

        host_name                       server10

        service_description             NRPE-Users

        check_command                   check_nrpe!check_users

        }

 

 

检查配置

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

 

重启服务

#/etc/init.d/nagios  stop

#/etc/init.d/nagios  start

登录监控页面查看监控信息

/etc/init.d/nagios  restart------>254:firefox  http://192.168.4.88/nagios

 

3)定义nrpe监控命令

[root@nagios~]# 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@nagios~]# systemctl  restart  nrpe

[root@nagios~]# systemctl  enable  nrpe

.. ..

[root@nagios~]# /usr/local/nagios/libexec/check_nrpe   -H  localhost

NRPE v3.1.0-rc1              //测试连本机nrpe服务

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

1)为Nagios安装check_nrpe插件

[root@nagios ~]# yum  -y  install  openssl-devel

[root@nagios ~]# tar  xf  nrpe-3.1.0.tar.gz  -C  /usr/src/

[root@nagios ~]# cd  /usr/src/nrpe-3.1.0/

[root@nagios nrpe-3.1.0]# ./configure

[root@nagios nrpe-3.1.0]# make  all                  //编译所有

[root@nagios nrpe-3.1.0]# make  install-plugin         //安装check_nrpe插件

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

[root@nagios ~]# /usr/local/nagios/libexec/check_nrpe  -H  192.168.4.10

NRPE v3.1.0-rc1                                  //测试连远程 的nrpe服务

[root@nagios ~]# 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@nagios ~]# 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主机及服务监控结果。

 

 

7 配置监控报警

/usr/local/nagios/etc/

[root@nagios etc]# vim resource.cfg

[root@nagios etc]# sed -n "34p" objects/contacts.cfg

        email                           nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

nagios@localhost改为工作邮件,要通ping通邮件ip,要配置postfix

# rpm -q postfix

# systemctl status postfix

# grep nagios /etc/passwd

nagios:x:1001:1002::/home/nagios:/bin/bash

# mail -s “xxx” nagios < /etc/hosts

# su -nagios       //或使用mail -u nagios 查看本地用户的邮件

# mail

 

你可能感兴趣的:(监控)