实战Nagios NSCA方式监控Linux系统资源使用情况 -- Nagios配置篇 -- Nagios Server端

关于nrpe的方式网上已经有很多很好的总结,我现在说说在我们系统中如何是用NSCA方式来获取我们需要的被监控节点的资源使用情况信息。
先讲讲Nagios Server端的基本配置:

1. nagios web gui 访问配置,系统中使用的是nagios core中推荐的配置方式,通过apache httpd访问nagios web,安装nagios的时候会自动寻找系统中安装的httpd,把nagios的httpd文件放到httpd的conf.d目录下,这样,只要生成一次nagios web访问的密码就可以通过http://localhost/nagios/访问nagios web.
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
2. 添加要监控的机器和要监控的服务
2.1  /usr/local/nagios/etc/nagios.cfg: 增加要配置的OBJECT CONFIGURATION FILEs
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

cfg_file=/usr/local/nagios/etc/objects/system_1.cfg
cfg_file=/usr/local/nagios/etc/objects/system_2.cfg 
......
nagios_user=nagios
nagios_group=nagios
lock_file=/usr/local/nagios/var/nagios.lock
status_update_interval=10
2. 2添加被监听节点需要被监听的服务,例如:/usr/local/nagios/etc/objects/system_1.cfg
## define hosts
# system_1 oam_1
define host{
        use                     linux-server,host-pnp
        host_name               system_1_oam_1
        address                 <ip>
	contact_groups		system_1_admins,systems_admins
        }
......
# system_1 traffic_1
define host{
        use                     linux-server,host-pnp
        host_name               system_1_traffic_1
        address                 <ip>
	contact_groups		system_1_admins,systems_admins
        }
...... 
## define services
# system_1 oam_1

define service{
        use                      passive_service,srv-pnp
        service_description      CPU_Status
        host_name                system_1_oam_1
	contact_groups		 system_1_admins,systems_admins
        }
define service{
        use                      passive_service,srv-pnp
        service_description      Memory_Status
        host_name                system_1_oam_1
	contact_groups		 system_1_admins,systems_admins
        }
......

# system_1 traffic_1
define service{
        use                      passive_service,srv-pnp
        service_description      CPU_Status
        host_name                system_1_traffic_1
	contact_groups		 system_1_admins,systems_admins
        }
Note:
host-pnp
和srv-pnp是pnp4nagios要用的配置,后面再介绍pnp4nagios的其它配置
3. 对不同的系统添加系统监控管理员
3.1 /usr/local/nagios/etc/objects/contactgroups.cfg
define contactgroup{
        contactgroup_name       system_1_admins
        alias                   system_1_admins
        members                 oam-1,traffic-1
        }
......
3.2 /usr/local/nagios/etc/objects/contacts.cfg
define contact{
        contact_name                    oam-1                  ; Short name of user
        use                             generic-contact         ; Inherit default values from generic-contact template (defined above)
        alias                           oam-1                  ; Full name of user
        service_notification_options    c                      
        host_notification_options       d
        email                           [email protected]   ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
        }

define contact{
        contact_name                    traffic-1           ; Short name of user
        use                             generic-contact         ; Inherit default values from generic-contact template (defined above)
        alias                           traffic-1           ; Full name of user
        email                           [email protected]  ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
        }
...... 
Note:
service_notification_options: This directive is used to define the service states for which notifications can be sent out to this contact. Valid options are a combination of one or more of the following: w = notify on WARNING service states, u = notify on UNKNOWN service states, c = notify on CRITICAL service states, r = notify on service recoveries (OK states), and f = notify when the service starts and stops
flapping. If you specify n (none) as an option, the contact will not receive any type of service notifications.
host_notification_options:This directive is used to define the host states for which notifications can be sent out to this contact. Valid options are a combination of one or more of the following:d = notify on DOWN host states,u = notify on UNREACHABLE host states,r = notify on host recoveries (UP states),f = notify when the host starts and stopsflapping, ands = send notifications when host or servicescheduled downtime starts and ends. If you specify n (none) as an option, the contact will not receive any type of host notifications.
4. NSCA
如果没有端口冲突之类的问题,直接使用默认配置
5. 查看Nagios GUI中新加的host和service已经存在,状态UNKNOWN.
6. 添加pnp4nagios bulk+npcd 模式监听系统
6.1 修改/usr/local/nagios/etc/nagios.cfg
#处理performance数据
process_performance_data=1
#host_perfdata_command=process-host-perfdata
#service_perfdata_command=process-service-perfdata
#performance数据存储文件
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
#performance数据存储格式
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$\tSERVICEOUTPUT::$SERVICEOUTPUT$
#performance文件存储方式
host_perfdata_file_mode=a
service_perfdata_file_mode=a
#performance文件处理时间间隔
host_perfdata_file_processing_interval=15
service_perfdata_file_processing_interval=15
<pre name="code" class="plain">#performance文件处理命令
host_perfdata_file_processing_command=process-host-perfdata-fileservice_perfdata_file_processing_command=process-service-perfdata-file

6.2 修改/usr/local/nagios/etc/objects/commands.cfg,增加performance文件处理命令
define command{
       command_name    process-service-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}

define command{
       command_name    process-host-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}
6.3 修改nagios.cfg,设置在nagios web gui中显示pnp4nagios图标的方式

第一种方法在templates.cfg里面加入如下,只能在新窗口打开图像数据

define host { 
 name       host-pnp 
 action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_ 
 register   0 
}

define service { 
 name       srv-pnp 
 action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$ 
 register   0 
} 

第二种方法可以在鼠标移到pnp4nagios图标的时候就可以开到实时图标,不过效果不是很好,按照说明加入如下:

拷贝status-header.ssi到/usr/local/nagios/share/ssi/目录下面,同时修改templates.cfg,加入如下内容:

define host { 
    name       host-pnp 
    action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_‘ class=‘tips‘ rel=‘/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_ 
    register   0 
}

define service { 
    name       srv-pnp 
    action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$‘ class=‘tips‘ rel=‘/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$ 
    register   0 
} 

Note: 自动出现的小窗口清晰度不好,我喜欢第一种方式


Note: 这里没有涉及email的配置,记得通知设计的时候小心消息泛滥被投诉。。。

第一篇: Nagios 使用介绍

第三篇: Nagios monitored Client配置和脚本实现

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。