skywalking原理_微服务链路追踪系统 SkyWalking

Apache SkyWalking是一款低侵入性的APM系统,适用于微服务监控,支持Dubbo/Spring框架和Kubernetes。它提供分布式追踪、应用性能指标、应用拓扑、慢服务检测等功能。SkyWalking架构包括Probes、Platform backend、UI和Storage组件,存储可与ES集成。部署SkyWalking需要先部署ES,然后安装Collector和Agent,通过SkyWalking UI观察应用性能。
摘要由CSDN通过智能技术生成

随着现在微服务化的推进,很多的业务都使用Dubbo/Spring框架,使用Kubernetes进行业务部署,如何方便的进行业务监控呢?Application Performance Management(APM)是针对微服务化应用监控的整体解决方案。

SkyWalking

Apache SkyWalking[1]在应用的侵入性以及性能损失都相对比较少,架构也相对较简单,支持多种后端存储(推荐ES),对K8S和服务网格也提供支持,APM选型可参考:APM 原理与框架选型[2]

SkyWalking提供的功能:

  • 分布式追踪和上下文传输
  • 应用、实例、服务性能指标,以及JVM的监控
  • 应用拓扑
  • 慢服务检测和告警
  • 服务依赖跟踪
  • 性能分析和优化

SkyWalking架构:由Probes、Platform backend、UI、Storage等组件组成,Platform backend进行数据的收集、聚合处理和存储,UI提供展示功能。6c3962454c67bc443e2459cc113b9426.png

部署SkyWalking

先需要部署ES作为存储,然后部署Collector(可以使用容器化)。如启动单个节点的ES7:

# 配置
node.name: node-14
network.host: 0.0.0.0
node.master: true
discovery.zen.minimum_master_nodes: 1
cluster.initial_master_nodes: ["node-14"]

SkyWalking的主配置文件application.yml,存储使用ES 7.0版本时需要配置selector为:elasticsearch7

storage:
  selector: ${SW_STORAGE:elasticsearch7}

部署测试应用

每个Java应用需要安装Skywalking Agent,使用javaagent加载Agent的jar包。华为云提供了一个商场的测试DEMO[3]可以玩玩。

# 下载DEMO包
curl -l http://demos.obs.cn-north-1.myhwclouds.com/demo_01.tar > demo_01.tar
curl -l http://demos.obs.cn-north-1.myhwclouds.com/demo_02.tar > demo_02.tar
curl -l http://demos.obs.cn-north-1.myhwclouds.com/demo_03.tar > demo_03.tar
curl -l http://demos.obs.cn-north-1.myhwclouds.com/demo_04.tar > demo_04.tar
tar -xvf /root/testdemo/demo_01.tar -C ./
tar -xvf /root/testdemo/demo_02.tar -C ./
tar -xvf /root/testdemo/demo_03.tar -C ./
tar -xvf /root/testdemo/demo_04.tar -C ./

# DUMP基础数据
# 使用解压application_dao.yml配置文件中的数据库用户名和密码、地址进行数据库dump
mysqldump -h xx -u apm -p shoppingmalldb>shoppingmalldb.sql

# 导入本地MySQL数据库,修改application_dao.yml配置文件的MySQL部分
mysql -e "create database shoppingmalldb;"
mysql shoppingmalldb -e "source shoppingmalldb.sql"

# 修改start_apminside.sh启动脚本
#export PATH=/root/testdemo/jdk1.8.0_111/bin:$PATH
java -javaagent:./skywalking-agent.jar -DSW_AGENT_NAME=vmall-dao-service -Xmx512m -jar /root/testdemo/ecommerce-persistence-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_dao.yml > dao.log 2>&1 &
java -javaagent:./skywalking-agent.jar -DSW_AGENT_NAME=vmall-apigw-service -Xmx512m -jar /root/testdemo/ecommerce-api-gateway-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_api.yml > api.log 2>&1 &
java -javaagent:./skywalking-agent.jar -DSW_AGENT_NAME=vmall-user-service -Xmx512m -jar /root/testdemo/ecommerce-user-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_userservice.yml > user.log 2>&1 &
java -javaagent:./skywalking-agent.jar -DSW_AGENT_NAME=vmall-product-service -Xmx512m -jar /root/testdemo/ecommerce-product-service-0.0.1-SNAPSHOT.jar --spring.config.location=file:/root/testdemo/application_prod.yml > prod.log 2>&1 &
java -Xmx512m -jar /root/testdemo/cloud-simple-ui-1.0.0.jar --spring.config.location=file:/root/testdemo/ui.properties > ui.log 2>&1 &

然后使用部署机器的IP:80就可以访问DEMO的应用了,进行访问后,可以看到在SkyWalking也产生了追踪日志。DEMO应用:f2d7ee14b4aa35e89c9ade7cc4b627db.png

SkyWalking的追踪日志:ad9e6baba1f8a7f004ce230d4264fea0.png

如拓扑图:960874c8ce7bf8268d3da97d656556c2.png

参考资料

[1]

Apache SkyWalking: http://skywalking.apache.org/docs/

[2]

APM 原理与框架选型: https://www.cnblogs.com/xiaoqi/p/apm.html

[3]

Demo应用接入APM: https://support.huaweicloud.com/qs-apm/apm_00_0001.html

fd7d5cf156990cac3679ec0dc95d30ab.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值