小米开源监控系统OpenFalcon应对高并的数据采集

八星科技 2017-07-13 21:10:59

OpenFalcon 是一个监控系统,来自于小米的运维团队,OpenFalcon 主要针对运维架构师、DevOP 及关注高并发的研发人员。小米在使用 OpenFalcon 的过程当中,每个周期(5 分钟)大约有 1 亿条数据汇报上来。

1. 数据采集推拉抉择

对于监控系统来说,包含几个核心功能:数据采集、历史数据存储、报警,最后是绘图展示及数据挖掘。

数据采集

这一块我们希望做一个大一统的东西,因此要采集很多监控指标,比如 Linux 本身的监控指标,像 CPU、内存、网卡、IO 等,一些硬件指标,比如风扇的转速、温度等等,再加上一些开源软件如 MySQL,Nginx,OpenStack,HBase 等监控指标。

公司内部有很多产品线,每一个服务运行状况都希望采集到,比如中间层服务开了一些 RPC 端口,每一个 RPC 端口在服务过程中,latency 是多少,QPS 是多少,我们都希望了解到。

所以需要覆盖很多监控指标,监控团队刚开始只有两个人,不可能把所有监控指标都采集到——人力不行、技术水平也达不到。

所以我们需要共建监控数据,让专业的人干专业的事。

DBA 同学对 MySQL 比较熟,那他们去采集 MySQL 相关指标,分布式团队同学去采集 HBase 或 Hadoop 等指标,网络组同学去采集交换机路由器指标。

而作为监控团队要做的,就是制订一个规范。制定一个数据进来的机制,然后公司开发人员和运维人员按照规范去推送数据。

数据收集没有采用拉的方式,因为太多数据源,作为一个 Client 去连接源端,采集数据,再关闭连接,会产生很多 time_wait 状态连接,其吞吐必然是不高,所以要把自己做成 Server 端。现在每个周期有 1 亿多条数据。

这个周期简单解释一下,监控数据是一个持续上报,比如 Linux 一些基本监控项一分钟一次采集之后上报,下一分钟再采集再上报。一些像业务监控有 3 分钟的,有 5 分钟的。

因此周期是指数据量是 5 分钟以内,有上报动作的数据。

1 阅读:83
八星科技

八星科技

有品好玩的科技!