在nagios监视下允许主机closures

我们正在使用nagios来观看我们的服务器的健康状况。 现在我们有一个添加服务器的任务,只有一段时间才能启动。 在此期间,我们必须确保所有的服务都正常运行。 不幸的是,我们不知道什么时候将主机closures。 所以我们需要一些自动的方法来实现这一点。

  1. 有没有一种方法(configuration指令) 报告主机宕机。 我的意思是即使在像nagstamon nagios客户端。 我不喜欢整天在系统里的黑色图标的想法。
  2. 有没有办法报告主机上运行的任何服务,而主机是closures?
  3. 虽然实现点12是否有办法监视所有主机服务, 只有当主机启动?

让我以错误的顺序来说明问题。

2)NAGIOS应该已经这样做了; 如果主机closures,则不会发送服务警报。

1)我认为你可以在灵活的停机时间内做到这一点:这是一个给定的窗口持续时间不是在已知的时间开始的停机时间, 相反,当主机closures时,窗口会自动启动。

但是后来我发现:你真正需要做的就是在主机closures时不发送提醒。 如果你pipe理的话

  • 当主机closures时,服务警报将不会被发送。 你不关心主机是否closures,因为如你所说,你不知道什么时候会来来去去,所以没有主机的警报是不重要的。 主机closures仍然会被logging,允许您回顾过去发生了什么,但是警报不会被发送。

  • 当主机启动时,无论如何将发送服务警报。

那就是你想要的,不是吗? 如果是这样,你需要添加到主机定义

notification_options n 

我认为这也是问题3,因为这是正常情况。 我不能说像nagstamon这样的非核心客户。 根据我的经验,这些通常是屏幕刮板,他们关于要通知什么的决定不是基于NAGIOS的通知逻辑。 如果您的客户尊重NAGIOS的内置规则,那应该没问题; 否则,你将不得不使用该特定工具来添加类似的逻辑。

您可以使用timeperiods.cfg中的timeperiod定义来定义自定义时间段。 这是一个例子

 # Here is a slightly friendlier period during work hours define timeperiod{ timeperiod_name workhours alias Standard Work Hours monday 09:00-17:00 tuesday 09:00-17:00 wednesday 09:00-17:00 thursday 09:00-17:00 friday 09:00-17:00 } 

然后将其用于主机和服务定义中的check_period值。

这个答案不会涵盖像nagstamon或firefox nagios插件这样的第三方监控插件,因为它会变化很大。

我可以从我脑海中想到几个方法:

  • 禁用主机检查服务器。 但是,这会使主机处于永久状态“UP”,并且服务将开始提醒。
  • 不断设置浮动停机时间。 浮动宕机时间开始下一次主机被看到“下”,并运行你指定的时间。 你也许可以用cronjob每2小时发出2个浮动时间来执行“SCHEDULE_HOST_DOWNTIME”。 (请参阅NAGIOS开发人员 – 外部命令 )。
  • 安排主机和所有服务的停机时间(见上面的链接)。

  • 你也可以做的是把服务依赖关系使用。 如果您通过PING检查主机,则添加一个PING服务,并为该主机上的所有其他服务添加一个service_dependency以取决于PING,然后closuresping通知。 这看起来像是;

define servicedependency {
dependent_host_name flaky_biscuit
dependent_service_description service1, service2, service3, service4, service5 host_name flaky_biscuit
service_description PING
execution_failure_criteria w,u,c
notification_failure_criteria w,u,c
}

这实际上意味着,当PING处于警告状态时,未知的或关键的,PING将通知所有的依赖服务。 (同样,closuresPING的通知!)另外,当PING处于警告,未知或严重状态时,依赖服务甚至不会执行

我不能说NagStaMon,但是Firefox NAGIOS插件的偏好本质上是“忽略已确认的服务”,这意味着如果您在停机时间确认或安排服务,closures通知或对服务进行任何其他修改,它将即使处于该状态,也不会在状态栏中显示为“警告/严重”。 我不知道NagStaMon做什么或没有做什么。

这是我的想法使用被动检查,但我需要首先陈述一个假设。 你不想监视主机的正常运行时间。 只是当主机启动时,相应的服务正在运行。

在你的随机正常运行时间主机上,你可以运行如下的shell脚本https://gist.github.com/746998 。 这个例子会监控SMTP,但是相当简单。 您将需要以一个用户身份运行,这个用户可以使用一个密钥对ssh进入您的nagios主机,并且保留这​​个作为练习给读者(或发表一个新的问题)。 我没有testing过,但它应该工作。 被动检查文档( http://nagios.sourceforge.net/docs/3_0/passivechecks.html )应该是有帮助的。

这不会自动configuration您的Nagios服务器上的主机,但您可以使用木偶这样的东西。

为了提醒您应该查看Nagios BPI(业务stream程交互)Nagios企业刚刚发布了这个新的插件。 去Nagios点来,并检查出路线图。