容量规划问题

我有1000台机器要监控,应该使用什么规格(配置)的机器部署夜莺?

这个问题很多人想问,但实际上无法回答。因为监控系统的容量,和机器并非直接相关,而是和监控指标相关。同样有1000台机器,有的公司只是监控这1000台机器的CPU、内存指标,有些公司在这1000台机器上部署了各种中间件,每个中间件又暴露了很多指标,这两种场景的容量需求是很不一样的。另外就是采集频率的问题,10秒采集一次和1分钟采集一次,需要处理的数据直接差了6倍。

一般来讲,使用 SSD 的机器,32C64G 的规格,每秒接收50万监控数据点是问题不大的。那每秒50万数据点是个什么概念呢?对于机器监控,如果只是监控CPU、内存、磁盘、网络、IO相关的常规指标,大概有150个指标,假设15秒采集一次,平均每秒采集10个指标。

  1. 50w / 10 = 5w

相当于这么一台机器可以支撑 5 万台机器的常规指标监控。

上面的换算只是让大家心里有个大概的衡量。实际上,真正生产环境部署做容量规划,我们通常建议这么做:

  1. 先找一个小规格的机器,比如4C8G,然后监控100台机器以及这些机器上面的中间件和应用程序
  2. 运行一段时间,看看这个机器的资源使用情况,比如CPU、内存、磁盘增速等等
  3. 之后就可以根据这些数据,来估算接入全公司的监控需要多大的机器规格了

这里最吃资源的是时序库,如果你已经有时序库了,只是把夜莺用作上层的告警规则管理和可视化,那夜莺自身的资源占用就很少了。一台4C8G的机器,应该可以轻松抗住2000台机器的数据转发、告警管理、可视化查询。