在nagios服务中的随机服务器

我有一个包含一些分布式信息的N个节点集群。 我想用nagios监视的查询是有意义的,只能在群集的一个节点上执行(任何)。 但我不想超载一个特定的节点,所以我想要nagios每次从节点列表中select随机节点。

所以,我希望看到像这样的东西:

 define service{ service_description Recent document time for the cluster hostgroup_name random ... } 

random主机组以某种方式从预定义的群集节点列表中定义随机节点。

这可能与nagios3? 有什么build议么?

你可以设置DNS给你一个特定名称的随机主机?

你也可以写一个自定义的服务检查。

如果你真的想在nagios中使用这个function… 破解源代码

我不相信这是可能的,通过nagios本地做。 但是,可以通过一个自定义的检查脚本来完成,这个脚本是用你select的语言来实现的。 只要检查脚本每次运行时都select一个随机(或循环等)节点。

不是我所知,如果你正在运行一个你自己写的自定义插件,添加一个随机从多个传递主机中获取的选项,并且只testing其中的一个,这应该是非常简单的。

你提到有N个节点,我不认为这些都坐在某种types的VIP后面,只能指向一个节点,根据需要移动到不同的盒子上?

如果我们找不到任何东西,那么稍微介绍一下设置会很有帮助,即使是自定义的东西,我也很乐意帮助您。

另一个解决scheme是在每个节点服务器上运行检查并通过任务调度程序/ cron来抵消时间,然后将检查结果输出到中央位置。 您可以让Nagios检查相应地查看该文件中的结果。

这样,在添加新节点时,您不必在Nagios中更改任何内容,而且它可能只是您节点设置的一部分。

这不是最干净的解决scheme,但可以帮助你解决这个问题。

我有一个check_nrpe包装,这样做。 我创build了一个名为'RANDOM-001'(也支持'RNDRBN-001')的'name'目标的主机对象。 当check_nrpe包装器看到这个时,它使用尾随数字从服务器主机名的Perl列表中select要发送的检查。 然后,只需将此作为主机名添加到服务检查描述。 最新版本的包装器从Nagios hostgroups.cfg文件中获取主机名。