Nagios介绍

Nagios是一款开源的网络及服务的监控工具,能够有效监控Windows、Linux和Unix等系统主机的各种状态以及交换机、路由器等网络设备。根据不同业务故障级别发送告警信息(邮件、短信、微信…)故障恢复时会发出恢复消息给管理员
Nagios服务端可以安装在Liunx系统和类Unix系统上运行,目前无法在windows上运行(客户端可以)可以用作被监控的主机,但不能作为监控服务器
Nagios监控一般由一个主程序Nagios、一个插件程序Nagios-plugins和一些可选的附加程序(NRPE、NSclient++、NSCA和NDOUtils)等
Nagios本身就是一个监控的平台而已,其具体的监控工作都是通过插件(Nagios-plugins,也可自己编写)来实现,因此Nagios主程序和Nagios-plugins插件都是服务端必须装置的
Nagios-plugins一般也要安装在客户端
几个附加程序的描述
1.NRPE:半被动模式
NRPE软件工作在被监控端,操作系统为linux\unix系统
他用于在被监控的远程Linux、Unix主机上执行脚本插件获取数据回传给服务端,以实现
对这些主机资源的监控
守护进程(agent)模式,开启端口5666
用于监控本地资源:负载uptime、CPU(top、sar)、磁盘(df -hi)、内存(free swap)、IO(iostat)、RAID级别、CPU温度、passwd文件的变化,本地所有文件指纹识别监控
2.NSclient++ 半被动模式
用于被监控端为windows系统的服务器
相当于linux下的NRPE
用于监控windows主机时,安装在windwos主机上的组件
4.NSCA 纯被动模式
NSCA需要同时安装在服务器端和被监控端
用于让被监控的远程Linux、Unix主机主动将被监控到的信息发生给Nagios服务器在分布式监控集群模式中用到,300台以内可以不用

NRPE运行原理
image.png

相当于领导分配工作,下属做完汇报工作

环境部署

准备两台虚拟机一台用在nagios服务端另一台为客户端

主机名 IP地址 服务
nagios 192.168.200.15 apache、mariadb-server、Nagios nagios-plugins、nrpe
client 192.168.200.20 nagios-plugins、nrpe

网卡的配置

  1. [root@nagios etc]# cat /etc/sysconfig/network-scripts/ifcfg-eno33554960
  2. TYPE=Ethernet
  3. BOOTPROTO=static
  4. DEFROUTE=yes
  5. PEERDNS=yes
  6. PEERROUTES=yes
  7. IPV4_FAILURE_FATAL=no
  8. IPV6INIT=yes
  9. IPV6_AUTOCONF=yes
  10. IPV6_DEFROUTE=yes
  11. IPV6_PEERDNS=yes
  12. IPV6_PEERROUTES=yes
  13. IPV6_FAILURE_FATAL=no
  14. NAME=eno33554960
  15. UUID=56f3bb1a-365f-4152-a402-80d74a925006
  16. DEVICE=eno33554960
  17. ONBOOT=yes
  18. IPADDR=192.168.200.15
  19. GATEWAY=192.168.200.2
  20. NETMASK=255.255.255.0
  21. DNS1=114.114.114.114

配置关闭防火墙、selinux安全机制及其iptables

  1. [root@nagios ~]# systemclt stop firewalld
  2. [root@nagios ~]# systemctl disable firewalld
  3. [root@nagios ~]# setenforce 0
  4. [root@nagios ~]# vi /etc/syscocnfig/selinux
  5. [root@nagios ~]# iptables -F
  6. [root@nagios ~]# iptables -Z
  7. [root@nagios ~]# iptables -X
  8. [root@nagios ~]# iptables-save

配置端口映射

  1. [root@nagios ~]# cat /etc/hosts
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. nagios 192.168.200.15
  5. client 192.168.200.20

配置yum源
我这里用的源是把Centos7 的镜像文件挂载到了/opt/centos
因为我的client客户端没有源 所以我给他配置了FTP源

  1. 客户端要安装vsftp包、配置vsftpd.cnf配置文件
  2. [root@client yum.repos.d]# cat ftp.repo
  3. [centos]
  4. name=centos
  5. baseurl=ftp://192.168.200.15/centos
  6. enabled=1
  7. gpgcheck=0
  8. [root@nagios ~]# cat /etc/yum.repos.d/local.repo
  9. [centos]
  10. name=centos
  11. baseurl=file:///opt/centos
  12. enabled=1
  13. gpgcheck=0

调整字符集 如果不安装后面安装一些插件会有错误

  1. [root@nagios ~]# echo 'export LC_ALL=C' >>/etc/profile
  2. [root@nagios ~]# source /etc/profile

配置时间同步
我这里是把所有的节点统一配置成了aliyun.com
时区设置为了Asia/Shanghai

  1. [root@nagios ~]# yum install -y ntpdate
  2. [root@nagios ~]# mv /etc/localtime{,.bak} #做一个备份
  3. [root@nagios ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  4. [root@nagios ~]# date

更换yum源
由于之前我设置的yum源 一些依赖不可以安装所以 我进行的更换yum源的操作

  1. yum install -y wget
  2. #先将之前的源备份一下
  3. sudo mv /etc/yum.repos.d/local.repo /etc/yum.repos.d/CentOS-local.repo.blk
  4. wget -nc http://mirrors.aliyun.com/repo/Centos-7.repo
  5. v Centos-7.repo CentOS-Base.repo #更换yum源为默认的源
  6. yum clean all
  7. yum repolist 更新本地yum缓存

这是国内yum源的站点

  1. 阿里yum源:http://mirrors.aliyun.com/repo/
  2. 163(网易)yum源: http://mirrors.163.com/.help/
  3. 中科大的Linux安装镜像源:http://centos.ustc.edu.cn/
  4. 搜狐的Linux安装镜像源:http://mirrors.sohu.com/
  5. 北京首都在线科技:http://mirrors.yun-idc.com/

搭建Lamp环境

因为 Nagios服务端的web界面需要Apache、php的支持 所以我们还需要简易搭建一个LAMP的环境

  1. 安装apache
  2. yum install -y httpd
  3. systemctl start httpd
  4. systemct enable httpd #设置httpd开机自启动
  5. 安装mariadb(也就是mysql
  6. yum intall -y mariadb
  7. systemclt start maraidb
  8. systemctl enable mariadb
  9. 进入mariadb数据库 修改密码
  10. MariaDB [(none)]> set password for 'root'@'localhost'=password('root');
  11. Query OK, 0 rows affected (0.00 sec)
  12. MariaDB [(none)]> grant all on *.* to root identified by 'root';
  13. Query OK, 0 rows affected (0.00 sec)
  14. 安装php以及组件,同时使php支持mariadb数据库
  15. yum install -y php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash
  16. systemctl restart mariadb.service #重启MariaDB
  17. systemctl restart httpd.service #重启Apache

这样我们的lamp环境就搭建好了 可以测试一下

  1. cd /var/www/html
  2. vi index.php
  3. <?
  4. phpinfo();
  5. ?>

去客户端浏览器输入服务器的IP地址即可出现
image.png

在创建Nagios服务端需要安装web展示依赖软件

  1. [root@nagios ~]#yum install -y gcc glibc glibc-common gd gd-devel httpd php php-gd mysql*

这里对这些文件做一下解释说明:
gcc glibc glibc-common 这就是一个gcc的编译器
gd gd-devel httpd 他是Nagios服务端Web界面中的Map绘制拓扑图用的
httpd php php-gd Lamp 环境
mysql* 生成MySQL的插件,MySQL不需要启动
如果搭建过lamp环境在执行也不会报错 可能会升级安装过的lamp环境

创建所需的用户 将apache和nagios同属一个组方便进行管理

  1. [root@nagios ~]# useradd -m nagios
  2. [root@nagios ~]# groupadd nagcmd
  3. [root@nagiosr ~]# usermod -a -G nagcmd nagios
  4. [root@nagios ~]# usermod -a -G nagcmd apache

安装 Nagios平台

  1. [root@nagios ~]#cd /usr/local/src
  2. [root@nagios src]# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.1.tar.gz
  3. [root@nagios-server src]# tar -zxf nagios-4.3.1.tar.gz
  4. [root@nagios-server src]# ls
  5. nagios-4.3.1 nagios-4.3.1.tar.gz
  6. [root@nagios-server src]# cd nagios-4.3.1/
  7. [root@nagios-server nagios-4.3.1]# ./configure --with-command-group=nagcmd
  8. # 执行编译安装时 会提示错误 安装 yum -y install unzip zip 即可
  9. [root@nagios-server nagios-4.3.1]#make all
  10. [root@nagios-server nagios-4.3.1]#make install
  11. [root@nagios-server nagios-4.3.1]#make install-init
  12. [root@nagios-server nagios-4.3.1]#make install-commandmode
  13. [root@nagios-server nagios-4.3.1]#make install-config
  14. [root@nagios-server nagios-4.3.1]#make install-webconf
  15. # 要确保执行以上命令 不会出现错误
  1. Nagios目录说明
  2. 完成以上步骤之后,在/usr/local/nagios/ 目录下会生成一系列文件和文件夹,了解目录下的文件的用途对学习Nagios和排错有很大的帮助,下面进行解释说明每个文件夹的作用:
  3. 文件夹 用途
  4. bin Nagios 可执行程序所在目录
  5. etc Nagios 配置文件所在目录
  6. sbin Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录
  7. share Nagios网页文件所在的目录
  8. libexec Nagios 外部插件所在目录
  9. var Nagios 日志文件、lock 等文件所在的目录
  10. var/archives Nagios 日志自动归档目录
  11. var/rw 用来存放外部命令文件的目录
  12. Nagios 安装完毕后,默认的配置文件在/usr/local/nagios/etc目录下,文件用途解释说明:
  13. 文件或者文件夹 用途
  14. cgi.cfg 控制CGI访问的配置文件
  15. nagios.cfg Nagios 主配置文件
  16. resource.cfg 变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如U S E R 1 USER1USER1
  17. objects objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象
  18. objects/contacts.cfg 定义联系人和联系人组的配置文件
  19. objects/commands.cfg 命令定义配置文件,其中定义的命令可以被其他配置文件引用
  20. objects/localhost.cfg 定义监控本地主机的配置文件
  21. objects/printer.cfg 定义监控打印机的一个配置文件模板,默认没有启用此文件
  22. objects/switch.cfg 定义监控路由器的一个配置文件模板,默认没有启用此文件
  23. objects/templates.cfg 定义主机和服务的一个模板配置文件,可以在其他配置文件中引用
  24. objects/timeperiods.cfg 定义Nagios 监控时间段的配置文件
  25. objects/windows.cfg 监控Windows 主机的一个配置文件模板,默认没有启用此文件

开始配置 Nagios 服务端web界面的用户账号和密码

  1. [root@nagios nagios-4.4.2]# htpasswd -cb /usr/local/nagios/etc/htpasswd.users lizh 123456
  2. Adding password for user lizh
  3. [root@nagios nagios-4.4.2]# echo $?
  4. 0

因为nagios默认把全部的权限给nagiosadmin,所以可以通过修改cgi.cfg文件授权给刚刚新建的lizh这个用户。如果不授权给wang,后面完成Nagios配置之后,使用账号lizh来登录Nagios服务端的Web界面,将会看不到你配置好的需要监控的主机的所有信息。

  1. [root@nagios-server nagios-4.3.1]#cd /usr/local/nagios/etc
  2. [root@nagios-server etc]# ls
  3. cgi.cfg htpasswd.users nagios.cfg objects resource.cfg
  4. [root@nagios-server etc]# sed -i 's/nagiosadmin/nagiosadmin,lizh/g' cgi.cfg
  5. [root@nagios etc]# grep nagiosadmin cgi.cfg
  6. authorized_for_system_information=nagiosadmin,lizh
  7. authorized_for_configuration_information=nagiosadmin,lizh
  8. authorized_for_system_commands=nagiosadmin,lizh
  9. authorized_for_all_services=nagiosadmin,lizh
  10. authorized_for_all_hosts=nagiosadmin,lizh
  11. authorized_for_all_service_commands=nagiosadmin,lizh
  12. authorized_for_all_host_commands=nagiosadmin,lizh

从上面执行的grep nagiosadmin cgi.cfg查询语句反馈的结果可以看到cgi.cfg文件内的已经授权给用户
重启apache、nagios

  1. [root@nagios-server etc]# systemctl restart httpd
  2. [root@nagios-server etc]# systemctl start nagios

打开浏览器,输入地址:Nagios服务端主机的ip/nagios,输入用户liz密码123456
image.png
image.png
说明:从上图可以看到,监控localhost本机的一些服务全都是CRITICAL(危急),这是因为Nagios服务端默认启动/usr/local/nagios/etc/objects/localhost.cfg,这个文件是监控本机的配置文件,前面说了Nagios只是一个平台,是通过调用插件来干活的,执行下面这条命令,可以看见插件空空如也,所以还不能实现监控本机。

安装Nagios-plugins插件

  1. [root@nagios etc]# yum install -y perl-devel
  2. 安装依赖包软件
  3. 下载nagios-plugins
  4. [root@nagios src]# ls
  5. nagios-4.4.2 nagios-plugins-2.3.3
  6. nagios-4.4.2.tar.gz nagios-plugins-2.3.3.tar.gz
  7. [root@nagios nagios-plugins-2.3.3]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-perl-modules
  8. [root@nagios nagios-plugins-2.3.3]# make &&make install

Nagios的插件

  1. [root@nagios nagios-plugins-2.3.3]# ls /usr/local/nagios/libexec |wc -l
  2. 55
  3. [root@nagios nagios-plugins-2.3.3]# ls /usr/local/nagios/libexec
  4. check_apt check_load check_sensors
  5. check_breeze check_log check_smtp
  6. check_by_ssh check_mailq check_ssh
  7. check_clamd check_mrtg check_ssl_validity
  8. check_cluster check_mrtgtraf check_swap
  9. check_dhcp check_nagios check_tcp
  10. check_disk check_nntp check_time
  11. check_disk_smb check_nt check_udp
  12. check_dummy check_ntp check_ups
  13. check_file_age check_ntp_peer check_uptime
  14. check_flexlm check_ntp_time check_users
  15. check_ftp check_nwstat check_wave
  16. check_http check_oracle negate
  17. check_icmp check_overcr remove_perfdata
  18. check_ide_smart check_ping urlize
  19. check_ifoperstatus check_pop utils.pm
  20. check_ifstatus check_procs utils.sh
  21. check_imap check_real
  22. check_ircd check_rpc
  23. [root@nagios nagios-plugins-2.3.3]#生成插件的个数是由当前所在linux主机拥有的服务所决定的 越多越好

说明:刚才上面说了,哪台Linux想要被监控哪台Linux就装NRPE,可是我不需要监控本机啊!况且我只要Nagios服务端装好Nagios和nagios-plugins之后,启动apache和nagios服务,就会默认启动/usr/local/nagios/etc/objects/localhost.cfg这个配置文件,实现监控本机。那为什么还要在Nagios服务端装NRPE呢?
原因:Nagios服务端需要check_nrpe这个插件,才能实现与客户端的NRPE插件联系,它们之间是通过SSL协议通信。如果Nagios服务端不安装NRPE插件,在/usr/local/nagios/libexec/这个路径下,将找不到check_nrpe这个插件。所以Nagios 服务端需要装NRPE插件。Nagios服务端的NRPE不一定需要运行,但被监控的客户端的NRPE一定得运行起来。

  1. NRPE总共由两部分组成:
  2. check_nrpe ----> 插件,位于监控主机上
  3. NRPE daemon ----> 运行在远程的Linux客户端上(通常就是被监控机)

NRPE的下载

  1. [root@nagios nagios-plugins-2.3.3]# cd /usr/local/src/
  2. [root@nagios src]# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
  3. [root@nagios src]# cd nrpe-2.13
  4. [root@nagios nrpe-2.13]# yum install -y openssl-devel 需要安装依赖
  5. [root@nagios nrpe-2.13]# ./configure
  6. [root@nagios nrpe-2.13]# make all
  7. [root@nagios nrpe-2.13]# make install-plugin

被监控方安装
被监控方只需要安装nagios-plugins和NRPE就行了

建议更换源
执行关闭防火墙、selinux、iptables、配置时间同步、修改字符集

  1. [root@client yum.repos.d]# echo 'export LC_ALL=C' >>/etc/profile
  2. [root@client yum.repos.d]# source /etc/profile

nagios客户端需要安装一些依赖

  1. [root@client yum.repos.d]# yum install -y gcc glibc glibc-common openssl-devel perl-devel
  2. gcc glibc glibc-common :这些是编译器所需,没有就无法编译源码,无法进行源码安装软件。
  3. openssl-devel :这个是待会安装NRPE所需的依赖软件

创建用户

  1. [root@client yum.repos.d]# useradd -m nagios -s /sbin/nologin

开始安装Nagios-plugins插件 部署同上


Nrpe的安装

  1. [root@localhost src]# tar zxvf nrpe-2.13.tar.gz
  2. [root@localhost nrpe-2.13]# ./configure
  3. [root@localhost nrpe-2.13]# make install-plugin
  4. [root@localhost nrpe-2.13]# make install-daemon
  5. [root@localhost nrpe-2.13]# make install-daemon-config

说明:对比刚刚的Nagios服务端的NRPE安装过程,客户端安装NRPE时,多了两条命令(make install-daemon和make install-daemon-config),因为客户端需要运行NRPE daemon与服务端的check_nrpe插件交互,而服务端不需要运行NRPE,所以服务端安装NRPE时候不需要执行make install-daemon和make install-daemon-config

客户端NRPE配置与启动(192.168.200.21)

  1. [root@localhost nrpe-2.13]# cd /usr/local/nagios/etc/
  2. [root@localhost etc]# ls
  3. nrpe.cfg
  4. [root@localhost etc]# vi nrpe.cfg
  5. [root@localhost etc]# grep allowed_hosts nrpe.cfg
  6. allowed_hosts=127.0.0.1,::1,192.168.200.15

说明:首先客户端要与服务端通信,那先得让客户端知道Nagios服务端的ip。打开nrpe.cfg 文件找到并把allowed_hosts=127.0.0.1,::1改为allowed_hosts=127.0.0.1,::1,192.168.200.15
这个添加的192.168.200.15是Nagios服务端的ip,修改完保存退出。

修改配置文件 告诉客户机的NRPE,该守护进程怎么去监控

  1. [root@client etc]# vi /usr/local/nagios/etc/
  2. [root@client etc]# ls
  3. nrpe.cfg

image.png
注释掉上面的内容
底部添加这两条命令

  1. command[check_load]=/usr/local/libexec/check_load -w 15,10,4 -c 30,25,20
  2. command[check_load]=/usr/local/libexec/check_disk -w 20% -c 6% -p /

对应的是监控linux客户端的磁盘占用率和系统负载。

  1. command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,4 -c 30,25,20
  2. 命令解释:当1分钟多于15个进程等待,5分钟多于10个,15分钟多于4个则为warning状态
  3. 1分钟多于30个进程等待,5分钟多于25个,15分钟多于20个则为critical状态
  4. [check_load]:相当于模块名
  5. /usr/local/nagios/libexec/check_load:获取资源的命令
  6. 也就是说通过调用check_load就相当于执行/usr/local/nagios/libexec/check_load这个命令,下同。
  7. command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 6% -p /
  8. 命令解释:-w 20% -c 6% -p /(根分区剩余空间为总大小的20%为warning状态,剩余6%为critical状态,-p后是根分区)

客户端启动NRPE以及测试

  1. [root@client etc]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
  2. [root@client etc]# netstat -ptln | grep 5666
  3. tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 48892/nrpe [root@localhost etc]# /usr/local/nagios/libexec/check_nrpe -H localhost -c check_disk
  4. DISK OK - free space: / 15936 MiB (91.61% inode=100%);| /=1457MiB;13915;16350;0;17394
  5. [root@localhost etc]# /usr/local/nagios/libexec/check_nrpe -H localhost -c check_load
  6. OK - load average: 0.00, 0.01, 0.05|load1=0.000;15.000;30.000;0; load5=0.010;10.000;25.000;0; load15=0.050;4.000;20.000;0;

说明:启动NRPE,启动成功后可以查看到nrpe占用的端口,然后测试服务端本地是否连通以及获取本机的磁盘占用率和系统负载,显示如上表示客户端的NRPE安装配置已完成。提示:重启nrpe 可以先用killall杀掉nrpe进程再启动即可

服务端配置及测试

修改nagios主配置文件

  1. [root@nagios etc]# pwd
  2. /usr/local/nagios/etc
  3. [root@nagios etc]# ls
  4. cgi.cfg htpasswd.users nagios.cfg objects resource.cfg
  5. [root@nagios etc]# vim nagios.cfg

image.png新增如下两行
image.png注释掉此行
说明:注释掉的语句是:默认启动localhost.cfg监控本机的配置文件,这里我不需要监控本机,所以注释掉。新增的两个文件:hosts.cfg是即将新建的文件用来定义主机和主机组;services.cfg是即将新建的文件用来定义这些主机要监控的服务条目。
2.新建配置文件(hosts.cfg 、service.cfg)

  1. [root@nagios objects]# pwd
  2. /usr/local/nagios/etc/objects
  3. [root@nagios objects]# head -51 localhost.cfg > hosts.cfg
  4. [root@nagios objects]# touch services.cfg
  5. [root@nagios objects]# ll
  6. total 60
  7. -rw-rw-r--. 1 nagios nagios 6915 Jan 9 17:07 commands.cfg
  8. -rw-rw-r--. 1 nagios nagios 1797 Jan 7 15:12 contacts.cfg
  9. -rw-r--r-- 1 nagios nagios 2004 Jan 9 17:18 hosts.cfg
  10. -rw-rw-r--. 1 nagios nagios 4777 Jan 7 15:12 localhost.cfg
  11. -rw-rw-r--. 1 nagios nagios 3001 Jan 7 15:12 printer.cfg
  12. -rw-r--r-- 1 nagios nagios 356 Jan 9 17:06 services.cfg
  13. -rw-rw-r--. 1 nagios nagios 3484 Jan 7 15:12 switch.cfg
  14. -rw-rw-r--. 1 nagios nagios 12533 Jan 7 15:12 templates.cfg
  15. -rw-rw-r--. 1 nagios nagios 3512 Jan 7 15:12 timeperiods.cfg
  16. -rw-rw-r--. 1 nagios nagios 4074 Jan 7 15:12 windows.cfg

说明:head -51 localhost.cfg >hosts.cfg :取 localhost.cfg中前51行的内容复制进hosts.cfg文件中。
执行ll查看文件详情,若看见services.cfg和hosts.cfg的用户和用户组不是nagios,需要执行如下命令(我这里显示是nagios,所以不用执行如下命令):

  1. chown -R nagios.nagios services.cfg hosts.cfg

hosts.cfg配置

  1. define host{
  2. use linux-server #引用主机linux-server的属性信息,linux-server主机在templates.cfg文件中进行了定义。
  3. host_name client
  4. alias client
  5. address 192.168.200.21 被监控方的主机地址
  6. }
  7. define hostgroup{
  8. hostgroup_name Linux-servers 主机组的名称 可以随便指定
  9. alias Linux Servers
  10. members client 主机组的成员
  11. }

service.cfg配置

  1. [root@nagios objects]# cat services.cfg
  2. define service{
  3. use generic-service
  4. host_name client #指定要监控哪个主机上的服务,“client”在hosts.cfg文件中进行了定义
  5. service_description Disk Partition 监控内容的描述
  6. check_command check_nrpe!check_disk 指定检测的命令
  7. }
  8. define service{
  9. use generic-service
  10. host_name client
  11. service_description Load
  12. check_command check_nrpe!check_load
  13. }

这里只配置了两个service 如果要想监控更多的客户端的服务 可以添加service进来

commands的配置

  1. 末尾添加 Shift + g
  2. #'check_nrpe' command definition
  3. define command{
  4. command_name check_nrpe
  5. command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
  6. }

验证

  1. [root@nagios etc]# /usr/local/nagios/libexec/check_nrpe -H 192.168.200.21 -c check_disk
  2. DISK OK - free space: / 16049 MiB (92.26% inode=100%);| /=1344MiB;13915;16350;0;17394

说明:# check_nrpe:Nagios服务端的命令,需要在commands.cfg文件中定义。#check_disk:调用客户端配置文件nrpe.cfg中[check_disk]标签后面的命令。可以查看到客户端的返回的磁盘占用情况,表明成功通过NRPE实现远程监控。如果获取不到被监控端的数据,第一:请检查客户端的NRPE是否正常运行,可通过netstat -ptln | grep 5666命令查看端口正常是否打开。第二:请检查服务端与客户端之间的防火墙是否关闭。第三:查看commands.cfg文件内新增的命令是否有错,第四:查看客户端的nrpe.cfg文件内的allowed_hosts=127.0.0.1语句后面是否添加了Nagios服务端的ip。
image.png

排错

  1. [root@nagios objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  2. Nagios Core 4.4.2
  3. Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
  4. Copyright (c) 1999-2009 Ethan Galstad
  5. Last Modified: 2018-08-16
  6. License: GPL
  7. Website: https://www.nagios.org
  8. Reading configuration data...
  9. Read main config file okay...
  10. Read object config files okay...
  11. Running pre-flight check on configuration data...
  12. Checking objects...
  13. Checked 2 services.
  14. Checked 2 hosts.
  15. Checked 2 host groups.
  16. Checked 0 service groups.
  17. Checked 1 contacts.
  18. Checked 1 contact groups.
  19. Checked 25 commands.
  20. Checked 5 time periods.
  21. Checked 0 host escalations.
  22. Checked 0 service escalations.
  23. Checking for circular paths...
  24. Checked 2 hosts
  25. Checked 0 service dependencies
  26. Checked 0 host dependencies
  27. Checked 5 timeperiods
  28. Checking global event handlers...
  29. Checking obsessive compulsive processor commands...
  30. Checking misc settings...
  31. Total Warnings: 0
  32. Total Errors: 0
  33. Things look okay - No serious problems were detected during the pre-flight check

说明:看到Total Warnings: 0 Total Errors: 0,说明配置文件没有错误可以启动Nagios服务端进行测试了。若出现错误,按照提示的错误信息对配置文件逐一进行排查, Nagios服务端整个配置过程中的查错都是通过执行/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg语句反馈的结果来进行。