经验云服务

浅谈监控数据采集

2018-10-22  本文已影响291人  高家升_Gavin

随着互联网的发展,运维工作的复杂度成倍增加;与之关联的,各种运维平台的复杂程度也在成倍增加。
在此场景下,如何最大程度满足稳定性工作需求,并保证我们的系统相对的干净与解耦,是我们一直在追求和探讨的。
监控系统的话题,很大。
本篇文章为笔者监控系列文章第一篇,仅介绍监控系统的采集环节。

前言

监控系统的话题很大,随着业务的复杂,也会衍生出各种各样不同的形态。但总体上绕不开三个部分:采集存储报警
本文跟大家谈谈第一部分:数据采集

哪些数据需要采集

说到采集,首先我们应该了解,哪些数据需要被采集。
监控系统可能是为了满足实时的数据查看、可能是用作历史状态回顾、或者用来做异常告警等。这些都需要收集到准确的数据。
而数据采集,其实就是为了收集足够的数据,来满足各种各样的业务需求。

数据模型

要讲采集的方式,必须要从监控的数据模型讲起。
监控的数据,其实是最纯粹的时间序列数据。那么,在建设一个监控系统的时候,抽象出统一的数据模型,应该是设计和架构的第一步。

一般的时间序列数据包括四部分:

open-falcon的数据模型
如上图,是open-falcon的数据模型,这个数据模型在基础的时间序列模型上做了一些定制化,增加了endpointcounterType两个字段。
这两个字段,与open-falcon的形态以及存储细节都有所关联。但如果再宏观一点来看,可以把这两个字段看成两个标签,只是单独拿出来了而已。

采集的方式

采集的方式根据我们的监控数据来源的不同而不同。主要分为默认采集、插件、探测、日志、埋点几种。

数据的收集方式

一般的,有两种收集方式:

拉取式数据收集

中心端主动拉取,就是由一个中心端定时的向采集端按需拉取数据。这种模式的优点在于可以按需拉取,不会有浪费。但是在这个模型中,中心承担了过大的压力。理论上性能会有很大的瓶颈。

上报式数据收集

客户端自动上报,就是所有数据一视同仁,全都上报。一般来讲,会采用一个统一的proxy来收集,后边会考虑做多级的组件,或者加一层MQ等,都是可以考量的设计。
整体来讲,如果预估监控数据的量比较大。还是建议采用自采集然后集中上报的模式。

open-falcon的数据收集就是很好的客户端自动上报模式。transfer可以无状态伸缩、且支持级连。

后记

本篇文章为《运维监控系统专题》的第一篇,后续会持续更新,列表如下:

上一篇下一篇

猜你喜欢

热点阅读