关于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=nagiosnagios_group=nagioslock_file=/usr/local/nagios/var/nagios.lockstatus_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 stopsflapping.
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 monitored Client配置和脚本实现