SkyWalking是一个开源的可观察性平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。SkyWalking提供了一种简单的方法来维护分布式系统的清晰视图,即使是跨云的。它是一个现代APM,专门为云原生的、基于容器的分布式系统而设计,支持对应用端Tracinig、Metrics、Logging的采集和展示。SkyWalking逻辑上分为四个部分:探测器、平台后端、存储和UI,下文中的Skywalking服务端安装主要包括了平台后端、存储(默认内存数据库H2)、UI,探测器则简要介绍了Java Agent集成。
进入Skywalking下载页面:https://skywalking.apache.org/downloads/
点击[tar]
下载 apache-skywalking-apm-9.6.0.tar.gz
:
关于安装说明可参见:
https://skywalking.apache.org/docs/main/v9.6.0/en/setup/backend/backend-setup/
注: 需本地安装:JDK 11 至 JDK17 均可
解压apache-skywalking-apm-9.6.0.tar.gz
:
SkyWalking的后端发行包由以下部分组成:
您可以使用bin/startup.bat(或Linux环境sh)
以默认设置启动后端和UI,设置如下:
在Java、DotNetCore、Node.js和Istio代理/探测中,
您应该将gRPC服务地址设置为ip/host:11800,
ip/host应该是您的后端所在的位置。
双击运行bin/startup.bat
:
运行成功后弹出如下两个窗口:
其中:
运行成功后即可访问UI:http://localhost:8080
更多配置可参见:
修改Mysql存储 - https://skywalking.apache.org/docs/main/next/en/setup/backend/backend-setup/#applicationyml
https://skywalking.apache.org/docs/main/next/en/setup/backend/backend-setting-override/
集成Java Agent可参见:
https://skywalking.apache.org/docs/skywalking-java/v9.0.0/en/setup/service-agent/java-agent/readme/
https://skywalking.apache.org/docs/skywalking-java/v9.0.0/en/setup/service-agent/java-agent/setting-override/
https://www.apache.org/dyn/closer.cgi/skywalking/java-agent/9.0.0/apache-skywalking-java-agent-9.0.0.tgz
下载apache-skywalking-java-agent-9.0.0.tgz
:
解压后:
通过Java命令行集成skywalking-agent.jar:
java
# skywalking agent
-javaagent:D:/programs/dev/java/skywalking-agent/skywalking-agent.jar
# 当前服务名
-Dskywalking.agent.service_name=luo-demo::api-sub
# Skywalking后端采集 - gRpc端口
-Dskywalking.collector.backend_service=127.0.0.1:11800
-jar myapp.jar
logback日志集成可参见:
https://skywalking.apache.org/docs/skywalking-java/v9.0.0/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/
https://github.com/apache/skywalking-satellite
maven依赖:
<dependency>
<groupId>org.apache.skywalkinggroupId>
<artifactId>apm-toolkit-logback-1.xartifactId>
<version>9.0.0version>
dependency>
resources/logback-spring.xml:
<configuration scan="true" scanPeriod=" 5 seconds">
<springProfile name="default">
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
pattern>
encoder>
appender>
<root level="INFO">
<appender-ref ref="console"/>
root>
springProfile>
<springProfile name="skywalking">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%nPattern>
layout>
encoder>
appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0discardingThreshold>
<queueSize>1024queueSize>
<neverBlock>trueneverBlock>
<appender-ref ref="STDOUT"/>
appender>
<appender name="grpc-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.mdc.TraceIdMDCPatternLogbackLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%nPattern>
layout>
encoder>
appender>
<root level="INFO">
<appender-ref ref="ASYNC"/>
<appender-ref ref="grpc-log"/>
root>
springProfile>
configuration>
启动对应Java应用后,再次访问Skywalking UI:
http://localhost:8080
可以发现左侧菜单多出了【常规服务->服务】,切换到此【服务】菜单后,右侧即可查看已接入服务的追踪、日志等监控数据。