Chinaunix首页 | 论坛 | 博客
  • 博客访问: 140613
  • 博文数量: 68
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-28 20:01
文章分类

全部博文(68)

文章存档

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

}

<<未完待续>>

阅读(417) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~