1. SkyWalking简介与版本说明
SkyWalking是Apache开源的APM(应用性能监控)系统,提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。SkyWalking支持Java、.NET、Node.js、Go等多种语言的应用监控。更多学习教程www.fgedu.net.cn
SkyWalking最新版本:
SkyWalking 10.2.0(2026年3月发布)- 最新稳定版
SkyWalking 10.1.0(2026年2月发布)- 稳定版
SkyWalking 10.0.1(2026年1月发布)- 稳定版
SkyWalking 9.7.0(2025年12月发布)- LTS长期支持版
SkyWalking核心组件:
SkyWalking OAP Server:后端分析平台,负责数据接收和处理
SkyWalking UI:Web可视化界面
SkyWalking Agent:应用探针,负责数据采集
SkyWalking CLI:命令行管理工具
2. SkyWalking下载地址
SkyWalking支持多种部署方式,可以从官方发布页面获取。学习交流加群风哥微信: itpux-com
官方下载地址:
SkyWalking官方网站:https://skywalking.apache.org/
SkyWalking下载页面:https://skywalking.apache.org/downloads/
SkyWalking GitHub发布页面:https://github.com/apache/skywalking/releases
$ curl -s “https://api.github.com/repos/apache/skywalking/releases/latest” | grep -E ‘”tag_name”|”name”|”published_at”‘
输出示例如下:
“tag_name”: “v10.2.0”,
“name”: “Apache SkyWalking 10.2.0”,
“published_at”: “2026-03-15T10:00:00Z”,
# 查看所有可用版本
$ curl -s “https://api.github.com/repos/apache/skywalking/releases” | grep ‘”tag_name”‘ | head -10
输出示例如下:
“tag_name”: “v10.2.0”,
“tag_tag”: “v10.1.0”,
“tag_name”: “v10.0.1”,
“tag_name”: “v9.7.0”,
各组件下载链接:
SkyWalking APM包:https://archive.apache.org/dist/skywalking/10.2.0/apache-skywalking-apm-10.2.0.tar.gz
Java Agent:https://archive.apache.org/dist/skywalking/java-agent/9.3.0/apache-skywalking-java-agent-9.3.0.tgz
Node.js Agent:npm install skywalking-backend-js
Docker镜像:docker pull apache/skywalking-oap-server:10.2.0
3. SkyWalking OAP Server安装
SkyWalking OAP Server是后端分析平台,负责接收和处理监控数据。风哥提示:生产环境建议使用集群模式部署,确保高可用。
步骤1:下载并解压SkyWalking
# cd /fgedudb
# wget https://archive.apache.org/dist/skywalking/10.2.0/apache-skywalking-apm-10.2.0.tar.gz
输出示例如下:
–2026-04-04 10:00:00– https://archive.apache.org/dist/skywalking/10.2.0/apache-skywalking-apm-10.2.0.tar.gz
Resolving archive.apache.org… 163.172.17.199
Connecting to archive.apache.org|163.172.17.199|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 250000000 (238M) [application/x-gzip]
Saving to: ‘apache-skywalking-apm-10.2.0.tar.gz’
apache-skywalking-apm-10.2.0.tar.gz 100%[================================================================================>] 238.42M 15.2MB/s in 16s
2026-04-04 10:00:16 (15.2 MB/s) – ‘apache-skywalking-apm-10.2.0.tar.gz’ saved [250000000/250000000]
# 解压文件
# tar -xzf apache-skywalking-apm-10.2.0.tar.gz
# mv apache-skywalking-apm-bin skywalking
# 查看目录结构
# ls -la skywalking/
输出示例如下:
total 0
drwxr-xr-x 8 root root 128 Apr 4 10:00 .
drwxr-xr-x 3 root root 26 Apr 4 10:00 ..
drwxr-xr-x 2 root root 48 Apr 4 10:00 bin
drwxr-xr-x 2 root root 48 Apr 4 10:00 config
drwxr-xr-x 2 root root 48 Apr 4 10:00 licenses
drwxr-xr-x 2 root root 48 Apr 4 10:00 oap-libs
drwxr-xr-x 2 root root 48 Apr 4 10:00 webapp
步骤2:配置OAP Server
# vi /fgedudb/skywalking/config/application.yml
# 配置存储(默认H2,生产环境建议使用MySQL或Elasticsearch)
storage:
selector: ${SW_STORAGE:h2}
h2:
driver: org.h2.Driver
url: jdbc:h2:mem:skywalking-oap-db;DB_CLOSE_DELAY=-1
user: sa
mysql:
properties:
jdbcUrl: ${SW_JDBC_URL:”jdbc:mysql://192.168.1.51:3306/skywalking?rewriteBatchedStatements=true”}
dataSource.user: ${SW_DATA_SOURCE_USER:root}
dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root}
# 配置gRPC端口
core:
default:
gRPCSslEnabled: false
gRPCPort: ${SW_CORE_GRPC_PORT:11800}
restPort: ${SW_CORE_REST_PORT:12800}
restHost: ${SW_CORE_REST_HOST:0.0.0.0}
# 配置数据接收端口
receiver-sharing-server:
default:
gRPCPort: ${SW_RECEIVER_GRPC_PORT:0}
# 创建MySQL数据库
# mysql -uroot -p
mysql> CREATE DATABASE skywalking CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> CREATE USER ‘skywalking’@’%’ IDENTIFIED BY ‘Skywalking@2026’;
mysql> GRANT ALL PRIVILEGES ON skywalking.* TO ‘skywalking’@’%’;
mysql> FLUSH PRIVILEGES;
步骤3:启动OAP Server
# /fgedudb/skywalking/bin/oapService.sh start
输出示例如下:
SkyWalking OAP started successfully, pid is 12345!
# 查看启动日志
# tail -f /fgedudb/skywalking/logs/skywalking-oap-server.log
输出示例如下:
2026-04-04 10:00:00,000 main [org.apache.skywalking.oap.server.starter.OAPServerBootstrap] [] – Apache SkyWalking OAP Server started successfully!
2026-04-04 10:00:00,000 main [org.apache.skywalking.oap.server.core.CoreModuleProvider] [] – Server running, host: 0.0.0.0, port: 11800
# 验证服务状态
# curl http://localhost:12800/healthcheck
输出示例如下:
{“status”:”UP”}
# 查看进程
# ps aux | grep skywalking
输出示例如下:
root 12345 2.5 15.6 8523456 1234567 ? Sl 10:00 0:15 /usr/bin/java -jar oap-libs/oap-server.jar
4. SkyWalking UI安装配置
SkyWalking UI提供Web可视化界面,用于查看监控数据和链路追踪。学习交流加群风哥QQ113257174
步骤1:配置UI
# vi /fgedudb/skywalking/webapp/webapp.yml
server:
port: 8080
spring:
cloud:
gateway:
routes:
– id: oap-route
uri: lb://oap-service
predicates:
– Path=/graphql/**
discovery:
client:
simple:
instances:
oap-service:
– uri: http://192.168.1.51:12800
# 启动UI服务
# /fgedudb/skywalking/bin/webappService.sh start
输出示例如下:
SkyWalking Web Application started successfully, pid is 12346!
# 查看UI日志
# tail -f /fgedudb/skywalking/logs/webapp.log
输出示例如下:
2026-04-04 10:00:00,000 main [org.apache.skywalking.oap.server.starter.OAPServerBootstrap] [] – SkyWalking Web Application started on port(s): 8080
# 访问Web界面
# http://192.168.1.51:8080
步骤2:创建Systemd服务
# cat > /etc/systemd/system/skywalking-oap.service << 'EOF' [Unit] Description=Apache SkyWalking OAP Server After=network.target [Service] Type=forking ExecStart=/fgedudb/skywalking/bin/oapService.sh start ExecStop=/fgedudb/skywalking/bin/oapService.sh stop Restart=on-failure RestartSec=5 User=root [Install] WantedBy=multi-user.target EOF # 创建UI服务文件 # cat > /etc/systemd/system/skywalking-ui.service << 'EOF' [Unit] Description=Apache SkyWalking Web UI After=network.target skywalking-oap.service [Service] Type=forking ExecStart=/fgedudb/skywalking/bin/webappService.sh start ExecStop=/fgedudb/skywalking/bin/webappService.sh stop Restart=on-failure RestartSec=5 User=root [Install] WantedBy=multi-user.target EOF # 启动服务 # systemctl daemon-reload # systemctl start skywalking-oap skywalking-ui # systemctl enable skywalking-oap skywalking-ui 输出示例如下: Created symlink /etc/systemd/system/multi-user.target.wants/skywalking-oap.service → /etc/systemd/system/skywalking-oap.service. Created symlink /etc/systemd/system/multi-user.target.wants/skywalking-ui.service → /etc/systemd/system/skywalking-ui.service. # 查看服务状态 # systemctl status skywalking-oap skywalking-ui 输出示例如下: ● skywalking-oap.service - Apache SkyWalking OAP Server Loaded: loaded (/etc/systemd/system/skywalking-oap.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2026-04-04 10:00:00 CST; 10s ago ● skywalking-ui.service - Apache SkyWalking Web UI Loaded: loaded (/etc/systemd/system/skywalking-ui.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2026-04-04 10:00:00 CST; 10s ago
5. SkyWalking Agent配置实战
SkyWalking Agent是应用探针,负责采集监控数据并发送到OAP Server。更多学习教程公众号风哥教程itpux_com
步骤1:下载Java Agent
# cd /fgedudb
# wget https://archive.apache.org/dist/skywalking/java-agent/9.3.0/apache-skywalking-java-agent-9.3.0.tgz
输出示例如下:
–2026-04-04 10:00:00– https://archive.apache.org/dist/skywalking/java-agent/9.3.0/apache-skywalking-java-agent-9.3.0.tgz
Resolving archive.apache.org… 163.172.17.199
Connecting to archive.apache.org|163.172.17.199|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 50000000 (47M) [application/x-gzip]
Saving to: ‘apache-skywalking-java-agent-9.3.0.tgz’
apache-skywalking-java-agent-9.3.0.tgz 100%[================================================================================>] 47.68M 12.5MB/s in 4s
# 解压文件
# tar -xzf apache-skywalking-java-agent-9.3.0.tgz
# mv skywalking-agent skywalking-java-agent
# 查看Agent目录
# ls -la skywalking-java-agent/
输出示例如下:
total 16
drwxr-xr-x 5 root root 85 Apr 4 10:00 .
drwxr-xr-x 3 root root 26 Apr 4 10:00 ..
drwxr-xr-x 2 root root 4096 Apr 4 10:00 activations
drwxr-xr-x 2 root root 4096 Apr 4 10:00 config
drwxr-xr-x 2 root root 4096 Apr 4 10:00 plugins
-rw-r–r– 1 root root 1523 Apr 4 10:00 skywalking-agent.jar
步骤2:配置Java Agent
# vi /fgedudb/skywalking-java-agent/config/agent.config
# 配置OAP Server地址
agent.service_name=${SW_AGENT_NAME:fgedu-app}
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.1.51:11800}
# 配置采样率
agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:3}
# 配置日志级别
logging.level=${SW_LOGGING_LEVEL:INFO}
# 配置忽略路径
agent.ignore_suffix=${SW_IGNORE_SUFFIX:.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg}
# 配置SQL参数收集
plugin.jdbc.trace_sql_parameters=${SW_JDBC_TRACE_SQL_PARAMETERS:false}
步骤3:应用接入Agent
$ java -javaagent:/fgedudb/skywalking-java-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=fgedu-app \
-Dskywalking.collector.backend_service=192.168.1.51:11800 \
-jar fgedu-app.jar
输出示例如下:
[skywalking-agent] INFO AgentClassLoader – Load agent.jar from /fgedudb/skywalking-java-agent/skywalking-agent.jar
[skywalking-agent] INFO SnifferConfigInitializer – Agent service name: fgedu-app
[skywalking-agent] INFO SnifferConfigInitializer – Backend service: 192.168.1.51:11800
[skywalking-agent] INFO ServiceManager – Service [org.apache.skywalking.apm.agent.core.remote.GRPCChannelManager] is running.
[skywalking-agent] INFO ServiceManager – Service [org.apache.skywalking.apm.agent.core.context.ContextManager] is running.
# 方式2:环境变量方式
$ export SW_AGENT_NAME=fgedu-app
$ export SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.1.51:11800
$ java -javaagent:/fgedudb/skywalking-java-agent/skywalking-agent.jar -jar fgedu-app.jar
# 方式3:Tomcat应用接入
# vi /fgedudb/tomcat/bin/catalina.sh
CATALINA_OPTS=”$CATALINA_OPTS -javaagent:/fgedudb/skywalking-java-agent/skywalking-agent.jar”
CATALINA_OPTS=”$CATALINA_OPTS -Dskywalking.agent.service_name=fgedu-web”
CATALINA_OPTS=”$CATALINA_OPTS -Dskywalking.collector.backend_service=192.168.1.51:11800″
export CATALINA_OPTS
6. SkyWalking生产环境配置
生产环境需要对SkyWalking进行优化配置,确保稳定性和性能。from:www.itpux.com
步骤1:配置Elasticsearch存储
# vi /fgedudb/skywalking/config/application.yml
storage:
selector: ${SW_STORAGE:elasticsearch}
elasticsearch:
nameSpace: ${SW_NAMESPACE:”skywalking”}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.1.51:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:”http”}
user: ${SW_ES_USER:”elastic”}
password: ${SW_ES_PASSWORD:”Elastic@2026″}
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:1}
superDatasetIndexShardsFactor: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR:3}
bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:5000}
bulkSize: ${SW_STORAGE_ES_BULK_SIZE:50}
flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:30}
concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2}
# 重启OAP Server
# systemctl restart skywalking-oap
步骤2:配置高可用集群
# vi /fgedudb/skywalking/config/application.yml
cluster:
selector: ${SW_CLUSTER:zookeeper}
zookeeper:
nameSpace: ${SW_CLUSTER_ZK_NAMESPACE:skywalking}
hostPort: ${SW_CLUSTER_ZK_HOST_PORT:192.168.1.51:2181,192.168.1.52:2181,192.168.1.53:2181}
baseSleepTimeMs: ${SW_CLUSTER_ZK_BASE_SLEEP_TIME_MS:1000}
maxRetries: ${SW_CLUSTER_ZK_MAX_RETRIES:3}
internalComHost: ${SW_CLUSTER_INTERNAL_COM_HOST:””}
internalComPort: ${SW_CLUSTER_INTERNAL_COM_PORT:-1}
# 配置多节点接收
receiver-sharing-server:
default:
gRPCPort: ${SW_RECEIVER_GRPC_PORT:11800}
maxConcurrentCallsPerConnection: ${SW_RECEIVER_MAX_CONCURRENT_CALLS:5000}
maxMessageSize: ${SW_RECEIVER_MAX_MESSAGE_SIZE:100000000}
# 在多个节点部署OAP Server
# 节点1
# export SW_CORE_GRPC_PORT=11800
# export SW_CORE_REST_PORT=12800
# /fgedudb/skywalking/bin/oapService.sh start
# 节点2
# export SW_CORE_GRPC_PORT=11801
# export SW_CORE_REST_PORT=12801
# /fgedudb/skywalking/bin/oapService.sh start
步骤3:配置告警
# vi /fgedudb/skywalking/config/alarm-settings.yml
rules:
# 服务响应时间告警
service_resp_time_rule:
metrics-name: service_resp_time
op: “>”
threshold: 1000
period: 10
silence-period: 5
message: “服务 {name} 响应时间超过1000ms”
# 服务成功率告警
service_sla_rule:
metrics-name: service_sla
op: “<"
threshold: 9500
period: 10
silence-period: 5
message: "服务 {name} 成功率低于95%"
# 服务实例响应时间告警
service_instance_resp_time_rule:
metrics-name: service_instance_resp_time
op: ">”
threshold: 1000
period: 10
silence-period: 5
message: “服务实例 {name} 响应时间超过1000ms”
# 配置告警通知
webhooks:
– http://192.168.1.51:8080/alarm/webhook
dingtalks:
– name: dingtalk
url: https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN
secret: YOUR_SECRET
# 重启OAP Server
# systemctl restart skywalking-oap
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
