htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
2. 在Nagios中定义要监控的机器和要监控的服务
## define hosts
# system_1 oam_1 define host{ use linux-server,host-pnp host_name system_1_oam_1 addresscontact_groups system_1_admins,systems_admins } ...... # system_1 traffic_1 define host{ use linux-server,host-pnp host_name system_1_traffic_1 address 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 }
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=103. 对不同的系统添加系统监控管理员
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:define service{
use generic-service
name passive_service
active_checks_enabled 0
passive_checks_enabled 1 # We want only passive checking
flap_detection_enabled 0
register 0 # This is a template, not a real service
is_volatile 0
check_period 24x7
max_check_attempts 1
normal_check_interval 5
retry_check_interval 1
check_freshness 0
contact_groups system_admins
check_command check_dummy!0
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
stalking_options w,c,u
}
4. 2.2 修改/usr/local/nagios/etc/commands.cfg,增加命令定义如何处理NSCA发送来的数据
# 'check_nsca' command definition
define command{
command_name check_dummy
command_line $USER1$check_dummy$ARG1$
}
Note: check_dummy很简单,处理Nagios中OK,WARNING,CRITI
CAL,UNKNOWN
nagios:/usr/local/nagios/etc # /usr/local/nagios/libexec/check_dummy 0
OK
nagios:/usr/local/nagios/etc # /usr/local/nagios/libexec/check_dummy 1
WARNING
nagios:/usr/local/nagios/etc # /usr/local/nagios/libexec/check_dummy 2
CRITICAL
nagios:/usr/local/nagios/etc # /usr/local/nagios/libexec/check_dummy 3
UNKNOWN
4.2.3 检查/usr/local/nagios/etc/nagios.cfg已经可以处理外部NSCA发送来的数据,默认是没有问题的
accept_passive_service_checks=1
accept_passive_host_checks=1
check_external_commands=1
command_check_interval=-1
command_file=/usr/local/nagios/var/rw/nagios.cmd
log_passive_checks=1
5. 查看Nagios GUI中新加的host和service已经存在
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
#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配置篇 -- 被监控端