Nagios学习笔记之(二)监控部署

前言:本篇致力于初涉Nagios的同学,老鸟绕行!
前面已经把最基本的Nagios以及插件安装好了,现在只能对本机进行监控,要想监控远程主机,就必须通过类似于NRPE的软件来实现。
监控端和被监控端都要装nrpe,因为靠此来通信,nrpe是通过ssl来通信的,所以比较安全。
用到ssl就得装相关支持的包:yum -y install openssl openssl-devel
现在开始来安装nrpe:
以下操作在监控端进行:
首先把下载下来的nrpe-2.12.tar解压(自行网上下载)
  1. #tar zxf nrpe.2.12.tar

  2. #cd nrpe-2.12

  3. #./configure  

  4. #make all

  5. #make install-plugin

安装完成后会在/usr/local/nagios/libexec/下生成check_nrpe文件
下面定义一个check_nrpe监控命令(默认装好以后没有被nagios调用)
顺带说下监控整体思想:
1.要定义监控的主机或服务
2.执行什么命令来监控
3.出现问题要通知的人
4.采用什么方式通知,邮件|短信    -----后续再细说
修改/usr/local/nagios/etc/commands.cfg(定义命令的文件),添加如下内容:
  1. define command {

  2.    command_name    check_nrpe

  3.    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

  4. }

至此监控端暂时完事。
以下操作在被监控端进行:
需要两个文件:
nagios-plugins-1.4.15.tar    (nrpe依赖于这个插件)

nrpe-2.12.tar                (远程通信)

yum -y install xinetd  

首先创建安装用户:
useradd -s /sbin/nologin nagios
解压安装Nagios插件:
  1. #tar xzf nagios-plugins-1.4.15.tar.gz  

  2. #cd nagios-plugins-1.4.15

  3. #./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios

  4. #make && make install

解压安装nrpe:
  1. #tar zxf nrpe.2.12.tar

  2. #cd nrpe-2.12

  3. #./configure  

  4. #make all

  5. #make install-plugin

  6. #make install-daemon

  7. #make install-daemon-config

  8. #make install-xinetd

安装完毕。
接下来把nrpe交由xinetd来监听(好处:修改nrpe的配置文件不需要重启服务
vim /etc/xinetd.d/nrpe
将only_from = 后面加上监控端的地址
确保/etc/services有nrpe 5666/tcp #NRPE这一行,没有则添加
重启xinetd服务,至此被监控端配置完毕。
接下来测试下连通性,在监控端执行:
/usr/local/nagios/libexec/check_nrpe -H 被监控端的地址
如能显示 “NRPE v2.12”,表明NRPE可以和被监控端正常通信。
部署前的工作基本OK了。
下面来说说,服务器上具体是怎么部署监控的。
首先来看下Nagios的目录结构
bin                   #存放执行文件,如nagios,以及后续安装的扩展程序
etc                   #存放配置文件,如nagios.cfg主配文件,平时部署维护操作最多的文件夹
include               #存放引用文件,默认为空
libexec               #存放执行命令,如check_load等,里面有很多命令,需要熟练掌握
sbin                  #存放一些cgi,平时一般不用动
share                 #存放一些网页文件,平时一般不用动
var                   #存放一些产生的数据文件,平时一般不用动
比较重要的就是etc和libexec。
下面说下如何定义一台主机以及主机上的服务:
首先修改:/usr/local/nagios/etc/nagios.cfg
去掉cfg_dir=/usr/local/nagios/etc/servers前面的注释
mkdir //usr/local/nagios/etc/servers
将来新建的主机以及服务都可以存放在这下面,建议把主机和服务写在一个配置文件中,按主机来划分,便于管理。
例如:
要监控一台http服务器
可以在servers下面新建一个以cfg结尾的文件
vim simple-http.cfg
  1. define host{                          #定义一个主机

  2.        use linux-server              #引用etc/objects/templates.cfg中的linux-server配置(后续细说)

  3.        host_name http                #定义一个主机名,并不是http的实际主机名,任意即可,但要继续,后面要调用

  4.        alias http                    #定义一个别名

  5.        address 192.168.1.1           #指定地址

  6. }

  7. define service{                       #定义一个服务

  8.        use generic-service           #引用etc/objects/templates.cfg中的generic-service配置(后续细说)

  9.        host_name http                #引用主机名

  10.        service_description CPU Load  #定义监控服务名,就是在web网页上显示的服务名

  11.        check_command check_nrpe!check_load  #定义要执行的命令:让check_nrpe调用被监控端的check_load命令执行

  12. }                                     #以下类似(备注:每条定义的命令都必须在etc/nrpe.cfg中明确定义)          

  13. define service{          

  14.        use generic-service

  15.        host_name http

  16.        service_description Current Users

  17.        check_command check_nrpe!check_users

  18. }

  19. define service{

  20.        use generic-service

  21.        host_name http

  22.        service_description Disk Free Space /

  23.        check_command check_nrpe!check_root

  24. }

  25. define service{

  26.        use generic-service

  27.        host_name http

  28.        service_description Total Processes

  29.        check_command check_nrpe!check_total_procs

  30. }

  31. define service{

  32.        use generic-service

  33.        host_name http

  34.        service_description Zombie Processes

  35.        check_command check_nrpe!check_zombie_procs

  36. }

保存以后,check一下,没问题重载nagios的配置文件
service nagios reload
登录网页后就会看见定义监控的项目了。


后续:配置文件详解