如何管理大型集群上的 Nagios 依赖关系?

如何管理大型集群上的 Nagios 依赖关系?

我使用了相当大的 nagios 配置(大约 4000 个服务),没有任何依赖项。当出现问题时,这会导致大量混乱的通知。

我尝试寻找 Nagios Dependencies 的最佳实践,但我在网上找到的只是一个简单的示例,对它有基本的了解。我需要的是更深入的信息,关于如何管理此类配置文件的最佳实践。

示例:在一个由 100 台服务器组成的集群中,每台服务器都有 apache 进行监听,我正在监视 apache 进程的数量和监听的 tcp 端口 80。我想让其中一个依赖于另一个,但是dependent_hostgroup_name 不起作用,因为它会导致所有“检查进程”服务都依赖于每个“check_http”服务。

问题是:你如何管理依赖关系?你使用脚本来生成它们吗?

答案1

同意如果没有脚本的话这很难做到。

对于每个服务检查命令,我都定义了(在数据库表中)它通常依赖的内容,这样我就不必手动配置每个服务依赖项。主机依赖项我手动完成,但通过脚本在交换机上进行 mac 地址发现有助于实现自动化。

例子:

“check_http_content” 依赖于“check_http”,而“check_http”又依赖于“check_ping”。
“check_cisco_ifstate” 依赖于“check_snmp_ok”,而“check_snmp_ok”又依赖于“check_ping”

如果您使用脚本从数据库构建配置,那么实现起来并不难。否则,您需要编写一个解析器来检查配置文件,并根据规则插入依赖项。

我无法想象如果没有一个可以构建配置的配置数据库,那么任何规模可观的 nagios 实现都无法实现,它允许您在 nagios 缺少抽象时添加自己的抽象,并且通过许多其他方式使生活变得更简单。

相关内容