大数据下的技术运营:数据采集系统设计与实现

监控系统是整个IT架构中的重中之重,小到故障排查、问题定位,大到业务预测、运营管理,都离不开监控系统,可以说一个稳定、健康的IT架构中必然会有一个可信赖的监控系统,而一个监控系统的基石则是一个稳定而健壮的数据采集系统。

定义采集数据

数据结构的选择

监控数据是标准的时间序列数据,传统的监控系统中,一条监控数据一般是由监控指标、时间戳和值组成,比如有10台服务器的内存使用率需要监控,一个时间周期内映射到系统中可能就是10条mem.userd.percent 时间 值 这种格式的数据,然后分别和对应的主机关联。

这样做的缺点是,如果某一时刻想统计某个产品线、业务系统、集群、数据中心的某些监控指标的使用情况,可能就不太好实现。所以我们需要在传统的数据结构基础上增加一个字段,用来存储我们自定义的数据标签。为此,我们调研了当前主流的时序数据库,如RRDtool、Graphite、InfluxDB、openTSDB等,其中RRDtool和Graphite 只能支能持时间维度和值维度,Cacti和Zabbix就是基于RRDtool来绘图展示的。而InfluxDB和openTSDB都能满足我们的需求:其中InfluxDB版本比较低,而且每次更新变动都比较大;而openTSDB则在企业中有大量的成功案例。所以在数据结构的定义上,我们借鉴了openTSDB的数据结构,每条数据由metric、timestamp、value、tags组成,用tags键值对来标识不同的属性。比如网卡发送数据包数目为例,其数据结构如下:

Metric是一个可测量的单位的标称。metric不包括一个数值或一个时间,其仅仅是一个标签,包含数值和时间的叫datapoints,metric是用逗号连接的不允许有空格,例如:cpu.idle,app.latency等。

Tags:一个metric应该描述什么东西被测量,其不应该定义的太简单。通常,更好的做法是用Tags来描述具有相同维度的metric。Tags由tagk和tagv组成,前者表示一个分组,后者表示一个特定的项

Timestamp。一个绝对时间,用来描述一个数值或者一个给定的metric是在什么时候定义的。

Value。一个Value表示一个metric的实际数值。

这样对于相同的metric数据,我们可以自由的通过tag的组合来获取我们真正需要的数据。

三种数据类型

既然有了上面的数据结构的定义,当然就会有数据类型,不同的数据可能代表的意义都不一样,OWL中采用了RRDtool中比较常用的三种数据类型,分别为GAUGE、COUNTER、DRIVER。

GAUGE类型是一个计量器,可以理解最终存储的数据就是采集到的数据,比如服务器上的磁盘使用率,内存使用率,cpu使用率,硬件的温度,风扇的转速,业务系统中的访问时间等等,这种数据会随时间的变化而变化,并且没有什么规律可言。

COUNTER类型是一个计数器,该类型一般用于记录连续增长的记录,例如操作系统中的网卡流量,磁盘的io,交换机接口的流量,业务的吞吐量等等,COUNTER类型会假设计数器的值永远不会减小,除非达到数据类型的最大值产生溢出,OWL客户端会存储最近一次的值和上一次的值,每次上报的过程中会取每秒的速率发送到repeater,当计数器溢出,agent会自动对数据进行补值,否则可能会因为溢出产生一个巨大的错误值导致错误告警。

DRIVER类型用于表示单位时间内的数据变化,简单来说就是用来表示当前值和上一次值之间的差值,在监控领域中的实际应用场景可能不是很多。

agent每次采集都会判断数据类型,并应用对应的运算规则。

采集系统的整体架构

架构的变化

相比于上个版本的架构,我们的数据采集系统还是发生了很大的变化,变化主要体现在服务逻辑拆分和重新规划。

服务端在上个版本中,主要负责agent端配置的维护,监控数据的接收和转存,网络设备数据的采集,端口健康状态监测等功能,当服务端需要进行维护的时候,整个监控服务相当于不可用的。另外也不利于扩展。所以在该版本中对server进行了拆分,分别为cfc、repeater、net-collect,其中cfc主要负责配置维护,repeater负责监控数据接收和转发,net-collect负责采集网络设备数据,任何一个组件都可用做到水平扩展,极大的降低了系统的风险。

模块的角色功能

agent:通过内置metric以及自定义插件方式采集主机硬件、操作系统、中间件、业务系统等数据,并通过tcp长连接异步发送到repeater。

net-collect:负责采集网络设备各项性能指标,包含各接口接收发送字节数、数据包数、错误数等等,监控数据通过tcp长连接发送到repeater中,配置和接口信息发送到cfc中。

cfc:一般部署于数据中心,直连MySQL,负责维护agent或net-collect同步过来的metric信息以及插件的同步等

cfc-proxy:一般部署于分支机构或异地机房,是agent/net-collect和cfc之间的通讯桥梁。

repeater:可任意部署,负责接收时间序列数据并转发到指定的后端,支持repeater->repeater、repeater->openTSDB、repeater->Redis等。

采集系统如何与应用系统对接

比如我们现在新开发一个应用,那么我们需要梳理我们需要关心的指标,比如系统的吞吐量、延迟、接口或url访问量等等,由于OWL不支持主动push数据,所以我们需要将这些数据通过Http REST API 方式暴露出来,然后使用OWL自带的app_collect插件来定时采集数据,API暴露的数据结构大概如下:

采集系统的上层应用封装

基于该系统,我们可以在上层构建报警系统,统计分析系统,报表系统等等。大家可以自由去发挥。

其中,报警服务在上个版本中是基于Python 的Celery去实现的,由于依赖众多模块,安装部署复杂,在开源过程中大部分反馈的问题都是在该模块的部署上。因此,在该版本中我们使用go语言对重构了报警服务,分为控制器和报警逻辑处理模块:其中控制器负责报警策略生成和报警结果处理;逻辑处理模块负责从控制器获取策略并去OpenTSDB读取数据进行对比,产生的结果返回给控制器处理。整体而言这是一个生产者消费者模型,理论上消费者可用无限扩展。更多报警的具体细节,会在本系列的报警文章中进行详细的介绍。

总结

数据的采集是起点而非终点,如何对采集到的数据进一步加工处理,并且能够帮助我们改善工作和生活才是最终目标,我们坚信,数据改变人们的决策方式,数据改善人类自身和环境。

本文作者:佚名

来源:51CTO

时间: 2024-10-26 00:06:11

大数据下的技术运营:数据采集系统设计与实现的相关文章

中关村蕴酿民营银行 通过大数据和互联网技术运营

放松民营资本进入银行业的政策信号越来越强烈. 8月9日,银监会发布<中资商业银行行政许可事项实施办法>(2013年版征求意见稿,以下简称<办法>),拟修订自2006年2月1日施行的<中资银行设立办法>(下称2006版).和旧版本相比,<办法>在中资商业银行设立方面,特别是境内金融机构发起设立中资银行方面有一定的放松. "这个<办法>与监管层最近频繁释放民营银行设立的消息有很大关系."中央财经大学中国银行业研究中心主任郭田勇表示

阿里巴巴资深算法专家刘忠义:聚星台——客户运营核心大数据与算法技术

大流量高并发互联网应用实践在线峰会官网:https://yq.aliyun.com/activity/112 峰会统一报名链接:http://yq.aliyun.com/webinar/join/49 议题名称:<聚星台:客户运营核心大数据与算法技术> 议题简介:聚星台是阿里巴巴赋能商家的客户运营平台,为商家提供包括千人千面访客运营.个性化营销.粉丝会员运营在内的一系列大数据驱动的客户运营能力.本次分享主要介绍聚星台的核心大数据和算法技术,包括智能千人千面算法.个性化营销算法.粉丝与会员运营算

【阿里云产品公测】大数据下精确快速搜索OpenSearch

相信做过一两个项目的人都会遇到上级要求做一个类似百度或者谷歌的站内搜索功能.传统的sql查询只能使用like 或者FIND_IN_SET来实现.后者性能稍微好点但是必须要逗号分隔才可以实现匹配.甚至多条件的话还可能用到OR这是极影响系统性能的.        最近公司项目需要.主要是系统查询缓慢.并且查询精度不敢恭维.一开始想到的是Lucene 毕竟是一个开放源代码的全文检索引擎工具包 并且官方还在持续更新中.当时闲暇时间大概搞了将近一个星期的时间.索引的增删查改以及中文分词IKAnalyzer

能源互联网和电力大数据下的厮杀

今年的政府工作报告突出了互联网在经济结构转型中的重要地位,报告明确指出:要制定"互联网+"行动计划,推动移动互联网.云计算.大数据.物联网等与现代制造业结合,促进电子商务.工业互联网和互联网金融健康发展.报告引发了各行各业对互联网行业的极大关注,未来产业与互联网的融合将贯穿相关行业业务的主线. 能源行业是第三次工业革命的引领者,智能电网是"互联网+"的具体体现,"互联网+"必将给电网带来技术应用.服务模式.发展理念等方面的变化. "互联

普元发布政务大数据解决方案 用技术提升数据质量

今年9月初,国务院通过<关于促进大数据发展的行动纲要>,将大数据上升为国家战略.在纲要中提到,要大力推动政府信息系统和公共数据互联开放共享,加快政府信息平台整合.可见在大数据时代下,政府对于数据的整合.打破信息壁垒同样存在着需求. 11月25日,国内领先的软件基础平台与解决方案提供商普元信息技术股份有限公司,在京召开了普元政务大数据解决方案发布会.普元信息CTO焦烈焱认为,政府是一个非常好的大数据场所,通过电子应用的建设,从而达到提高政府的监管水平.为整个社会的公共服务提供支撑.以及拉动产业三

云计算&大数据 “下一幕”智能变革之力

2016年的互联网科技领域,云计算.大数据.人工智能成为最热词汇.阿里云"为了无法估算的价值"将中国的计算触角伸向海外,百度首次向外界展示"百度大脑"的科技成果,移动互联网利用人口红利带来的增长已经逐渐见顶,互联网正在进入"下一幕"智能时代,云计算.大数据.人工智能将使全社会迎来变革性的发展. 云计算&大数据 "下一幕"智能变革之力 技术发展是产业发展走向繁荣的前提 无论是计算机行业,还是汽车领域,技术形态的成熟是一个

大数据下的报业转型

 大数据的到来,带来了一场革命,庞大的数据资源使得各个领域开始了量化进程,无论学术界.商界还是政府,所有领域都将开始这种进程. 随着大数据应用的爆发性增长,它已经衍生出了自己独特的架构,而且也直接推动了存储.网络以及计算技术的发展.,数据已经渗透到每一个行业和业务职能领域,逐渐成为重要的生产因素,而作为现在新媒体的冲击下,不得不谋求转型的报业来说,大数据时代的来临,为报业转型提供了一条可以借力的技术通道. 如今以报纸为主体的传统报业正面临诸如:读者流失.广告投放减少.活动影响力减弱等问题,而这些

大数据下的数据分析平台架构

随着互联网.移动互联网和物联网的发展,谁也无法否认,我们已经切实地迎来了一个海量数据的时代,数据调查公司IDC预计2011年的数据总量将达到1.8万亿GB,对这些海量数据的分析已经成为一个非常重要且紧迫的需求. 作为一家互联网数据分析公司,我们在海量数据的分析领域那真是被"逼上梁山".多年来在严苛的业务需求和数据压力下,我们几乎尝试了所有可能的大数据分析方法,最终落地于Hadoop平台之上. Hadoop在可伸缩性.健壮性.计算性能和成本上具有无可替代的优势,事实上已成为当前互联网企业

AdTime雷永华:大数据下的未来广告

4月24日,在"科技创享 变革未来"这一主题下,2013年艾瑞年度高峰会议在北京国家会议中心拉开帷幕.国内智能数字广告营销领导企业AdTime首席技术官雷永华在数据营销分会上发表了<大数据下的未来广告>主题演讲. 雷永华介绍,大数据运用到互联网营销领域可使未来广告呈现"4M"特征."4M"指More Faster.More Centralized.More Vertical.More Closer.在此基础上介绍了AdTime秉承的时