我正在寻找一个我必须管理的基础设施的主机监控解决方案。
由于该基础设施是内部部署的,因此我希望拥有一个客户端-服务器架构,其中客户端定期向外部服务器(EC2 实例)报告状态。
为此,我尝试了 Zabbix,但效果并不好。每当代理尝试连接到服务器时,连接就会断开,这可能是由于防火墙规则造成的。此外,我希望有一定程度的自动发现,而不必手动输入主机(这是“想要的”,不一定是“必须的”)。我会尝试添加 Zabbix 代理,但随后我必须在另一个本地主机中添加代理,而该主机必须自行监控(因此服务器位于 EC2 实例上)
答案1
Zabbix 仍然是您的最佳选择之一,您只需投入更多时间来配置它。它提供自动发现使用模板来配置受监控的服务和警报。
它也是自托管、免费和开源的。
我们用它监控数百台机器,它从来没有让我们失望过。
关于断开代理 -> 服务器连接的问题,您应该首先检查服务器防火墙是否允许代理连接端口 10000 入站,然后在代理配置中检查Server/ServerActive 指令列出服务器 IP 地址。
答案2
我对 Zabbix 的体验也并不好,我认为 PRTG 在各方面都更胜一筹。
无论如何,这里有一些建议:
- 在本地托管监控服务器。
- 在 AWS 和您的本地网络之间设置站点到站点的 VPN。
- 使用托管监控解决方案,例如数据狗。它的工作方式与您希望的完全一样,即客户端向服务报告。
答案3
有很多可用的监控解决方案。其中一个选项是 Prometheus,它利用盒子上的代理并从小型网络服务器中抓取状态,然后可以使用 grafana 之类的工具将其可视化。
另一个类似的选项是 Elasticsearch 及其使用的 *beat(filebeat、metricbeat 等)插件,但它们不是抓取,而是推送到集群。
答案4
Azure 有一套服务,为 Windows/Linux 操作系统提供服务器监控和管理。它只需在连接到云的服务器上安装一个代理即可。无需单独的监控服务器。它支持监控任何服务器:本地、AWS 或任何其他云。检查https://docs.microsoft.com/en-us/azure/governance/azure-management
我相信 AWS 有一个类似的解决方案叫做 CloudWatch,但我从未亲自尝试过,所以我不推荐。