阿里云TSDB在大数据集群监控中的方案与实战

目前大部分的互联网企业基本上都有搭建自己的大数据集群,为了能更好让我们的大数据集群更加高效安全的工作,一个优秀的监控方案是必不可少的;所以今天给大家带来的这篇文章就是讲阿里云TSDB在上海某大型互联网企业中的大数据集群监控方案中的实战案例,希望能为感兴趣的同学提供一些帮助。

背景和需求

阿里云时序时空数据库 (原阿里云时间序列数据库, 简称 TSDB) 是一种高性能,低成本,稳定可靠的在线时序数据库服务;提供高效读写,高压缩比存储、时序数据插值及聚合计算,广泛应用于物联网(IoT)设备监控系统 ,企业能源管理系统(EMS),生产安全监控系统,电力检测系统等行业场景。 TSDB 提供百万级时序数据秒级写入,高压缩比低成本存储、预降采样、插值、多维聚合计算,查询结果可视化功能;解决由于设备采集点数量巨大,数据采集频率高,造成的存储成本高,写入和查询分析效率低的问题。

Elastic MapReduce(EMR)是阿里云提供的一种大数据处理的系统解决方案。EMR基于开源生态,包括 Hadoop、Spark、Kafka、Flink、Storm等组件,为企业提供集群、作业、数据管理等服务的一站式企业大数据平台。

上海某大型互联网企业是阿里云EMR的Top客户,在阿里云上购买的EMR实例有近千台hadoop机器,这些机器目前除了阿里云本身ECS级别的监控以外,没有一套成熟的这对大数据的监控运维告警系统,对大数据业务来讲存在很大的风险。现在客户的需求是对购买的EMR集群做监控和告警,单台有20多个监控指标,采集精度可以根据客户需求调整,另外还要求对原有的业务无侵入,不需要业务层做太多的配置重启类操作。

痛点和挑战

该大型互联网企业客户最初计划采用的是Prometheus作为监控和告警解决方案,并且基于Prometheus的监控方案也在该企业内部其他系统应用了。

这里提到了Prometheus,就多说几句。随着业内基于Kubernetes的微服务的盛行,其生态兼容的开源监控系统Prometheus也逐渐被大家热捧。

Prometheus是一个开源监控系统,它前身是SoundCloud的监控系统,在2016年继Kurberntes之后,加入了Cloud Native Computing Foundation。目前许多公司和组织开始使用Prometheus,该项目的开发人员和用户社区非常活跃,越来越多的开发人员和用户参与到该项目中。

下图就是prometheus方案的架构:

这个方案在实际部署过程中发现Prometheus在存储和查询上存在性能的问题,主要是Prometheus本身采用的local storage方案在大数据量下的扩展性写入查询性能存在瓶颈。

另外在这个方案的适配性不强,要改很多参数重启才行,这对于线上正在运行的业务来说,是不可接受的,需要重新设计解决方案。

阿里云TSDB解决方案

监控和告警整体上来说包括三个环节:

1.采集指标

2.存储指标

3.查询告警

因此基本方案就可以简化为:采集工具 + 数据库 + 查询告警。其中,数据库可以通过阿里云TSDB来解决存储和查询上的性能问题,查询告警可以通过成熟的开源工具Grafana。由于该互联网企业客户的要求对原有的业务无侵入,不需要业务层做太多的配置重启类操作,因此解决方案的调研就重点落在了采集工具的调研上了。

对于采集工具而言,结合该互联网企业客户已经部署的Prometheus,且阿里云TSDB兼容开源时序数据库OpenTSDB的写入和查询协议,因此从减少成本和工作量的角度来看,可以考虑的方式是有两种:

1. 使用Prometheus官方提供的开源的OpenTSDB Adapter 对接原生的Prometheus ,实现数据写入到TSDB。基本架构为:

这种方案和该互联网企业客户的开发同学沟通后,发现满足不了对业务无侵入,不重启的需求,因此选择放弃;

2. 采用其他开源工具,实现数据采集写入到TSDB。开源社区较为活跃,已经提供了不少开源的采集工具,因此我门评估了以下几个开源的采集工具:

- Collectdhttps://collectd.org

- telegraf, https://github.com/influxdata/telegraf

- statsd, https://github.com/etsy/statsd

- tcollector, http://opentsdb.net/docs/build/html/user_guide/utilities/tcollector.html

从开发语言、部署方式以及是否支持定制开发等角度,我们初步选择tcollector作为采集工具。tcollector是一个客户端程序,用来收集本机的数据,并将数据发送到OpenTSDB。tcollector可以为你做下面几件事:

- 运行所有的采集者并收集数据;

- 完成所有发送数据到TSDB的连接管理任务;

- 不必在你写的每个采集者中嵌入这些代码;

- 是否删除重复数据;

- 处理所有有线协议,以后今后的改进;

因此,基于tcollector + TSDB + Grafana的监控告警架构如下,其中tcollector以http协议从目标结点上拉取监控指标,并以http的OpenTSDB协议将指标推送至阿里云TSDB。

这个方案在不修改tcollector源码的基础上,能够满足客户对hadoop的监控。但是在PoC后,客户增加了对EMR实例中其他大数据组件的监控需求,如Hive, Spark, Zookeeper, HBase, Presto, Flink, azkaban, kafka, storm等。

经过我们调研,tcollector对于这些组件的支持程度如下:

- 原生支持:hbase;

- 需定制化开发,不重启实例:Hive, Spark, Zookeeper;

- 需定制化开发,需重启实例:Flink, azkaban, kafka, storm;

经过一定工作量的制化开发,基于tcollector的方案基本可以满足用户的需求。最终我们在该互联网企业客户的EMR大数据集群的监控告警方案架构为:

tcollector非常简单易部署,可以简单高效地完成了客户的需求。而且配置部署时,可以不用区分大数据组件的角色,解决了之前开源采集工具需要针对不同角色,来手动配置并启动相应插件的问题。

至此,TSDB完美得解决了该互联网企业客户大数据集群监控接入TSDB的案例,让TSDB在迈向完善生态的路上更进一步了。另外值得一提的是,为了解决目前广泛使用的Prometheus开源系统在大量时序数据的存储、写入和查询存在性能瓶颈问题,阿里云TSDB也已经开始兼容了Prometheus生态,并且已经在多个客户场景进行了实战。后面我们会推出针对Prometheus的系列文章,对Prometheus感兴趣或者已经是Prometheus用户但是遇到性能问题的同学可以持续关注我们。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法

对接第三方厂商需求时,需要对数据AES256进行解密,由于java本身不支持,需要添加依赖。 文章目录一、版本适配1. 版本对应关系2. maven仓库地址3. maven坐标二、linux jdk策略下载2.1. JDK6 jce2.2. JDK7 jce2.3. JDK8 jce三、linux jdk策略配置…

开发函数计算的正确姿势——运行 Selenium Java

前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源&am…

云+X案例展 | 民生类:易趋云全面提升三德科技管理效能

本案例由深圳蓝云投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。湖南三德科技股份有限…

redis 公网 安全_redis漏洞复现

一、漏洞简介什么是redisredis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/po…

实时计算的最佳实践:基于表格存储和Blink的大数据实时计算

表格存储: 数据存储和数据消费All in one 表格存储(Table Store)是阿里云自研的NoSQL多模型数据库,提供PB级结构化数据存储、千万TPS以及毫秒级延迟的服务能力。在实时计算场景里,表格存储强大的写入能力和多模型的存储形态&…

关于JDK8采坑JCE加密限制版本问题

文章目录一、解决方案11. 调研2. 常见的异常3. 安全性机制导致的访问https会报错4. 解决方案5. 操作流程6. 移动jar配置策略二、解决方案22.1. 声明2.2. 编辑策略文件2.3. 修改默认属性一、解决方案1 声明:jdk1.8已经经过线上环境使用 1. 调研 JDK8的加密策略存在…

速围观!云+X 案例评选榜单重磅出炉!

2019年11月,CSDN云计算强势开启“云X”案例征集活动,从先进性、拓展性、效益性等三个基本方向出发,深入展现云技术作用行业的突出优势。时隔2个月,通过广泛征集等方式,经过层层筛选,深入挖掘出跨行业、跨生…

uvm 形式验证_UVM基础

uvm_component与uvm_object1.几乎所有的类都派生于uvm_object,包括uvm_component。uvm_component有两大特性是uvm_object所没有的:一是通过在new的时候指定parent参数来形成一种树形的组织结构;二是有phase的自动执行特点。下图是常用的UVM继…

linux根文件系统 /etc/resolv.conf 文件详解

大家好,今天51开源给大家介绍一个在配置文件,那就是/etc/resolv.conf。很多网友对此文件的用处不太了解。其实并不复杂,它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件…

Table Store: 海量结构化数据实时备份实战

Table Store: 海量结构化数据实时备份实战 数据备份简介 在信息技术与数据管理领域,备份是指将文件系统或数据库系统中的数据加以复制,一旦发生灾难或者错误操作时,得以方便而及时地恢复系统的有效数据和正常运作。在实际备份过程中&#xf…

云+X案例展 | 电商零售类:云徙助力良品铺子「双11」

本案例由云徙投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。助力品牌制胜双十一的背后…

strtus2改成springboot_ssh框架使用springBoot升级迁移替换Struts2

如果一个十来年的ssh项目想使用springboot的便捷性,但又不想从零开始,那么就让我们开始迁移吧。在pom文件添加springboot 依赖创建application 启动类迁移web.xmlweb.xml文件中定义了filter, struts2等等一堆filter, 这时我们需要做的一件事是在springbo…

同样做前端,为何差距越来越大?

阿里妹导读:前端应用越来越复杂,技术框架不断变化,如何成为一位优秀的前端工程师,应对更大的挑战?今天,阿里前端技术专家会影结合实际工作经验,沉淀了五项重要方法,希望能对你的职业…

云+X案例展 | 民生类:必创科技助力打造智慧城市

本案例由必创科技投递并参与评选,CSDN云计算独家全网首发;更多关于【云X 案例征集】的相关信息,点击了解详情丨挖掘展现更多优秀案例,为不同行业领域带来启迪,进而推动整个“云行业”的健康发展。每当夜幕降临&#xf…

刚刚,阿里宣布开源Flutter应用框架Fish Redux!

3月5日,闲鱼宣布在GitHub上开源Fish Redux,Fish Redux是一个基于 Redux 数据管理的组装式 flutter 应用框架, 特别适用于构建中大型的复杂应用,它最显著的特征是 函数式的编程模型、可预测的状态管理、可插拔的组件体系、最佳的性…

谈谈结构体部分成员排序(重载的利用/sort)

涉及知识点: 1.重载运算符的知识 2.sort函数的使用 3.高精度排序 sort函数的用法? 通过面向百度GOOGLE编程的我,得知,sort的用法 sort函数详解(史上最完整QAQ) - AlvinZH - 博客园 对于数组而言&…

qt最大化和还原实现_研究进展 | 水生所关于细菌异化型硝酸盐还原成铵与反硝化脱氮两种途径抉择的分子调控机制研究取得进展...

在无氧和缺氧条件下,许多细菌可利用硝酸根和亚硝酸根作为电子受体进行无氧呼吸,包括异化型硝酸盐还原成铵(dissimilatory nitrate reduction (DNR) to ammonia,DNRA)和反硝化脱氮(denitrification)两种相互竞争的DNR途径,在氮元素…

rabbitmq 集群 ha负载 Consumer raised exception, processing can restart if the connection factory

文章目录1. 背景2. 现象3. 原因分析4. 解决方案5. 成功案例1. 背景 线上有一个rabbitmq 集群,一台磁盘模式的 两台内存模式的. 使用erlang 做cookie 做同步.haproxy做负载 2. 现象 在连接一会后 程序抛出异常 Consumer raised exception, processing can restart if the con…

2019 年,容器技术生态会发生些什么?

1. Kubernetes 项目被采纳度将持续增长 作为“云原生”(Cloud Native)理念落地的核心,Kubernetes 项目已经成为了构建容器化平台体系的默认选择。但是,不同于一个只能生产资源的集群管理工具,Kubernetes 项目最大的价…

中国科学院院士徐宗本:人工智能的基石是数学

来源:科学网 “人工智能的基石是数学,没有数学基础科学的支持,人工智能很难行稳致远。” 近日,由联合国教科文组织和中国工程院联合主办的联合国教科文组织国际工程科技知识中心2019国际高端研讨会上,中国科学院院士、…