2015年(68)
分类: 系统运维
2015-08-31 17:15:28
简介:
在配置Nagios监控主机和服务的时候,为更好管理,我们可以把主机和服务是分开配置,配置文件分别为/usr/local/nagios/etc/objects 目录下的hosts.cfg和services.cfg,也就是说监控主机只是监控该主机是否是有开机,网络是否是正常就行了;如果要监控该主机上运行的服务,则需要另外再配置services.cfg以实现对服务进行监控。
在配置Nagios监控主机和服务之前,要先了解nagios以下几个配置文件之间的联系:
hosts.cfg:主机配置文件
services.cfg:服务配置文件
contacts.cfg:联系人、联系人组配置文件
timeperiods.cfg:监控时间段配置文件
commands.cfg:监控命令配置文件
templates.cfg:模版配置文件
当我们要对一主机进行监控时,需要考虑到以下问题:
1)监控时间段: 在什么时间段对主机进行监控?
2)联系人: 当监控到主机有故障时将报警信息(邮件、短信等)发送给谁?
3)监控命令:使用什么命令对主机进行监控?
上面说过,nagios的配置文件是分开的,所以,对主机进行监控时,不单要配置hosts.cfg,还要先把时间段(timepriods.cfg)、联系人(contacts.cfg)、监控命令(commands.cfg)配置好。
一、监控主机
如上所述,nagios对主机的监控配置写在一个名字为hosts.cfg的配置文件中,以下是定义一台主机可以用到的定义参数,红色为必备的:
--------------------------------------------------------------------------------------------------------------------------------------------------------------
host_name: 定义主机名
alias: 主机别名,可以对主机作更详细的描述,主机数量多的时候会很有用,当收到报警邮件或短信时可以快速定位到底是哪台主机出现了问题
address: 主机的ip地址,也可以用FQDN名,为避免DNS出现解析不到的情况,强烈建议使用IP地址。
use: 使用模版,模版名需先在template.cfg配置文件中定义好
display_name: 在wed页面显示的名字,如果没设置则为主机的主机名
parents: 定义父/子关系,也就是指从nagios服务器到被监控主机之间经过的节点,通常为路由、交换机、防火墙等。这个节点也要在hosts.cfg中定义好,并且能被nagios监控。
Hostgroup: 此主机属于哪个主机组
check_command: 检查命令,使用PING检查主机是否开机(存活),如果此项留空,nagios将会认为此主机是一直存活的,这在监控一些禁ping的主机或经常关机的主机(如打印机等)时会很有用。
initial_state: 定义主机的初始状态,当nagios启动默认所有主机的初始状态都是存活(up)的,可设的选项有o = UP, d = DOWN, and u = UNREACHABLE
max_check_attempts: 当检查命令的返回值不是“OK”时,重试的次数
check_interval: 循环检查的间隔时间,单位为分钟。
retry_intreva: 当检查命令的返回值不是“OK”时,要重试检查的间隔时间,单位为分钟。
active_checks_enabled [0/1]: 是否启用“active_checks”,0-禁用 1-起用
passive_checks_enabled [0/1]: 是否启用“passive_checks”,0-禁用 1-起用
check_period timeperiod_name : 检测时间周期,即监控在什么时间段进行,时间周期名要在配置文件timeperiods.cfg中事先设置好,如没设定则为24x7
obsess_over_host [0/1]: This directive determines whether or not checks for the host will be "obsessed" over using the ochp_command.(这个,真不懂)
check_freshness [0/1]: 是否启用freshness测试。freshness测试是对于启用被动测试模式的主机而言的,其作用是定期检查该主机报告的状态信息,如果该状态信息已经过期,freshness将会强制作主机检查。
freshness_threshold : fressness的临界值,单位为秒。 如果定义为0,则为自动定义。
event_handler: 事件处理,是一些可选的系统命令(脚本或执行程序),一旦主机与服务的状态发生变化时就会运行它们(可以在commands.cfg中对其定义)
event_handler_enabled [0/1]: 是否启用事件处理
low_flap_threshold : 数字,抖动的下限值。这里我简单解释一下抖动的含义,它定义了这样一种现象:在一段时间内,主机(或服务)的状态值频繁的发生变化,类似一个问题风暴或者一个网络问题。
high_flap_threshold: 数字,抖动的上限值
flap_detection_enabled [0/1]: 是否启用抖动检测
process_perf_data [0/1]: 是否启用processing of performance data
retain_status_information [0/1]: 程序重启时,是否保持主机状态相关的信息
retain_nonstatus_information [0/1]: 程序重启时,是否保持主机状态无关的信息
contacts: 联系人,决定谁会收到该主机的告警提醒信息,需先在contacts.cfg中定义
contact_groups: 联系人组,需先在cntactgroups.cfg中定义,与contacts两个必选一
notification_interval : 告警间隔时间,即当主机down掉过了一段时间状态仍然为down后从新发送告警的这一段时间,如果值为0,则只会发送一次报警。
notification_period timeperiod_name: 告警时间段
notification_options [d,u,r,f]: 当状态变化什么结果时触发告警:[d=down u=unreachable r=recoveries (OK state) f=flapping(抖动)]
notifications_enabled [0/1]: 是否启用告警提醒功能
stalking_options [o,d,u]: 持续状态检测参数,o = 持续的UP状态, d = 持续的DOWN状态, and u = 持续的UNREACHABLE状态.
notes: 注解,可用于解释说明相关的主机,当在web页点击指定的主机查看信息时会看到
notes_url: 注解的url,定义一个URL页面来提供相关主机的解释说明
--------------------------------------------------------------------------------------------------------------------------------------------------------------
OK,现在以一个例子来说明要监控要台主机时要做哪些配置:
现有一台名为cacti-test的linux主机,要全天候对其进行监控, 每3分钟检查一次,检查重试次数为5,即如果连续出现5次检查失败,则断定其出现问题,然后发通知到nagios admin组。发送提醒包括以下状态改变:DOWN UNREACHABLE(不可达) RECOVERY(恢复正常)
根据以上需求,其监控主机的配置如下即可:
define host {
host_name test
alias test
address 10.246.0.7
contact_groups mygroup
check_command check-host-alive
max_check_attempts 5
notification_interval 3
notification_period 24x7
notification_options d,u,r
}
<<未完待续>>