如何在不打开防火墙端口的情况下监控远程客户的 Windows/Linux PC/服务器?

如何在不打开防火墙端口的情况下监控远程客户的 Windows/Linux PC/服务器?

我在一家 IT 服务提供商工作 - 我们为客户站点上的一系列 Windows 和 Linux 服务器/PC 提供支持。我正在寻找一种方法来监控这些设备上的基本内容(例如磁盘空间使用情况、CPU 利用率、正常运行时间等)并在中央界面收集数据。

我查看了 Zabbix 并阅读了 Nagios。但是,两者似乎都要求我们的客户拥有静态外部 IP 地址,并且要求在客户的防火墙上打开特定端口以允许双向流量。对于大多数客户来说,这是不可能的。

有没有办法配置 Zabbix 或 Nagios,使其将数据从 Windows 代理发送到我们的中央服务器(打开相关传入端口),而无需在客户防火墙上打开端口进行双向通信?我试用了 Pandora FMS,它可以做到这一点,但我总体上不喜欢这个产品。据我所知,这需要预先配置代理应发送的数据,但从阅读文档来看,我不能 100% 确定。

提前感谢你的任何建议,
马特

答案1

zabbix 为您提供的选项:

  1. 使用主动代理。本机 zabbix 代理可以在大多数平台上运行,包括 Linux 和 Windows。在主动模式下,它们连接到端口 10051 上的服务器,请求检查事项,然后发送任何收集到的数据。没有从服务器到代理的连接。

  2. 使用 zabbix 代理。在这种情况下,专用系统将收集所有数据并将其传输到 zabbix 服务器。在正常的主动模式下,只有 zabbix 代理连接到 zabbix 服务器(再次在端口 10051 上) - 因此无需允许来自所有 zabbix 代理的连接,只需允许来自代理的连接。额外的好处是能够监控无代理系统,如交换机、路由器、打印机和其他任何东西。

从 zabbix 1.8.3 开始,如果无法反向连接,您还可以选择让 zabbix 服务器连接到 zabbix 代理(仍为端口 10051)。

在您的情况下,主动 zabbix 代理可能是最好的选择,因为如果与 zabbix 服务器的网络连接中断,它也会在本地保存收集的数据。代理只能在类 unix 系统上运行,因此您可能有几个选择 - 要么在现有的 Linux 机器之一上安装代理,要么设置专用代理。

鉴于这些是客户的系统,我建议使用专用系统。您可以拥有一个运行 zabbix 代理的小型嵌入式系统。您可以将它们作为监控设备分发给客户,他们只需将它们插入,允许从端口 10051 上的代理与 zabbix 服务器建立传出连接 - 就这样。无需在代理端进行更多配置。

答案2

作为允许您使用任何所需代理软件的解决方案,您可以考虑使用 VPN 技术来启动从客户网络到监控网络的连接。由于连接将源自客户防火墙后面,因此无需转发外部端口。同样,由于客户正在启动连接,因此客户端不需要静态 IP 地址或动态 DNS。

您可以使用 OpenVPN 轻松且廉价地完成此类操作。您可以在每个客户的网络上选择一个单独的主机作为监控 VPN 网关,并在客户的边缘路由器中设置路由,以将管理流量发送到该 VPN 网关主机。

在您的前端,您可以使用防火墙规则将来自客户站点的流量限制为仅监控/管理流量(因为您的客户可能会从他们的 LAN 开始探测您的管理网络)。使用像 iptables 这样的状态防火墙将允许您允许来自管理网络内部的客户网络连接,同时拒绝来自客户网络内部的非管理相关主机/端口的传入连接尝试。

假设您使用不同的 IP 子网来寻址所有客户的 LAN(我在“托管服务”式的公司工作时总是这么做),您可以完成我在此处描述的所有操作,而无需任何有趣的 NAT 游戏等。

答案3

Zabbix Agent 有一个积极的主动连接到服务器发送数据的模式。该模式的文档并不完善,但值得一试。所有配置都在代理配置文件中完成。以下是链接到相关配置选项。您仍然必须在 zabbix 服务器上配置主机名。

编辑:显然它只适用于 Linux 代理:\

编辑2Zabbix 代理如果您至少可以让一台机器在客户端网络内运行它,这似乎也是解决您问题的一个很好的方法。

相关内容