Nagios监控配置文件及监控流程

Posted legenidongma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nagios监控配置文件及监控流程相关的知识,希望对你有一定的参考价值。

1、安装路径/usr/local/nagios/下存在etc、bin、sbin、share、var 这五个目录。Nagios 各个目录用途说明如下:

bin    Nagios 可执行程序所在目录
etc   Nagios 配置文件所在目录
sbin  Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录
share        Nagios网页文件所在的目录
libexec      Nagios 外部插件所在目录
var   Nagios 日志文件、lock 等文件所在的目录
var/archives     Nagios 日志自动归档目录
var/rw      用来存放外部命令文件的目录
ls /usr/local/nagios/etc/objects/
commands.cfg contacts.cfg  localhost.cfg  printer.cfg switch.cfg  templates.cfg  timeperiods.cfg  windows.cfg
每个文件或目录含义如下表所示:
文件名或目录名     用途
cgi.cfg           控制CGI访问的配置文件
nagios.cfg         Nagios 主配置文件
resource.cfg    变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如$USER1$
objects     objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象
objects/commands.cfg    命令定义配置文件,其中定义的命令可以被其他配置文件引用
objects/contacts.cfg        定义联系人和联系人组的配置文件
objects/localhost.cfg       定义监控本地主机的配置文件
objects/printer.cfg  定义监控打印机的一个配置文件模板,默认没有启用此文件
objects/switch.cfg   定义监控路由器的一个配置文件模板,默认没有启用此文件
objects/templates.cfg     定义主机和服务的一个模板配置文件,可以在其他配置文件中引用
objects/timeperiods.cfg  定义Nagios 监控时间段的配置文件
objects/windows.cfg        监控Windows 主机的一个配置文件模板,默认没有启用此文件。

第一:定义监控哪些主机、主机组、服务和服务组;

第二:定义这个监控要用什么命令实现;

第三:定义监控的时间段;

第四:定义主机或服务出现问题时要通知的联系人和联系人组。

nagios.cfg内容详解:
log_file=/usr/local/nagios/var/nagios.log   # 定义nagios日志文件的路径  
cfg_file=/usr/local/nagios/etc/objects/commands.cfg     # “cfg_file”变量用来引用对象配置文件,如果有更多的对象配置文件,在这里依次添加即可。  
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg    
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg  
cfg_file=/usr/local/nagios/etc/objects/services.cfg  
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg  
cfg_file=/usr/local/nagios/etc/objects/templates.cfg  
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg       # 本机配置文件
cfg_file=/usr/local/nagios/etc/objects/windows.cfg         # windows 主机配置文件  
object_cache_file=/usr/local/nagios/var/objects.cache      # 该变量用于指定一个“所有对象配置文件”的副本文件,或者叫对象缓冲文件  
precached_object_file=/usr/local/nagios/var/objects.precache  
resource_file=/usr/local/nagios/etc/resource.cfg           # 该变量用于指定nagios资源文件的路径,可以在nagios.cfg中定义多个资源文件。  
status_file=/usr/local/nagios/var/status.dat               # 该变量用于定义一个状态文件,此文件用于保存nagios的当前状态、注释和宕机信息等。  
status_update_interval=10                                  # 该变量用于定义状态文件(即status.dat)的更新时间间隔,单位是秒,最小更新间隔是1秒。  
nagios_user=nagios         # 该变量指定了Nagios进程使用哪个用户运行。  
nagios_group=nagios       # 该变量用于指定Nagios使用哪个用户组运行。  
check_external_commands=1     # 该变量用于设置是否允许nagios在web监控界面运行cgi命令;  
                                                           # 也就是是否允许nagios在web界面下执行重启nagios、停止主机/服务检查等操作;  
                                                           # “1”为运行,“0”为不允许。  
command_check_interval=10s         # 该变量用于设置nagios对外部命令检测的时间间隔,如果指定了一个数字加一个"s"(如10s);  
                                                           # 那么外部检测命令的间隔是这个数值以秒为单位的时间间隔;  
                                                           # 如果没有用"s",那么外部检测命令的间隔是以这个数值的“时间单位”的时间间隔。  
interval_length=60              # 该变量指定了nagios的时间单位,默认值是60秒,也就是1分钟;  
# 即在nagios配置中所有的时间单位都是分钟。

timeperiods.cfg文件详解:

define contact{  
        name                            generic-contact    ; 联系人名称  
        service_notification_period     24x7               ; 当服务出现异常时,发送通知的时间段,这个时间段"24x7"在timeperiods.cfg文件中定义  
        host_notification_period        24x7               ; 当主机出现异常时,发送通知的时间段,这个时间段"24x7"在timeperiods.cfg文件中定义  
        service_notification_options    w,u,c,r            ; 这个定义的是“通知可以被发出的情况”。w即warn,表示警告状态,u即unknown,表示不明状态;  
                                                           ; c即criticle,表示紧急状态,r即recover,表示恢复状态;  
                                                           ; 也就是在服务出现警告状态、未知状态、紧急状态和重新恢复状态时都发送通知给使用者。  
        host_notification_options       d,u,r                   ; 定义主机在什么状态下需要发送通知给使用者,d即down,表示宕机状态;  
                                                                ; u即unreachable,表示不可到达状态,r即recovery,表示重新恢复状态。  
        service_notification_commands   notify-service-by-email ; 服务故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件;  
                                                                ; 其中“notify-service-by-email”在commands.cfg文件中定义。  
        host_notification_commands      notify-host-by-email    ; 主机故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件;  
                                                                ; 其中“notify-host-by-email”在commands.cfg文件中定义。   
        register                        0                    ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!  
        }  
define host{  
        name                            generic-host    ; 主机名称,这里的主机名,并不是直接对应到真正机器的主机名;  
                                                        ; 乃是对应到在主机配置文件里所设定的主机名。  
        notifications_enabled           1               ; Host notifications are enabled  
        event_handler_enabled           1               ; Host event handler is enabled  
        flap_detection_enabled          1               ; Flap detection is enabled  
        failure_prediction_enabled      1               ; Failure prediction is enabled  
        process_perf_data               1               ; 其值可以为0或1,其作用为是否启用Nagios的数据输出功能;  
                                                        ; 如果将此项赋值为1,那么Nagios就会将收集的数据写入某个文件中,以备提取。  
        retain_status_information       1               ; Retain status information across program restarts  
        retain_nonstatus_information    1               ; Retain non-status information across program restarts  
        notification_period             24x7            ; 指定“发送通知”的时间段,也就是可以在什么时候发送通知给使用者。  
        register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!  
        }

2、Nagios监控客户端流程及步骤

1)Nagios客户端安装需要安装两个软件,nagios-plugins-1.4.14.tar.gz和nrpe-2.14.tar.gz,安装方法如下:

wget http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz;useradd nagios ;tar -xzf  nagios-plugins-1.4.14.tar.gz &&cd nagios-plugins-1.4.14 &&./configure --prefix=/usr/local/nagios &&make &&make install
tar -xzf nrpe-2.14.tar.gz && cd nrpe-2.14 &&./configure --enable-ssl --with-ssl-lib &&make all && make install-plugin && make install-daemon && make install-daemon-config
chown -R nagios:nagios /usr/local/nagios/ ;cd .. ;cp nrpe.cfg /usr/local/nagios/etc/nrpe.cfg
启动nrpe客户端命令:/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

2) Nrpe客户端配置

修改vi /usr/local/nagios/etc/nrpe.cfg 修改默认配置段的内容如下,去掉#号,做相应修改。
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_disk]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda2
command[check_procs]=/usr/local/nagios/libexec/check_procs -w 50 -c 100 
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20 -c 10

3)Nagios服务器Nrpe配置

Nagios 服务器端也需要安装nrpe,同时需要定义Nrpe监控命令,写command.cfg末尾即可:
define command{
     command_name check_nrpe
      command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
  }

4) Nagios监控端客户机配置

在192.168.0.112.cfg加入如下配置段,引用客户端nrpe.cfg里面配置的check_load命令,命令一般格式为:check_nrpe!command

define service{

        use                              local-service     

        host_name                        192.168.0.112

        service_description               Current Load

        check_command                   check_nrpe!check_load

        }

 

以上是关于Nagios监控配置文件及监控流程的主要内容,如果未能解决你的问题,请参考以下文章

监控之--Nagios如何监控本地主机及本地服务

监控之--Nagios如何监控本地主机及本地服务

nagios 监控

Security基础:OpenSSL及证书服务常用系统监控命令搭建nagios监控服务器配置文件及插件使用监控远程主机的公有数据监控远程主机的私有数据

Nagios监控基础安装与监控项部署(下)

企业监控利器nagios应用续集