问候,
我想问一下集体对分布式监控系统的看法和看法,您使用什么以及您知道哪些可能会打勾?
要求相当复杂;
没有单点故障。真的。我死定了!需要能够容忍单/多节点故障,“主”和“工作”,您可以假设没有监控位置(“站点”)中有多个节点,或者在同一个网络上。因此,这可能排除了传统的 HA 技术,例如 DRBD 或 Keepalive。
分布式逻辑,我想在多个网络、多个数据中心和多个大陆上部署 5 个以上的节点。我希望从我的客户的角度来看我的网络和应用程序的“鸟瞰”视图,当您拥有 50 多个节点甚至 500 多个节点时,监控逻辑的奖励积分不会陷入困境。
需要能够处理相当合理数量的主机/服务检查,例如 Nagios,因为大致数字假设每台主机有 1500-2500 个主机和 30 个服务。如果添加更多监控节点允许您相对线性地扩展,那就太好了,也许在 5 年内我可能希望监控 5000 台主机和每台主机 40 项服务!从我上面关于“分布式逻辑”的注释中补充一下,很高兴说:
- 在正常情况下,这些检查必须在 $n 或 n% 的监控节点上运行。
- 如果检测到故障,则在另外 $n 或 n% 的节点上运行检查,关联结果,然后使用它们来确定是否满足标准以发出警报。
图表和管理友好的功能。我们需要跟踪我们的 SLA 并了解我们的“高可用性”应用程序是否 24x7 全天候运行有点有用。理想情况下,您提出的解决方案应该以最少的麻烦进行“开箱即用”的报告。
必须有一个可靠的 API 或插件系统来开发定制检查。
需要对警报保持敏感。我不一定想知道(通过 SMS,凌晨 3 点!)一个监控节点认为我的核心路由器已关闭。我确实想知道他们中是否有一定比例的人同意正在发生一些时髦的事情;)本质上,我在这里谈论的是“法定人数”逻辑,或者将理智应用于分布式疯狂!
我愿意考虑商业和开源选项,尽管我更愿意避开花费数百万英镑的软件:-) 我也愿意接受可能没有任何东西可以打勾所有这些框,但是想问问集体那个。
在考虑监控节点及其位置时,请记住其中大部分将是随机 ISP 网络上的专用服务器,因此在很大程度上超出了我的控制范围。依赖 BGP 馈送和其他复杂网络滑稽动作的解决方案可能不适合。
我还应该指出,过去我已经评估、部署或大量使用/定制了大多数开源风格,包括 Nagios、Zabbix 和朋友——它们确实不是糟糕的工具,但它们总体上持平”分布式”方面,特别是关于我的问题和“智能”警报中讨论的逻辑。
很高兴澄清所需的任何要点。干杯男孩和女孩:-)
不是真正的答案,而是一些指示:
一定要看看关于nagios @Goldman sachs的介绍。他们面临您提到的问题 - 冗余、可扩展性:数千台主机,以及自动配置生成。
我有冗余的 nagios 设置,但规模要小得多 - 80 台服务器,总共约 1k 服务。一台专用的主服务器,一台从服务器每天定期从主服务器提取配置几次。两台服务器都覆盖了对同一台机器的监控,它们相互之间进行了健康交叉检查。我主要将 nagios 用作调用自定义产品特定检查的框架 [执行脚本的一堆 cron 作业执行“人工流控制”,结果软件记录到 sql,nrpe 插件软件检查过去 x 分钟内成功/失败的执行]。一切都很好。
您的法定人数逻辑听起来不错-有点类似于我的“人工流程”-基本上继续,实现您的自我;-]。并让 nrpe 只检查某种标志 [或带有时间戳状态的 sql db] 事情是如何进行的。
您可能希望构建一些层次结构以进行扩展-您将拥有一些节点来收集其他节点的概述,请从第一点开始查看演示文稿。每次检查的默认 nagios 分叉在更多数量的受监控服务下都过大了。
回答一些问题:
你所要求的听起来很像 Shinken 为 Nagios 所做的。
Shinken 是对 Nagios 的重写。
这应该是值得深思的。
干杯