当前位置: 首页 > article >正文

Docker 安装 Skywalking以及UI界面

关于Skywalking

在现代分布式系统架构中,应用性能监控(Application Performance Monitoring, APM)扮演着至关重要的角色。本文将聚焦于一款备受瞩目的开源APM工具——Apache Skywalking,通过对其功能特性和工作原理的详细介绍,帮助读者理解Skywalking如何实现对复杂分布式系统的全方位性能监控与故障诊断。
Skywalking作为一款动态追踪、应用性能管理与可观测性解决方案,能够实时收集并分析微服务架构中的各类性能指标,如服务调用链路追踪、系统资源消耗、数据库查询性能等。其强大之处在于能跨越多语言环境,无缝接入Java、.NET CoreNode.jsGo等多种开发平台的应用,并支持KubernetesService Mesh等云原生环境的深度集成。
此外,Skywalking还提供了丰富的可视化界面和告警机制,助力运维人员快速定位问题根源,有效提升系统的稳定性和可靠性,为企业的IT运维和DevOps实践提供有力支撑。


安装 Skywalking以及UI界面

安装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

<!-- 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 配置

<!-- skywalking 采集日志 -->
<appender name="sky_log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
        <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
            <pattern>[%tid] ${console.log.pattern}</pattern>
        </layout>
        <charset>utf-8</charset>
    </encoder>
</appender>

<root level="info">
    <appender-ref ref="sky_log"/>
</root>

5.整合 SpringBoot

整合链路分析
idea对应的springboot启动方法内增加jvm参数

示例:

-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

启动测试

可以看到启动的时候加载了探针插件

这里给接口写了一个小demo

  1. 定义一个test接口
  2. test接口内部再请求第三方接口

    使用Skywalking查看链路

    也可以看Skywalking的拓扑图

教程结束!


http://www.kler.cn/a/272242.html

相关文章:

  • CSS语言的数据类型
  • Keep 实战指南:构建强大的AIOps和告警管理平台
  • 2025寒假备战蓝桥杯01---朴素二分查找的学习
  • 【0x0052】HCI_Write_Extended_Inquiry_Response命令详解
  • 模型部署工具01:Docker || 用Docker打包模型 Build Once Run Anywhere
  • 在Windows/Linux/MacOS C++程序中打印崩溃调用栈和局部变量信息
  • 数据库MySQL
  • 双向链表的实现
  • 小心串行队列的执行依赖
  • Vue2 引入使用ElementUI详解
  • python --阿里云(智能媒体管理/视频点播)
  • CI/CD实战-gitlab代码仓库 2
  • Git入门学习
  • 最后的挣扎 - Qt For Android on HuaWei Mate 60Pro (v4.0.0)
  • 【AI】Ubuntu系统深度学习框架的神经网络图绘制
  • Etcd 介绍与使用(入门篇)
  • shallowReactive浅层式响应对象
  • wireshark解析https数据包
  • 每周一算法:双向深搜
  • Sqlserver 模糊查询中文及在mybatis xml【非中文不匹配查询】N@P2问题
  • 在Ubuntu系统中使用Systemctl添加启动项的详细指南
  • sqlite 常见命令 表结构
  • go rabbitmq 操作
  • 体系结构安全第二次作业:调研整理编译器优化引入的安全问题,形成调研报告提交
  • Docker学习之数据管理(超详解析)
  • 鸿蒙内核系统