我正在尝试监控 53 台远程 Windows 机器的正常运行时间,这些机器都位于不同的位置。这些机器都位于各种品牌的廉价消费级路由器后面,并且都有动态 IP 地址。
我只想得到一份机器列表,看看它们当前是否连接到互联网,如果未连接,则了解它们最后一次登录是什么时候。
很好:为每台机器提供一个简单的日志,显示它们离线的时间。
我们是非营利组织。我正在寻找开源/免费解决方案。
我最初的想法是让隐藏的 IRCbot 在每台机器上启动并自动连接到频道。我可以加入该频道并一目了然地查看哪些机器已连接,频道日志(经过充分筛选)会告诉我哪些机器经常断开连接。
一位朋友告诉我“不,使用 nagios”。
经过一番谷歌搜索后,我找到了 NCclient++,我已将它安装在远程机器上并尝试使用我的全新 Nagios 机器进行检查,但是没有成功。
我走的路对吗?有人能给我指出正确的方向吗?我一直在谷歌上搜索有关如何做到这一点的更全面的指南,但运气不佳。
答案1
一些可能性:1) 对每个主机使用动态 DNS 怎么样?服务中指示的最后轮询时间可以作为粗略的正常运行时间指标。
2) 类似于 Logmein Hamachi 的东西可以创建所有主机的虚拟专用网络。VPN 中每个主机的 IP 地址可以是静态的。然后可以进行正常的 Nagios 监控。或者只是通过 ping 进行定期的主机检查。
3) 我不确定 NSClient++ 是否合适。首先,NSClient++ 要求在两个主机、两个网络、两个流量方向上都打开一个特定端口。我记不住端口,但它不是一个常用的端口。您可以更改端口,但网络流量路径必须清晰。此外,在 NSClient++ 中使用 check_nrpe 插件,而不是 check_nt 插件。
4) 您可能需要考虑使用 NSCA 而不是 NSClient++。这是一种被动检查,即 NSCA 将检查结果发送到 Nagios 服务器。这样,每个主机到达 Nagios 服务器所需的网络路径只需要打开。也许路由器中有端口转发魔法?http://exchange.nagios.org/directory/Addons/Passive-Checks/Windows-Passive-checks-for-NSCA/details
答案2
我们使用 nagios... 你也可以使用 nagios。主要区别在于你的“检查框”是否可用
类似这样的服务pingdom.com或者一些选择有许多检查服务的来源,因此在发出警报之前会进行许多检查。另一方面,如果您的 nagios 仅与其他服务器失去通信,您将得到一堆误报。
答案3
如果我被迫做这样的事情,我会使用 Jmarki 的选项 4,但使用 nsclient++。您的 Nagios 主机必须有一个静态 IP 地址,以及允许访问 NSCA 服务的防火墙规则,该服务通常在端口 5667 上运行。然后您配置 nsclient++ 以将 NSCA 消息发送到该主机。
如果您无法使用远程主机可以访问的静态 IP 地址设置 Nagios,那么您应该考虑使用 DynDNS 或类似服务来提供可用于发送检查的主机名,从而允许在需要时更新 DNS 条目。
nsclient++文档了解如何设置代理以将信息发送到 Nagios 主机的详细信息。完成该设置后,您可以配置 Nagios 以接受被动检查结果。这也是记录在 Nagios 网站上。