我正在尝试为路由器和多台服务器设置依赖关系。我想要做的是将路由器设置为主主机,这样如果路由器发生故障,服务器上的所有其他服务都不会发出警报。
不幸的是,说起来容易做起来难。有没有一种简单的方法可以为主机(或我的路由器)上的服务器上的所有服务设置服务依赖关系?
Nagios 有一些文档,但为每个服务添加单一服务依赖定义将非常耗时。
http://nagios.sourceforge.net/docs/3_0/objectdefinitions.html#servicedependency
答案1
在这种情况下,您想要的不是依赖关系(Nagios 称之为依赖关系),而是主机中的父/子关系。如果父节点关闭,子节点无法访问,Nagios 会将其视为“无法访问”而不是“关闭”。然后,您可以配置在“无法访问”时不收到通知。您可以在 Nagios 文档中阅读更多相关信息这里。
此外,2.0 文档的同一部分指出,如果主机关闭,服务将不会发出警报(为您节省这些警报):
每当服务检查结果为非 OK 状态级别时,Nagios 都会尝试检查服务所运行的主机是否“处于活动状态”。通常,这是通过 ping 主机并查看是否收到任何响应来完成的。如果主机检查命令返回非 OK 状态,Nagios 会假定主机存在问题。在这种情况下,Nagios 将“静音”主机上运行的服务的所有潜在警报,并仅通知相应的联系人主机已关闭或无法访问。如果主机检查命令返回 OK 状态,Nagios 将识别出主机处于活动状态,并将针对行为不当的服务发出警报。
默认情况下,服务依赖项不能从主机模板继承,但我相信父级可以。因此,您可以从模板继承父级(如果我没有记错的话),这样可以节省一些输入。
最后,我其实喜欢启用无法接通警报。如果路由器坏了,我希望我的手机“疯了”。:-)