Docker 安装 Skywalking以及UI界面
花伤情犹在 2024-07-04 11:07:06 阅读 98
关于Skywalking
在现代分布式系统架构中,应用性能监控(<code>Application Performance Monitoring, APM
)扮演着至关重要的角色。本文将聚焦于一款备受瞩目的开源APM
工具——Apache Skywalking
,通过对其功能特性和工作原理的详细介绍,帮助读者理解Skywalking
如何实现对复杂分布式系统的全方位性能监控与故障诊断。
Skywalking
作为一款动态追踪、应用性能管理与可观测性解决方案,能够实时收集并分析微服务架构中的各类性能指标,如服务调用链路追踪、系统资源消耗、数据库查询性能等。其强大之处在于能跨越多语言环境,无缝接入Java
、.NET Core
、Node.js
、Go
等多种开发平台的应用,并支持Kubernetes
、Service Mesh
等云原生环境的深度集成。
此外,Skywalking
还提供了丰富的可视化界面和告警机制,助力运维人员快速定位问题根源,有效提升系统的稳定性和可靠性,为企业的IT
运维和DevOps
实践提供有力支撑。
安装 Skywalking以及UI界面
安装<code>Skywalking可以采用H2
存储数据或者ElasticSearch
存储,我们这里采用ElasticSearch
存储,采用OAP
处理数据,并基于Skywalking UI
展示数据,所以安装的服务有多个:
安装ElasticSearch7安装Skywalking-OAP安装Skywalking UI
1.Skywalking OAP安装
采用Docker安装Skywalking-OAP需要注意版本选择,我们这里选择8.6.0-es7版本,主要因为我们的ElasticSearch版本是7.x
docker pull apache/skywalking-oap-server:8.6.0-es7
启动Skywalking OAP容器
docker run \
--name skywalking-oap \
--restart always \
-p 11800:11800 \
-p 12800:12800 -d \
--privileged=true \
-e TZ=Asia/Shanghai \
-e SW_STORAGE=elasticsearch7 \
-e SW_STORAGE_ES_CLUSTER_NODES=172.17.0.1:9200 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-oap-server:8.6.0-es7
说明:
-e SW_STORAGE=elasticsearch7
:存储服务采用ElasticSearch7-e SW_STORAGE_ES_CLUSTER_NODES=172.17.0.0.1:9200
:存储服务路径(IP+Port)
2.Skywalking UI安装
Skywalking UI是对Skywalking收集到的数据进行分析展示的控制台服务,所以需要指定Skywalking OAP服务地址
docker pull apache/skywalking-ui:8.6.0
启动镜像
docker run \
--name skywalking-ui \
--restart always \
-p 8091:8080 -d \
--privileged=true \
--link skywalking-oap:skywalking-oap \
-e TZ=Asia/Shanghai \
-e SW_OAP_ADDRESS=172.17.0.1:12800 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-ui:8.6.0
说明:
-p 8091:8080:Skywalking UI映射端口为8091
-e SW_OAP_ADDRESS=192.168.1.2:12800:指定Skywalking OAP服务地址
访问:http://127.0.0.1:8091
至此docker部署skywalking就完成啦
3.Agent 探针下载
Agent 探针下载
下载地址: https://skywalking.apache.org/downloads/
注意这里下载的版本要和后续的maven依赖版本保持一致
这里我们下载的是8.16.0
<code><!-- skywalking 整合 logback -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.16.0</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.16.0</version>
</dependency>
4.增加 logback.xml 配置
<code><!-- skywalking 采集日志 -->
<appender name="sky_log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">code>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">code>
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">code>
<pattern>[%tid] ${console.log.pattern}</pattern>
</layout>
<charset>utf-8</charset>
</encoder>
</appender>
<root level="info">code>
<appender-ref ref="sky_log"/>code>
</root>
5.整合 SpringBoot
整合链路分析
在idea
对应的springboot
启动方法内增加jvm
参数
示例:
<code>-javaagent:D:\sky\skywalking-agent.jar
-Dskywalking.agent.service_name=study_logback
-Dskywalking.collector.backend_service=127.0.0.1:11800
该命令行参数用于配置Java应用以接入Apache Skywalking APM
系统:
-javaagent:D:\sky\skywalking-agent.jar
:指定Skywalking
代理(Java探针)的路径,它负责收集应用程序的性能指标和调用链路数据。-Dskywalking.agent.service_name=study_logback
:设置当前Java
应用在Skywalking
中的服务名称为“study_logback”,便于在监控界面中识别和区分不同服务。-Dskywalking.collector.backend_service=127.0.0.1:11800
:配置Skywalking后端Collector服务地址和端口,该Java应用通过此地址将收集到的数据上报至Skywalking OAP Server
进行分析和存储。这里设置的是本地回环地址(localhost
),端口号为11800
。
启动测试
可以看到启动的时候加载了探针插件
这里给接口写了一个小<code>demo
定义一个test
接口test
接口内部再请求第三方接口
使用<code>Skywalking查看链路
也可以看<code>Skywalking的拓扑图
教程结束!
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。