我们正在运行 Nagios,但无法直接访问其他网络。我想在 dmz 服务器上使用分布式 Nagios eXecutor 来执行检查,而不是构建新的 Nagios 服务器并进行被动检查等。
是否有人知道是否可以仅通过 DNX 服务器检查某些服务器?
答案1
DNX 服务器配置不允许您指定应通过 DNX 工作器运行哪些检查...它允许您指定的是应在本地处理的检查,并且不是被发送到消息队列供 DNX 工作者处理。
# OPTIONAL: Local service check regular expression.
# This allows you to specify a regular expression which will be used to
# disqualify matching service checks as candidates for remote execution by
# DNX. Use this to make sure your local host checks stay local. There is no
# default value. If this parameter is not specified, then *ALL* Nagios checks
# will be handled by DNX.
#localCheckPattern = .*local.*
如果您要在本地运行的所有检查都与一个通用正则表达式匹配,而该正则表达式与您想要远程运行的检查不匹配,则您可以使用此功能。默认情况下,DNX 服务器会安排所有检查由 DNX 运行,因此这可以让您缩短这一时间。
话虽如此,我敢说 DNX 不是适合您尝试的工具,可能更适合设置分布式轮询器,该轮询器处理远程网络的所有检查并将结果传回此 Nagios 实例。DNX 的设计更多是分配实际轮询负载,而无需运行多个 Nagios 实例,因为 DNX 工作只需要插件。
我有一个 Nagios 部署,它有一个中央服务器,然后 Nagios 轮询 3 个数据中心的实例并向其报告。我们希望在每个数据中心使用轮询实例中的 DNX,以便能够添加 DNX 工作者,以保持在一定时间内执行所有检查的能力。随着更多检查的添加,我们可以添加额外的 DNX 工作者,当检查数量减少时,减少 DNX 工作者的数量。在这种情况下,每个轮询实例仅接收那些需要主动检查的检查的配置,并且中央服务器设置为接受这些结果作为被动检查。