刚刚在一家新公司开始工作,我的第一项任务就是寻找其内部监控系统的替代方案。
他们目前的解决方案是一个 .Net 应用程序,用于检查 WAN 上的各种设备(因为他们是一家提供全天候支持/“维护”的 IT 咨询公司)。设备范围从路由器/交换机/打印机到 MS 服务器和服务。
在阅读了网站上无数的帖子并在 Google 上进行了广泛的搜索后,似乎大家一致认为某种 Nagios/Munin 混合体是可行的方法。
这让我想到了我的问题:
A) 是否可以在公司本地运行 Nagios 服务器并通过 WAN 监控各种外部站点?(他们不希望每个站点都配备本地 Nagios 服务器,因为大多数站点相对较小(10-25 个主机),而站点数量相当多(75-100 个))。
B) 如果是的话,代理如何联系 Nagios 后端?通过 SSH?HTTP?
C) 除了容易受到 WAN 链路故障的影响之外,这种解决方案的直接缺点是什么?
欢迎任何反馈,由于我对该行业还很陌生,因此对于任何误解,我提前表示歉意。
答案1
通过 WAN 进行监控是可行的,但通常并不理想。这是因为如果 WAN 链路中断或出现故障,所有检查都将失败,您将无法了解远程位置正在发生的事情。您还会增加延迟,使其对 LAN View 性能测量的用处不大。话虽如此,如果您采用这种方式,您可能希望设置依赖关系,这样当 WAN 链路出现问题时,您就不会收到大量警报。
我见过的监控系统与其监控服务之间最常见的通信方式是建立站点到站点的 VPN 隧道。这样通信就与本地网络没有什么不同了。此外,Nagios 通常基于 Pull(尽管不一定如此)。因此,Nagios 联系其监控的服务和服务器,而不是相反。
最后,更理想的解决方案是使用分布式监控设置,其中一种选项是使用 Nagios,详见http://nagios.sourceforge.net/docs/3_0/distributed.html。
答案2
这有点取决于您要通过广域网监控什么。大多数情况下,如果您只进行 ping 检查、服务检查、磁盘检查等,并坚持使用 nagios 默认的 5 分钟检查时间,我认为它不会给您带来问题。
再次强调,要检查的内容取决于要讨论的内容。如果您要检查 Windows 主机,则只需使用 WMI 查询,甚至不需要在主机上运行代理。
答案3
这当然是可能的,通过几种不同的方法。
如果“分布式设置”不可行,则您至少需要执行以下操作之一:
- 让远程站点上的每个设备将检查结果推送到 Nagios(参见国家计算机协会)
- 在防火墙上打洞,以便 Nagios 可以访问每个远程站点的每个设备
- 在每个站点指定一个单独的盒子作为某种“Nagios 代理”
我建议使用 #3,因为它需要的防火墙漏洞最少,而且配置也简单。它有点像分布式设置的精简版,因为它不需要在每个站点都安装完整的 Nagios 实例。
为此,您可以设置国家可再生能源计划(或使用检查_by_ssh),并让此“代理”针对网络上的其他主机运行所有其他检查。这还有一个好处,就是您获得的性能数据与代理相关,因此不会受到 WAN 延迟的影响。
此外,您还可以使用父/子设置将远程站点上的每台主机都设置为其代理的子主机,以减少误报。您可能还希望使所有服务都依赖于代理的 check_nrpe(或 check_ssh)服务。请参阅网络可达性文档以获取更多信息。
无论你采用哪种方法,重要的是你调整默认超时适当地考虑跨 WAN 链路增加的延迟。