序言

企业应用系统发展越来越庞大,依赖越来越多的产品组件,集成越来越多系统, 整体应用系统的性能取决于”木桶短板“,为了捕捉系统的短板问题,更好的持续优化,需要一套完备的”可观测性“系统,为系统架构师们或者决策者们提供数据库支持。

可观测性

什么是可观测性呢?简单来说,就是日志、指标、链路追踪的整套监控体系。

6f2fb65894a63fb93e092b0fec822521.png 图示:可观测性示意图

应用系统运行会产生很多运行日志,包括中间件日志、框架日志、业务日志等,日志需要集中化的平台,便于回溯系统的问题,如java领域log4j2日志框架。

应用系统运行也需要实时记录指标,包括内存、cpu、网络io、磁盘io、线程io等多种实时指标,便于观察业务需求与应用系统的性能问题,如java领域micrometer框架。

微服务时代,纯粹的单体程序已经很少,服务之间依赖众多,链路调用复杂,无论是企业内部系统集成还是外部三方服务依赖,都越来越多,也很复杂,需要功能强大且性能消耗低的链路追踪框架产品,如spring cloud体系zipkin框架。

可观测性产品简单比对

可观测性领域,功能特性完备的产品有很多,萝卜白菜,各有所长。

有来自韩国开源产品 pinpoint,可视化图非常漂亮,但其基于hbase的存储设计,部署运维复杂度较高,对于小规模企业并没有那么容易上手。

有经典开源的Elastic Stack产品体系 ,功能完备,日志、指标、链路追踪全部都有,可模块化集成,但其面向全球性的界面设计,对于中文开发者,体验有点别扭。

有来自国内著名的开源产品skywalking,以APM为核心,专注于应用程序链路追踪,扩展了周边很多特性、产品可视化对中文开发者友好,但其后端数据存储依赖三方数据库,如Elasticsearch;目前市面上很多收费的企业级可观测产品多数都是围绕elasticsearch展开。

skywalking 与elasticsearch 融合

skywalking支持多种数据库存储,基于个人经验评估,最佳的依然是Elasticsearch,目前支持es6/es7/es8等多种版本。

d2312f5278afb81c6f1eab609811cd97.png 图示:来自skywalking官方

skywalking在融合elasticsearch方面,做了很多优化性的配置,但在笔者看来,这些都是一些一般性的设计,并没有很好的融合elasticsearch最新的特性与特点。

eedf45be96e5792377b6e64026b1bbd8.png 图示:来自dbaplus社区分享

大家都知道 elasticsearch版本发布非常快,功能特性迭代也非常快,如最新es8.5推出了时序索引,官方性能压测同比过去存储节约近50%,结合官方的datastream特性,可以让skywalking在很多方面设计配置可以更加简化。

skywalking 案例实践

skywalking与elasticsearch融合,快速实践非常简单,分为以下三个步骤:

1. elasticsearch 启动

选择 elasticsearch 8.5.x 版本,默认启动会自动配置安全策略,支持ssl+https

09d13243dcae9f1e8f30b9af787a314f.png 图示:es首次启动会自动生成安全配置信息 d6e18f79d47521ce1e210e08281141ce.png 图示:es首次启动会生成超级用户与密码

2. skywaling 启动

选择skywalking 9.2.x版本,数据存储配置指向 elasticserch,配置基本的用户名与密码

09748bf6d6fe28258d6bfe38e8e598f1.png 图示:skywalking 数据存储配置

3. java 应用集成

选择skywalking-java 8.13.x版本,采用javaageng方式集成,数据采集配置指向skywalking后端

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar
63551f8907aeefc3724726cfd431881a.png 图示:agent.config配置skywalking采集地址

4. 案例示意图

6263be9e42cb3d4d3798822490b96597.png 图示:skywalking在elasticsearch创建的索引 9e34a30b900a3fd9b8c6c1efaa5e14e7.png 图示:skywalking展示的服务调用链路

课程直播

以上内容简单的介绍了可观测性领域的技术产品与选择,实际skywalking与elasticsearch数据平台融合远不止于此,为此,我们准备了一次免费的实战直播课,您将获得对于Elasticsearch以及Elastic Stack 更多的认知:

  • 1、全新认识elasticsearch +skywalking 最佳组合实践

  • 2、动态体验最新 elasticsearch 8.5.x 安装与部署

  • 3、动手体验skywalking 实时监控 java应用程序运行状态

  • 4、全新认识 Elastic Stack技术栈有哪些?如何掌握与组合应用?

  • 5、全新认识 Elastic Stack 8.5.x 应用场景?对于ES的认识还是停留在全文检索阶段是否正确?

199385ff3ec8ee6a5d026c0cb19da50f.png

2f06315594e5041e58beb91d875f209d.jpeg

扫码立即报名:咕泡科技颖子老师

参考文献

skywalking 官方参考

  • skywalking 部署配置官方参考

https://skywalking.apache.org/docs/main/v9.2.0/readme/

skywalking-java-agent

  • skywalking-java agent 应用集成官方参考

https://skywalking.apache.org/docs/skywalking-java/v8.13.0/en/setup/service-agent/java-agent/readme/

elasticsearch 8.5.x 最新特性

  • elasticsearch 8.5.x 最新特性之时序数据

https://www.elastic.co/guide/en/elasticsearch/reference/8.5/release-highlights.html

关于我们

讲师:李猛 (Elastic King 数据领域专家)

  • Elastic Stack 国内顶尖实战专家

  • ELastic Stack 技术社区分享嘉宾

  • 国内首批Elastic 官方认证工程师21人之一

  • 阿里云MVP(大数据领域)

  • DBAPlus MVP(原创内容贡献者)

  • GitHub:https://github.com/ynuosoft

  • 咕泡科技 《Elastic (ELK) Stack 架构师成长路径》主讲老师。

  • 2012年接触Elasticsearch,对Elastic Stack 技术栈开发、架构、运维、源码、算法等方面都有深入实战。

  • 负责过多种 Elastic Stack 实战应用项目,大数据分析领域、机器学习预测领域、业务查询加速领域、日志平台分析领域、基础指标监控领域、全文分词检索领域等。

  • 服务过多家企业、提供Elastic Stack 咨询培训以及调优实施。

  • 多次在 Elastic Stack 技术社区分享,发表过多篇实战干货案例文章。

  • 十五年IT技术实战从业经验,涉猎行业众多、电商、物流、传统企业等,擅长大数据、系统架构等领域。

Logo

开源、云原生的融合云平台

更多推荐