我正在为我的服务器寻找一个开源服务器监控工具:
- 所有服务器都运行 Linux,大部分是最新的 Debian Buster,但也有部分是 CentOS
- 其他操作系统(Windows、*BSD 等)不重要
- 物理硬件服务器和虚拟服务器(KVM/Qemu)
- 交换机(SNMP)等非服务器设备实际上并不重要
我希望至少监控标准参数,例如负载、可用磁盘空间等。对于硬件服务器,如果该工具可以访问 lm-sensors、IPMI 或 MegaCLI,那就“太好了”。
我正在寻找具有特定架构的工具(基础设施):
- 有一个中央监控服务器监听 HTTP(S)(例如 REST 端点)。(不允许二进制(RMI、CORBA 等)或专有神秘协议。)如果没有 TLS 支持,那也没问题。我可以在它前面放置一个 Apache httpd 来终止 TLS。
- 在所有服务器上,都有一个代理将运行参数发送到中央监控服务器(推) 定期(通过守护进程或 cron 作业)。
- 代理不得监听除 127.0.0.1 之外的任何其他接口。我不希望中央监控服务器能够以任何方式(拉动)连接到代理。
- 中央监控服务器不能能够在被监控的节点/服务器上运行命令。
- 中央监控服务器具有不凭证/SSH/shell 访问受监控的节点/服务器。
- 如果监控服务器被感染或遭到黑客攻击,我不希望它危及整个网络和每个服务器。
- 我希望监控服务器只是一个被动的数据接收器。(但如果它可以在配置的条件发生时生成警报电子邮件,那就错了。但这不是要求。)
我想自己编写一个非常简单的解决方案——使用 shell 脚本curl
作为“代理”,并使用 ElasticSearch 作为中央 REST 服务器。
但我认为,也许有类似的东西可以使用这样我就能避免这种努力了?:)
答案1
Zabbix 能够做到这些。您需要以主动模式运行 Zabbix 代理。
然后服务器就会访问中央监控服务器,中央监控服务器不会连接您的服务器。