基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统.docx

上传人:安*** 文档编号:73267821 上传时间:2023-02-17 格式:DOCX 页数:17 大小:24.45KB
返回 下载 相关 举报
基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统.docx_第1页
第1页 / 共17页
基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统.docx_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统.docx》由会员分享,可在线阅读,更多相关《基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统.docx(17页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、基于流计算Oceanus和ElasticsearchService构建百亿级实时监控系统为什么要构建监控系统龙逸尘腾讯CSIG高级工程师在后挪动互联网时代良好的用户体验是增长的根底稳定的使用体验就是用户体验的根底。大型的互联网公司十分是面向C端客户的公司对业务系统稳定性的要求越来越高因此对线上问题发现以及处理的速度要求通常是分钟级的。比方滴滴等出行公司打车效劳停摆10分钟都会导致导致乘客、司机大规模投诉不仅造成经济损失而且严重平台商誉以及用户口碑。大型互联网公司的业务系统都是大规模的分布式系统各种业务应用以及根底组件数据库、缓存、消息队列等共同交织成复杂的依赖网络任何节点都可能出现故障导致系统

2、不可用。因此业务系统的监控非常重要通过监控及时发现以及干预问题防止事故或者降低事故影响范围。本文将从监控系统整体架构设计、监控系统技术方案落地这两局部阐述了百亿级大数据实时监控系统的建立经过旨在帮助大众解析监控系统设计思路对于监控系统建立提供专业指导快速构建监控系统。监控系统整体设计监控系统需求世界上并不存在完全可靠的系统程序、机器、网络等都可能在运行中出现故障进而导致效劳异常。因此监控的目的就是高效及时地发现、定位系统异常问题期望缩短异常的平均修复时间进而降低异常造成的损失。为了实现缩短异常的平均修复时间这一目的监控系统应该具有这些才能数据收集才能全面、准确、快速、低损耗地获取监控日志及数据

3、数据会聚才能将相关数据会聚起来方便加工得到我们需要关注的数据数据分析与处理才能对需要关注的数据提供异常指标检测、故障诊断等分析方法和数据过滤、采样、转换等处理手段数据存储才能为海量日志与监控指标提供高性能存储监控告警才能指定监控规那么触发规那么后提供、邮件、微信、短信等各类告警机制数据展示才能提供监控数据与告警的Dashboard展示功能加速问题定位高可用整个监控系统需要做到高可用监控就是为了发现异常假如由于异常导致自身不可用肯定是减分的监控系统架构根据对监控系统需求的调研可以将监控系统整体的数据流转经过抽象为以下几个阶段收集-会聚-处理-存储-分析-展示-告警。从中我们可以总结出监控系统的一

4、般架构从下往上来分析首先是数据收集层提供诸多收集手段包括Agent收集、RPC埋点、HTTP上报等可以通过Agent收集宿主机监控数据以及日志或RPC埋点上报可以以由用户直接通过HTTP推送进展数据收集。成功收集到的数据需要经过统一的数据会聚层将相关联的数据进展会聚。例如同一业务系统的所有效劳器数据将会会聚到一个一样的消息队列中便于异常检测。数据完成会聚后将分为三条数据流处理数据处理、数据分析、数据存储。数据处理层对原始监控数据进展加工通过数据清洗与转换将数据格式化并进展根底的聚合计算例如累加计算10台效劳器的ERROR日志次数数据分析层对标准化后的数据进展关联分析、异常检测、故障诊断等为后续

5、的告警提供判断根据数据存储层对日志、指标、时序数据进展存储便于Dashbord展示可用于进一步的数据挖掘。数据流处理完成后进入监控告警层对符合监控、告警规那么的事件进展告警推送。数据流最终到达数据展示层提供常见的用户交互页面如监控面板、告警面板等。监控系统方案落地技术选型方案1:流计算OceanusElasticStack提到监控系统方案大众首先想到的肯定是ElasticStackElasticsearch、Logstash、Kibana、Beats其活泼的社区、简单的安装流程、便捷的使用方式等优势吸引了大量用户当前许多互联网公司的监控系统架构都是基于开源Elasticstack搭建的。Ela

6、sticStack由Elasticsearch、Logstash、Kibana以及Beats组成。下面分别对各个组件进展简单的介绍。Elasticsearch是一款实时全文搜索以及分析引擎。作为Elasticstack的核心Elasticsearch可用于搜索各种类型的数据从文本、数字以及地理空间数据到其他类型的构造化以及非构造化数据主要支持搜索、分析、存储数据三大功能。Elasticsearch基于ApacheLucene搜索引擎库构建它易于使用且可扩展。Logstash是一款日志聚合器它可以从各种输入源动态收集监控日志以及数据对其进展转换后将数据传送到各种支持的输出目的地。许多用户将转换后

7、的数据发送到Elasticsearch在其中对日志、监控数据进展索引与搜索。Kibana是工作在Elasticsearch之上的可视化层为用户提供数据分析以及可视化的才能可将存储在Elasticsearch中的数据转换为易于使用的图表、图形、直方图以及其他可视化表示进而深化挖掘数据特征。Beats是一款轻量级日志收集器目前Beats包含多种工具Metricbeat、Filebeat、Heartbeat等。每个Beat都有一个简单的任务收集日志或者数据并发送到输出目的地。早期的ELKStack使用Logstash采集并解析日志但是Logstash本身是基于jdk的而且它集成了许多插件对内存、CP

8、U、IO等资源消耗比拟高。相比于LogstashBeats所占系统的CPU以及内存几乎可以忽略不计因此考虑使用轻量级的Beats组件来完成日志以及监控数据的收集操作。架构如下ElasticStack运行于分布式系统之上为用户提供了一个性能强大的平台该平台通过收集、过滤、传输、储存对海量日志以及监控数据进展集中管理以及准实时搜索、分析提供准实时搜索、监控、事件消息以及分析报表等简单易用的功能帮助运维人员进展线上业务的实时监控业务异常时及时定位原因、排除故障深度挖掘日志的大数据价值。但是ElasticStack也存在一些缺乏。首先Beats只有收集日志与监控数据的功能无法对数据进展处理另外Logs

9、tash的数据处理功能很弱无法知足复杂的数据处理需求且不支持监控数据缓存存在数据丧失的隐患。综上所述在将监控数据与日志信息保存到Elasticsearch之前需要引入消息队列缓存数据并使用大数据实时计算引擎对数据进展实时的过滤、转换、聚合。而腾讯云流计算Oceanus恰好可以实现这些功能。流计算Oceanus是大数据产品生态体系的实时化分析利器是基于ApacheFlink构建的具备一站开发、无缝连接、亚秒延时、低廉本钱、平安稳定等特点的企业级实时大数据分析平台。流计算Oceanus能很好地知足监控场景下海量实时数据处理的需求监控系统可以利用Oceanus的实时计算才能对监控日志与数据进展清洗、

10、转换并完成聚合分析实时计算的结果可以直接用于监控告警展示极大地提升了运维人员在故障发生时的决策才能。使用ElasticStack还需要关注的点是监控面板。Kibana的长处在于日志分析且仅适用于Elasticsearch不支持任何其他类型的数据源它的面板展示才能还有进步的空间而且具有陡峭的学习曲线对于非技术业务用户来讲很难上手。因此可以考虑使用其他的数据可视化工具代替Kibana作为监控面板让Kibana专注于日志分析。综合比照现有的可视化工具后我们选择使用Grafana。在实际应用场景中可以使用Beats收集日志与监控数据将Kafka作为Beats的输出端。Kafka实时接收到Beats收集

11、的数据后使用流计算OceanusFlink进展实时处理与聚合将知足需求的数据输出到Elasticsearch中进展分布式检索通过Kibana进展日志分析最后采用Grafana作为监控面板。流程如下列图所示flinkes方案2:ZabbixPrometheusGrafanaZabbix是一款开源的分布式系统监控软件。它支持可视化配置提供多种指标收集支持自定义告警阈值与多样的通知机制。Zabbix灵敏的设计为用户提供了易用的二次开发接口让用户既可以使用Zabbix本身提供的功能又可以自定义更多的监控项功能如硬件监控、操作系统指标监控、效劳进程监控等。Prometheus是一款基于Go语言开发的监控

12、、告警、存储套件它通过HTTP协议从远程的机器采集数据并存储在本地的时序数据库上。Prometheus架构简单单个效劳器节点可直接工作属于轻量级的Server。同时不依赖外部存储便于迁移以及维护其监控数据直接存储在PrometheusServer本地的时序数据库中单个实例可以处理数百万的Metrics。Prometheus具有灵敏的数据模型以及强大的数据查询语句可以帮助快速定位以及诊断问题非常适用于面向效劳架构的监控。Grafana是一个开箱即用的可视化工具具有功能齐全的度量仪表盘以及图形编辑器有灵敏丰富的图形化选项支持配置多种数据源例如Elasticsearch、InfluxDB、Prome

13、theus等。Grafana可以通过Datasource链接Prometheusurl并对接入的数据进展分组、过滤、聚合等逻辑运算进而在监控面板中直观展示监控指标。Zabbix、Prometheus以及Grafana构建的监控系统部署简单功能完善非常合适容器化环境但是也存在一定的局限主要缺点是在超大规模数据量下存在性能瓶颈。Zabbix入门容易能实现根底的监控但是深层次需求需要非常熟悉Zabbix并进展大量的二次定制开发Zabbix使用pull方式收集数据存在性能瓶颈Prometheus是基于监控指标Metric的监控不适用于日志Logs、事件Event、调用链Tracing等监控Promet

14、heus目前只能提供非持久化的数据存储无法长期保存数据Prometheus只合适单机部署对于集群化以及程度扩展官方以及社区都没有银弹无法支持海量数据存储与监控。选型总结ElasticStack与流计算Oceanus组合构建了分布式、可拓展、实时化的监控系统对海量日志以及监控数据进展集中管理以及实时搜索、分析提供指标监控、事件消息以及分析报表等简单易用的功能。性能完善扩展性强缺点是部署比拟费事资源消耗较高。Zabbix、Prometheus以及Grafana构建的监控系统部署简单功能完善非常合适容器化环境但是存在致命缺陷超大规模监控数据量下无法打破性能瓶颈。综上所述我们最终考虑采用流计算Ocea

15、nus以及ElasticStack构建监控系统。系统优化随着业务量的上涨监控指标逐渐增多需要监控的设备不断增长对监控系统的性能要求也日益提升。当数据量增长到百亿甚至千亿级别监控系统可能会出现以下问题处理性能下降系统整体处理性能变弱处理抖动、毛刺情况增多。上游消息队列出现大量数据堆积情况监控延时上升。数据倾斜由于业务系统各组件监控数据与日志分布不均匀导致数据倾斜Flink任务反压严重各算子的Checkpoint时间变长甚至频繁失败。局部节点出现CPU过载、OOM的情况。存储写入性能下降Elasticsearch写入时延上涨存在大面积写入被回绝的现象最终导致上游Flink任务反压甚至任务崩溃。当系

16、统不稳定或处理性能下降时数据延时会上涨至小时甚至天级别这对于需要尽量做到实时化的监控系统来讲是无法承受的。而面对超大规模监控数据量的场景腾讯云流计算Oceanus以及Elasticsearchservice进展了大量优化。下面进展详细介绍。流计算Oceanus流计算Oceanus是大数据产品生态体系的实时化分析利器是基于ApacheFlink构建的具备一站开发、无缝连接、亚秒延时、低廉本钱、平安稳定等特点的企业级实时大数据分析平台。流计算Oceanus能很好地知足监控场景下海量实时数据处理的需求。监控系统可以利用Oceanus的实时计算才能使用简单的SQL对监控日志与数据进展实时清洗、转换与聚

17、合分析。SQL性能优化流计算Oceanus对原生FlinkSQL进展了大量优化提升超大规模数据量下作业的处理性能。数据倾斜是导致Flink作业性能问题的常见原因。数据倾斜指的是数据分布严重不平衡太多数据集中在某些task上导致内存紧张频繁GC而频繁的GC导致系统吞吐下降数据延迟严重情况下还可能导致TaskManager失联任务崩溃。针对数据倾斜问题流计算Oceanus自动为作业开启Local-GlobalAggregate与Mini-Batch功能。Local-GlobalAggregate可以靠LocalAggregate的预聚合筛除局部倾斜数据进而降低GlobalAggregate的热点防

18、止数据倾斜提升处理性能。同时在Aggregate的处理经过中可以开启MiniBatch方式Local阶段采取微批提交防止数据量缓存太多Global阶段那么可以减少状态的访问次数降低I/O压力。FlinkSQL下还存在UDF函数复用的问题。假如一样的UDF在SQL中出现屡次例如简单的JSON解析、URL解析等原生的FlinkSQL会屡次执行影响性能。针对UDF函数复用问题流计算Oceanus将逻辑执行方案中重复调用的UDF提取出来并对UDF的执行结果进展缓存防止屡次调用。流表维表Join中存在数据冷启动问题假如将维表数据加载到所有的subtask里面会造成较大的内存消耗而且很容易造成反压。流计算

19、Oceanus的解决方案是在维表的DDL中指定Bucket信息流与维表进展Join的时候会基于Bucket信息去加载维表中对应分片的数据同时在翻译执行方案的时候流表拿到Bucket信息以保证流与维表的数据都会基于同一个Bucket信息进展Join。这种处理方案能大大减少全量维表数据预加载带来的内存消耗与反压问题。作业智能诊断与监控流计算Oceanus为作业异常重启、Snapshot失败、和JobManager/TaskManager的CPU、内存异常等各类运行状态的事件提供可视化的提示。并且以异常日志的收集以及聚合分析为切入智能地诊断分析异常信息并给出建议的解决方案。此外流计算Oceanus还

20、以Task粒度定义动态指标并以维度聚合sum、max、min、avg的方式定义从上下游系统到集群作业的安康运行相关的65项监控指标对作业进展全方位监控告警。流计算Oceanus提供作业运行事件可视化、作业智能诊断与全方位监控告警等功能为用户的实时计算作业保驾护航。作业自动扩缩容流计算Oceanus提供作业自动扩缩容功能根据CPU、内存、反压状况等业务负载情况自动进展作业并行度的调整完成作业扩缩容。当遇到数据倾斜、作业负载过高等事件时流计算Oceanus会自动调整作业并行度增加作业运行资源进而防止数据倾斜降低作业负载保障作业稳定运行。而在业务低谷期流计算Oceanus会自动缩减作业计算资源减少资

21、源浪费。作业自动扩缩容功能在保障业务时效性的同时防止了资源浪费可以为用户降低可观的本钱。腾讯云ElasticsearchService伴随数据量的极速上涨开源Elasticsearch暴露出来的问题为写入耗时过大大量写入被回绝局部索引查询性能慢存储本钱急剧增加堆内存使用过大Elasticsearch的使用姿势、参数调优等在社区有很多的案例以及经历可以借鉴但是百亿级实时监控场景下很多的痛点以及挑战是无法通过简单的调优来解决的。腾讯云ElasticsearchServiceES是基于开源搜索引擎Elasticsearch打造的高可用、可伸缩的云端全托管的Elasticsearch效劳包含Beats

22、、Kibana及常用插件并集成了平安、SQL、机器学习、告警、监控等高级特性X-Pack。为了应对上述的困难腾讯云ES从内核层面做了深度的优化。存储模型优化Elasticsearch底层的Lucene是基于LSMTree的数据文件原生默认的合并策略是按文件大小相似性合并默认一次固定合并10个文件近似与分层合并。这种合并方式的最大优点是合并高效可以快速降低文件数主要问题是数据不连续会导致查询时文件剪枝的才能变弱比方查询最近一小时的数据很有可能一小时的文件被分别合并到了几天前的文件中去了导致需要遍历的文件增加了。为了提升数据连续性、收敛文件数量提升文件的裁剪才能来进步查询性能腾讯云ES实现的文件合

23、并策略主要是按时间序分层合并每层文件之间按创立时间排序除了第一层外都按照时间序以及目的大小进展合并不固定每次合并文件数量这种策略可以保证合并的高效性。对于少量的未合并的文件和冷分片文件采用持续合并的策略将超过默认五分钟不再写入的分片进展持续合并并控制合并并发以及范围以降低合并开销。通过对合并策略的优化腾讯云ES将搜索场景的查询性能提升了40%同时带主键的数据写入性能提升了一倍。本钱优化腾讯云ES对业务数据访问频率进展调研发现最近的数据访问频率较高例如最近5分钟的一小时的一天的近几天的访问频率就比拟少了超过一个月的就更少了。基于这种数据特征腾讯云ES通过冷热别离把冷数据放到HDD来降低本钱同时利

24、用索引生命周期管理来搬迁冷数据冷数据盘一般比拟大因此还要利用多盘策略来进步吞吐以及数据容灾才能。最后将超冷的数据冷备到腾讯云的对象存储COS上冷备本钱非常低。通过冷热数据别离监控数据总体存储本钱下降了将近10倍。内存优化通过对线上Elasticsearch集群进展分析发现很多场景下堆内内存使用率很高而磁盘的使用率比拟低。其中Elasticsearch的FST即倒排索引占据了绝大局部堆内内存而且这局部是常驻内存的。每10TB的磁盘FST的内存消耗大概在10GB到15GB左右。为了对FST这种堆内占用比拟大的内存做优化腾讯云ES将其移至堆外off-heap按需加载实现更精准的淘汰策略进步内存使用率

25、再加上多级cache的管理形式来提升性能。通过内存优化可以提升堆内内存利用率降低GC开销提升单个节点管理磁盘的才能。总结本文从监控系统整体架构设计、监控系统技术方案落地这两局部阐述了百亿级大数据实时监控系统的建立经过。首先阐述了监控系统的需求并根据需求总结出监控系统架构。随后进展技术选型分别分析了基于流计算Oceanus、ElasticStack以及基于Zabbix、Prometheus、Grafana的监控系统技术方案并选择基于流计算Oceanus以及Elasticstack构建监控系统。最后针对超大规模监控数据量的场景介绍腾讯云流计算Oceanus与ElasticsearchService对性能与本钱的各种优化策略与手段。总体而言选择流计算Oceanus与ElasticsearchService能很好地支撑实时监控的需求并极大地降低用户本钱。祈望本文可以帮助读者解析监控系统设计思路对于监控系统建立提供专业指导快速构建高性能的监控系统。腾讯技术工程

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 工程图纸

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com