APM 系列(一):Skywalking 与 Easyearch 集成

概述

SkyWalking 是一个开源的可观测性平台,用于收集、分析、聚合和可视化服务和云原生基础设施的数据。SkyWalking 提供了一种简单的方法,即使在云之间也能保持对分布式系统的清晰视图。它是一个现代的 APM,专门为云原生、基于容器的分布式系统设计。

SkyWalking 涵盖了云原生世界中所有的可观测性需求,包括:

  • Tracing: SkyWalking 原生数据格式,以及 v1 和 v2 格式的 Zipkin 跟踪都得到支持。
  • Metrics: SkyWalking 支持成熟的指标格式,包括原生计量格式、OTEL 指标格式和 Telegraf 格式。SkyWalking 与服务网格平台(通常为 Istio 和 Envoy)集成,将可观测性构建到数据平面或控制平面。此外,SkyWalking 原生代理可以在指标模式下运行,从而显著提升性能。
  • Logging: 包括从磁盘收集或通过网络收集的日志。原生代理可以自动将追踪上下文与日志绑定,或使用 SkyWalking 通过文本内容绑定追踪和日志。
  • Profiling: Profiling 是一种强大的工具,帮助开发者从代码行角度理解应用程序的性能。SkyWalking 提供了内置于原生语言代理和独立的 eBPF 代理的剖析功能。
  • Event: 事件是一种特殊类型的数据,用于记录系统中的重要时刻,例如版本升级、配置变更等。将事件与指标关联有助于解释指标中的峰值或谷值,将事件与追踪和日志关联有助于排查根本原因。

更详细的信息请大家移步 Skywalking 官方网站。

需求

本篇使用的 Skywalking 版本是 10.2.0 ,需要 Java 11/17/21。

Easyearch 使用的版本是 1.14.1,需要开启 Elastic 兼容模式,具体操作参考文档

生成 Java 密钥库文件

使用如下命令将 Easysearch 的 CA 证书(ca.crt)导入到一个新的 Java 密钥库文件(es_keystore.jks)中,以便 SkyWalking 能够信任由该 CA 颁发的所有证书。生产环境中使用请替换命令中的密码。

复制代码
keytool -import -v -trustcacerts -file ca.crt -keystore es_keystore.jks -keypass changeit -storepass changeit

application.yml

SkyWalking 后端服务配置文件为 config/application.yml,这也是与 Easyearch 集成时需要修改的文件。Skywalking 与 Easyearch 集成有两种通信方式:http 或 https。http 方式非常简单,本篇采用 https 方式,这也是 Easysearch 初始化后默认对外服务的协议。

拷贝上面生成的密钥库文件到 Skywalking 的 home 目录下,修改 application.yml 的 storage 部分

复制代码
storage:
  selector: ${SW_STORAGE:elasticsearch}
  banyandb: 
    # Since 10.2.0, the banyandb configuration is separated to an independent configuration file: `bydb.yaml`.
  elasticsearch:
    namespace: ${SW_NAMESPACE:""}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:es1.infini.cloud:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"https"}
    connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000}
    socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
    responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000}
    numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}
    user: ${SW_ES_USER:"admin"}
    password: ${SW_ES_PASSWORD:"infiniyyds@2025"}
    trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}
    trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:"changeit"}

注意 clusterNodes 配置的是域名,需要在 Skywalking 的主机上用 /etc/hosts 解析成具体的地址,如果有多个 Easysearch 节点,可以用逗号分隔。

启动

确保 Easysearch 启动完毕后,再启动 Skywalking。正常启动完成后,可访问 Skywalking 前端服务,默认端口 8080。

Easysearch 中也创建很多 Skywalking 的索引。

OK,服务集成就到此完毕,后续我们将演示应用的 APM 内容。

相关推荐
无忧智库25 分钟前
某市“十五五“知识产权大数据监管平台与全链条保护系统建设方案深度解读(WORD)
大数据·人工智能
综合热讯29 分钟前
股票融资融券交易时间限制一览与制度说明
大数据·人工智能·区块链
华农DrLai31 分钟前
Spark SQL Catalyst 优化器详解
大数据·hive·sql·flink·spark
Pluchon36 分钟前
硅基计划4.0 算法 简单模拟实现位图&布隆过滤器
java·大数据·开发语言·数据结构·算法·哈希算法
岁岁种桃花儿41 分钟前
Flink从入门到上天系列第一篇:搭建第一个Flink程序
大数据·linux·flink·数据同步
历程里程碑43 分钟前
普通数组-----除了自身以外数组的乘积
大数据·javascript·python·算法·elasticsearch·搜索引擎·flask
无忧智库1 小时前
某市“十五五”智慧教育2.0建设方案深度解读:从数字化转型到数智化融合的跨越之路(WORD)
大数据
eyun_185001 小时前
把健康小屋搬进单位 让职工暖心 让履职安心
大数据·人工智能·经验分享
会飞的老朱5 小时前
医药集团数智化转型,智能综合管理平台激活集团管理新效能
大数据·人工智能·oa协同办公
AI_56789 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws