我需要用更具可扩展性的东西代替 munin

我需要用更具可扩展性的东西代替 munin

多年来,我已经在多台服务器上使用 munin 并取得了巨大的成功,但是当 munin 节点超过 100 个时,当客户端有负载时,处理就会超时。

我对 cron 作业和客户端进程的数量进行了一些扩展更改,并减少了正在运行的插件数量等,但我决定寻找具有更可扩展架构的替代方案。

欢迎任何建议或经验。我主要对可用于容量规划和诊断资源使用情况的服务器指标感兴趣。(我们有 nagios 用于警报)

答案1

听起来你可能有两个问题

  1. 在您的监控服务器上,记录大量服务器的指标需要比您的存储所能提供的更多的随机 I/O。即使所有指标都写入磁盘,服务器也可能超载而无法实际生成图表。
  2. 在受到监控的客户端上,收集指标的插件占用过多的 CPU 和内存,并且在客户端负载过重时无法及时完成数据收集。

我以前用过 Munin,但现在正在使用收集。collectd 的作者为解决这些问题付出了很多心血和努力。他们有一个设计良好的系统来将数据写入 RRD 文件确保您不会丢失数据并能生成最新图表。还支持缓存目录。守护进程和官方插件是用 C 编写的,因此它们占用的内存或 CPU 时间很少。在我的客户端系统上,它每分钟占用不到 2MB 的 RAM 和大约四分之一秒的 CPU 时间。在我的监控服务器上,它每分钟占用 20MB 的 RAM 和三分之二秒的 CPU 时间。请记住,我的所有指标都会每十秒收集并发送到我的监控服务器,而不是像 munin 那样每隔几分钟发送一次。

答案2

尽管 Munin 和其他 RRDTool 前端(例如 Cacti 或 Ganglia)都是很棒的工具,但它们存在已知的 I/O 问题,并且在监控数百个节点时难以扩展。

不过,有一些技术可以解决这个 I/O 瓶颈问题。其中一种方法是将写入分散到大量磁盘上,以减少每个磁盘的 I/O。另一方面,许多系统管理员使用临时文件文件系统来处理这个问题。RRDCached 也是一个处理这个问题的不错的选择,我建议你看看这个幻灯片

我不太熟悉 Munin,但 Cacti 有一个促进插件。该插件将数据缓存在内存中,并执行大量和按需的磁盘更新,而不是单独写入,从而减少 i/o。我很确定 Munin 也有类似的东西。

如果您能负担得起,SSD 磁盘也是不错的选择。

最后但同样重要的是,你还可以看看侦察。Recconoiter 是一款全新的故障检测和图形/趋势分析工具。与大多数趋势分析工具不同,Reconnoiter 不是基于 RRDTool 的,而是试图解决这个特定问题。我没有在生产中使用 Reconnoiter,但我做了一些测试,尽管它还有些“青涩”,但看起来确实很有前途,尤其是在可扩展性方面。

希望这可以帮助!

答案3

查看扎比克斯。它是最好的开源性能监控工具之一。它具有良好的扩展性,已在拥有数千台计算机的环境中使用。

答案4

我正在用 Ganglia 替换 Munin,Munin 杀死了我的服务器,因此我将尝试一下 Ganglia 并看看它的扩展情况。

相关内容