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

我已经在多台服务器上使用了munin,并取得了很大的成功,但是有了100多个munin-nodes,当客户端负载的时候,处理是超时的。

我已经对cron作业和客户端进程的数量进行了一些扩展更改,并减less了运行插件的次数等,但是我决定寻找一个具有更大可扩展架构的替代scheme。

任何build议或经验将是受欢迎的。 我基本上对服务器度量标准感兴趣,这些服务器度量标准用于容量规划,并诊断资源使用情况。 (我们有警报提示)

这听起来像你可能有两个问题

  1. 在您的监控服务器上,logging大量服务器的指标需要比存储能够提供的更多的随机I / O。 即使所有的度量标准都被写入磁盘,服务器也可能会过载,实际上是从中生成graphics。
  2. 在被监视的客户端上,收集度量标准的插件太耗费CPU和内存,并且在客户端负载很重时不能及时收集数据。

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

尽pipe是很好的工具,但是当你监视节点的遍历时,Munin和其他RRDTool前端(例如仙人掌或Ganglia)已经知道I / O问题并且难以扩展。

有一些技术来处理这个I / O瓶颈。 其中一个方法是在大量磁盘上分散写入,以减less每个磁盘的I / O。 另一方面,许多系统pipe理员使用tmpfs文件系统来处理这个问题。 RRDCached也是处理这个问题的最佳select,我build议你看看这个幻灯片 。

我不熟悉Munin,但是Cacti有一个Boost插件。 这个插件将数据caching在内存中,并对磁盘执行批量和按需更新,而不是单独写入,从而减lessI / O。 我很确定,穆宁也有这样的事情。

如果你买得起,SSD磁盘也是不错的select。

最后但并非最不重要的,你也可以看看Reconnoiter 。 Recconoiter是一种全新的故障检测和绘图/趋势分析工具。 与大多数趋势工具不同,Reconnoiter不是基于RRDTool的,并试图解决这个特定的问题。 我没有在生产中使用侦察机,但是我做了一些testing,尽pipe仍然有点“绿色”,看起来很有前途,特别是在可扩展性方面。

希望这可以帮助!

看看Zabbix 。 它是那里最好的开源性能监控工具之一。 它的规模很好,已经在数千台电脑的环境中使用。

Marco Ramos给出了一些可靠的build议。 然而,我想补充一些说明:与慕尼黑有关的大问题是固定5分钟收集时间表。 如果所有节点在5分钟窗口内都没有返回结果,则开始出现退出。 这是慕尼黑最大的问题。

像Ganglia这样的基于rrdtool的工具不会被locking在同一个5分钟的更新窗口中,因为它们不会以与munin相同的顺序方式轮询所有的数据源。

我build议你看一下Ganglia,因为它看起来一般都很好(尽pipe你需要closures一个大的神经节安装的多播数据收集)。 我觉得在你需要开始担心rrdtool成为瓶颈的情况下,你可以走很长的路。 在这一点上,你可以做一些Marcobuild议的事情,比如使用SSD驱动器。

我正在取代Munin瓦/ Ganglia,Munin杀死我的服务器,所以我会给Ganglia一个尝试,看看它如何缩放。