作者:放纵(刘玉杰)
开源Elasticsearch是一个基于Lucene的实时分布式的搜索与分析引擎,是遵从Apache开源条款的一款开源产品,是当前主流的企业级搜索引擎。作为一款基于RESTful API的分布式服务,Elasticsearch可以快速地、近乎于准实时地存储、查询和分析超大数据集,通常被用来作为构建复杂查询特性和需求强大应用的基础引擎。
2017年,阿里云携手Elastic合作推出了阿里云Elasticsearch服务,在100%兼容开源功能的同时,支持开箱即用、按需付费。通过Elastic创新的检索技术与阿里云自研的云原生高性能内核、达摩院NLP分词与向量检索等能力,帮助企业客户提升业务成效,并节约费用支出。在切实提高企业应用程序性能的同时,提升业务的敏捷性和智能化,缩短解决问题所需时间,使客户可以专注于自身业务创新。
基于“源于开源,又不止于开源”的产品理念,阿里云Elasticsearch持续在包含智能运维在内的可观测场景进行云原生引擎能力升级,作为业内首个Serverless Elasticsearch云服务,云上日志增强引擎可提供基于读写分离架构的Indexing Service写入加速服务、Openstore海量存储服务,从而实现Elasticsearch写入及存储Serverless,为用户带来更低成本、更高性能、更简单易用的全观测场景能力。
ELK作为业界处理与分析日志首选的解决方案,由搜索引擎Elasticsearch、采集与解析工具Logstash、轻量级采集组件Beats、可视化分析工具Kibana等工具组成,形成了一整套生态矩阵。目前阿里云已经成功将全套ELK搬到了云上为用户提供服务,可以被广泛应用于实时日志处理、全文搜索和数据分析等领域。SREWorks正是基于以Elasticsearch为主的生态矩阵,构建了一套应用全观测数据化运维最佳实践。
一、 数据化运维体系是什么
数据化运维体系,是一套把所有系统的运维数据采集起来、真正打通,深度挖掘这些数据的价值,通过数据驱动运维并为运维提供数据决策,同时能将生产系统进行“运维量化管理”的数据化运维业务模型。基于该模型建立标准化运维数仓,建设数据运维平台,在平台中规范运维数据的采集,存储,计算以及分析,并提供一系列数据化服务,供上层运维场景使用。
二、 SREWorks数据化运维平台
SREWorks数据化运维平台包含一个核心和多个数据服务,一个核心即运维数据仓库,提供标准运维数据模型;多个数据服务即围绕运维数据的采集、存储、计算以及分析的数据化链路,提供的规范化数据服务,支撑应用的运维量化。
1. 运维数仓
基于开源Elasticsearch建设标准化运维数仓,抓住数据化运维本质,抽象三大数据主题和九个数据域,内置涵盖云原生数据运维场景的数据实体和数据模型。数仓具备灵活的用户自定义实体/模型能力,充分满足用户的个性化需求。
数仓数据后端采用Elasticsearch存储,其分布式索引架构、多副本、索引生命周期管理以及数据冷热存储分离等特性,很好的满足了数仓的稳定性和动态性基本特性。同时可以对接多种数据处理工具(Logstash、Spark、Flink、APM Server),最终数据落地Elasticsearch,支撑起整个运维数仓的存储和检索能力。
2. 数据采集服务
集成metricbeat、filebeat、skywalking等数据采集agent,以全托管方式,进行可观测数据采集,包括Node/Pod/Container资源/负载指标、状态指标、运维事件、Prometheus外围指标、服务(容器)日志采集解析、服务追踪调用链采集分析等。metricbeat支持基于标签的服务自动发现能力,默认监听10800端口,主动采集满足标签条件服务上报的业务指标数据。
作业平台采集场景服务,属于自研数据采集服务,支持多种数据采集脚本,关联数仓模型,通过SREWorks运维数仓托管业务的运维数据。
3. 数据计算/分析服务
开源Apache Flink是一个⼀站式实时大数据分析平台,通过标准SQL降低业务开发门槛,提供端到端实时数据分析能力。同时内置常规数据处理UDF(阈值检测、数据聚合、数据降采样),支撑时序数据的流式加工处理。
作业平台数据化场景服务,覆盖巡检、分析、诊断等多个数据化场景,可自定义数据处理逻辑,满足用户个性化数据处理要求。
4. 指标服务
提供指标定义和指标实例的配置与管理,已经内置基础资源和基础性能指标,用户可以按需新增指标。新增指标可以关联到采集场景服务,支持指标数据推送kafka队列,用于进行下游数据计算消费。
5. 数据集服务
数据集服务提供快速将运维数仓模型存储数据表或者用户自定义数据源表生成API的能力,用户无需具备编码能力,即可快速配置数据接口,实现数据的管理和消费。目前优先支持elasticsearch和mysql数据源。