文章目录
-
-
-
- [一、SkyWalking 产品介绍](#一、SkyWalking 产品介绍)
-
- [SkyWalking 功能一览](#SkyWalking 功能一览)
- [SkyWalking 核心组件](#SkyWalking 核心组件)
- [SkyWalking 界面对比](#SkyWalking 界面对比)
- [SkyWalking 知识入口](#SkyWalking 知识入口)
- [SkyWalking 架构组成](#SkyWalking 架构组成)
- [二、SkyWalking 部署规划](#二、SkyWalking 部署规划)
-
- [SkyWalking 规划图](#SkyWalking 规划图)
- [Nginx 集群节点](#Nginx 集群节点)
- [SkyWalking UI 节点](#SkyWalking UI 节点)
- [SkyWalking OAP 集群节点](#SkyWalking OAP 集群节点)
- [ElasticSearch 集群节点](#ElasticSearch 集群节点)
- [Nacos 集群节点](#Nacos 集群节点)
- [三、SkyWalking 服务部署](#三、SkyWalking 服务部署)
- [四、SkyWalking 界面部署](#四、SkyWalking 界面部署)
- [五、SkyWalking 日志留存](#五、SkyWalking 日志留存)
-
-
一、SkyWalking 产品介绍
SkyWalking 功能一览
Apache SkyWalking 是一个开源、分布式系统可观测的性能分析平台。旨在为云原生、微服务和分布式架构提供完整的监控、追踪和诊断能力。SkyWalking 通过 Agent、SDK 等探针技术采集应用运行过程中的指标(Metrics)、分布式链路追踪数据(Distributed Tracing)、服务性能监控(Application Performance Monitoring(APM))、日志关联分析(Log Correlation)、服务拓扑分析(Service Topology)、以及持续性能分析(Continuous Profiling),并通过 OAP(Observability Analysis Platform) 分析服务进行数据聚合、计算和存储,最终通过 Web UI 提供可视化展示。
SkyWalking 支持多种技术栈和运行环境,包括 Java、.NET、Node.js、Go、Python、Rust 等语言生态,以及 Kubernetes、Service Mesh、云原生微服务等场景,能够帮助开发和运维团队快速发现系统性能瓶颈、分析服务依赖关系、定位故障根因。其核心架构采用 Agent + OAP + UI 的模式,其中 Agent 负责数据采集,OAP 负责数据分析和查询服务,UI 负责可视化展示与运维管理。
SkyWalking 具备高度可扩展能力,支持多种数据存储后端,如:Elasticsearch、BanyanDB、MySQL、PostgreSQL等,支持集群部署、高可用架构以及通过 Nacos、ZooKeeper、Kubernetes、Consul 等实现服务发现和节点管理,是企业构建统一可观测性能平台的重要开源解决方案。
随着 SkyWalking Horizon UI 等新组件的发展,SkyWalking 正逐步从传统的链路追踪分析工具演进为集指标监控、链路追踪、日志分析、告警管理、性能诊断和权限控制于一体的综合性可观测平台。
SkyWalking 核心组件
| 组件名称 | 主要职责 | 功能说明 | 常见部署方式 |
|---|---|---|---|
SkyWalking Agent / SDK |
数据采集 | 部署在业务应用内部,通过字节码增强、SDK 埋点等方式采集应用运行数据并发送给 OAP Server |
Java Agent 直接挂载 JVM 其他语言通过对应 Agent 或 SDK 集成 |
OAP Server(Observability Analysis Platform) |
数据分析与处理核心 | SkyWalking 的核心服务,负责接收 Agent 数据,进行指标计算、拓扑分析、链路聚合、告警规则处理、查询服务等。支持集群部署,通过 Cluster Manager 实现节点发现和通信 |
多节点集群部署,通过 Nacos、Kubernetes、ZooKeeper 等实现服务注册与发现 |
SkyWalking UI / Horizon UI |
可视化展示与运维入口 | 提供 Web 控制台,用于查看服务拓扑、链路追踪、指标趋势、日志、告警、性能分析等。新版 Horizon UI 增加认证、RBAC 权限、运维管理能力 |
独立部署,通过 HTTP 调用 OAP 查询接口 |
Storage(存储层) |
数据持久化 | 保存 SkyWalking 采集和分析后的数据,包括 Trace、Metrics、Logs、Profile、Metadata 等。OAP 通过 Storage API 对接不同存储后端 |
常用 Elasticsearch、BanyanDB、MySQL、PostgreSQL 等 |
Cluster Manager |
OAP 集群管理 |
用于 OAP 节点之间的服务发现和内部通信,维护 OAP 集群成员信息,使多个 OAP 节点能够协同工作 |
Nacos、ZooKeeper、Kubernetes、Consul 等 |
SkyWalking 界面对比
Horizon UI 是 Apache SkyWalking 新一代可观测性 Web 控制台,用于替代传统的 SkyWalking UI。它仍然依赖 SkyWalking OAP Server 作为后端数据和能力中心,但掐录单架构、配置模型、安全模型都有较大变化。
简单理解:
Horizon UI = 新版 SkyWalking 可观测性门户 + 运维管理控制台 + 权限管理入扣
两代 UI 的核心区别
| 项目清单 | 传统 UI(Booster UI) |
Horizon(Next Generation UI) |
|---|---|---|
| 镜像 | apache/Skywalking-ui:10.4.0 |
apache/skywalking-ui:horizon-0.7.0 |
| 架构 | 简单 Web UI |
BFF + Web Console |
| 配置文件 | application.yml |
horizon.yaml |
OAP配置 |
oapServices |
oap.queryUrl |
| 认证 | 基本无独立认证 | 内置认证体系 |
| 权限 | 依赖外围系统 | 内置 RBAC |
| 用户管理 | 无 | Local/LDAP |
| 密码 | 无默认账号 | Argon2 hash |
| 配置热加载 | 有限 | 支持 |
| 运维能力 | 展示为主 | 展示 + 管理 |
注意:由于 Horizon 需要在 OAP 11.x 版本上才得以支持,当前部署手册还是采用传统的 UI 作为示例部署。
SkyWalking 知识入口
| 文档 | 资源 | 软件 |
|---|---|---|
| 官网入口 | 博客入口 | 下载入口 |
| 文档入口 | 源码入口 | 镜像入口 |
SkyWalking 架构组成

二、SkyWalking 部署规划
SkyWalking 规划图

Nginx 集群节点
不提供部署说明,请提前部署
| 节点名称 | 节点地址 | 开放端口 | 节点角色 |
|---|---|---|---|
| nginx-01 | 10.10.217.91 | 80 | Nginx 实例-1 |
| nginx-02 | 10.10.217.92 | 80 | Nginx 实例-2 |
| nginx-03 | 10.10.217.93 | 80 | Nginx 实例-3 |
SkyWalking UI 节点
| 节点名称 | 节点地址 | 开放端口 | 节点角色 |
|---|---|---|---|
| ui-01 | 10.10.217.81 | 18080 | SkyWalking UI 实例-1 |
| ui-02 | 10.10.217.82 | 18080 | SkyWalking UI 实例-2 |
| ui-03 | 10.10.217.83 | 18080 | SkyWalking UI 实例-3 |
SkyWalking OAP 集群节点
| 节点名称 | 节点地址 | 开放端口 | 节点角色 |
|---|---|---|---|
| oap-01 | 10.10.217.84 | 11800、12800 | SkyWalking OAP 实例-1 |
| oap-02 | 10.10.217.85 | 11800、12800 | SkyWalking OAP 实例-2 |
| oap-03 | 10.10.217.86 | 11800、12800 | SkyWalking OAP 实例-3 |
| 端口地址 | 功能详情 |
|---|---|
| 11800 | oap 接收 agent 数据专用端口 |
| 12800 | oap 提供 ui 查询数据专用端口 |
| 17128 | 新一代 horizon-ui Admin API(OAP 11.x 才有此模块) |
| 1234 | OAP 内部调试、健康检查或部分管理功能端口(不对外开放) |
ElasticSearch 集群节点
不提供部署说明,请提前部署
| 节点名称 | 节点地址 | 开放端口 | 节点角色 |
|---|---|---|---|
| elastic-01 | 10.10.217.87 | 9200 | elasticsearch 实例-1 |
| elastic-02 | 10.10.217.88 | 9200 | elasticsearch 实例-2 |
| elastic-03 | 10.10.217.89 | 9200 | elasticsearch 实例-3 |
Nacos 集群节点
不提供部署说明,请提前部署
| 节点名称 | 节点地址 | 开放端口 | 节点角色 |
|---|---|---|---|
| nacos-01 | 10.10.217.90 | 8848 | nacos 实例-1 |
| nacos-02 | 10.10.217.91 | 8848 | nacos 实例-2 |
| nacos-03 | 10.10.217.92 | 8848 | nacos 实例-3 |
注意:Docker 环境、Nacos 集群、ElasticSearch 集群、Nginx 集群等中间件的部署,均不在本部署手册说明范畴。
三、SkyWalking 服务部署
注意:以下操作在各规划部署节点均需执行,可统一修改后 SCP 到各个规划部署节点
准备项:预备镜像端口
- 下载服务镜像
shell
docker pull apache/skywalking-oap-server:10.4.0
- 开放服务端口
shell
# 查防火墙状态
firewall-cmd --state
# 开放业务端口
firewall-cmd --zone=public --add-port=11800/tcp --permanent
firewall-cmd --zone=public --add-port=12800/tcp --permanent
# 重载规则生效
firewall-cmd --reload
# 确认是否生效
firewall-cmd --zone=public --list-ports
方案一:环境变量部署(推荐)
- 基础启动脚本
shell
docker run -d --restart always --name skywalking-oap-cluster \
-p 12800:12800 -p 11800:11800 \
-e "SW_CLUSTER=nacos" \
-e "SW_SERVICE_NAME=SkyWalking_OAP_Cluster" \
-e "SW_CLUSTER_NACOS_HOST_PORT=10.10.217.90:8848,10.10.217.91:8848,10.10.217.92:8848" \
-e "SW_CLUSTER_NACOS_NAMESPACE=e9bc1b26-79be-4a32-9540-4e5b72d15617" \
-e "SW_CLUSTER_NACOS_USERNAME=nacos" \
-e "SW_CLUSTER_NACOS_PASSWORD=nacos" \
# 10.4.0 版本需要配置部署节点宿主机的实际内网 IP 地址,防止注册到 Nacos 后注册信息是 172.17.0.2:11800 类似的容器内网 IP,特别注意:每个节点填写各自节点正式的宿主机内网 IP
-e "SW_CLUSTER_INTERNAL_COM_HOST=10.10.218.84" \
-e "SW_CLUSTER_INTERNAL_COM_PORT=11800" \
-e "SW_STORAGE=elasticsearch" \
-e "SW_STORAGE_ES_CLUSTER_NODES=10.10.217.87:9200,10.10.217.88:9200,10.10.217.89:9200" \
apache/skywalking-oap-server:10.4.0
- 检查启动日志
shell
docker logs -f -n 200 skywalking-oap-cluster
- 环境变量说明
| 环境变量名称 | 环境变量说明 | 其它备注说明 |
|---|---|---|
| SW_CLUSTER | OAP 集群中间件 | 各节点必须保持一致 |
| SW_SERVICE_NAME | OAP 集群服务名称 | 各节点必须保持一致 |
| SW_CLUSTER_NACOS_HOST_PORT | Nacos 集群地址 | 多个用英文逗号隔开 |
| SW_CLUSTER_NACOS_USERNAME | Nacos 认证用户 | - |
| SW_CLUSTER_NACOS_PASSWORD | Nacos 认证密码 | - |
| SW_CLUSTER_INTERNAL_COM_HOST | OAP 集群内部通讯地址 | 每个节点填写各自地址(Docker 必填,各节点必须唯一) |
| SW_CLUSTER_INTERNAL_COM_PORT | OAP 集群内部通讯端口 | 注册到 Nacos 本机地址和端口 |
| SW_STORAGE | OAP 集群数据存储介质 | - |
| SW_STORAGE_ES_CLUSTER_NODES | OAP 集群存储介质地址 | - |
-
部署场景说明
- 该场景适用于开发、测试等研究环境的快速部署,方便快速快速搭建验证环境以及对应用各个参数指标配置的灵活验证;
- 该场景部署方案为将来升级
SkyWalking各个组件提供快捷的保障和基础,升级时不必过度考虑配置文件是否变更; - 涉及环境配置密码等元素设置,则需要结合运维安全规范从 "环境变量部署" 和 "配置文件部署" 两种方案中做取舍。
方案二:配置文件部署
-
获取配置文件
shell# 1、创建配置目录 mkdir -p /opt/modules/skywalking-oap-cluster # 2、启动临时容器 docker run -d --name skywalking-oap-tmp -e "SW_STORAGE=elasticsearch" -e "SW_STORAGE_ES_CLUSTER_NODES=10.10.217.87:9200,10.10.217.88:9200,10.10.217.89:9200" apache/skywalking-oap-server:10.4.0 # 3、提取配置文件 ------ 将容器配置资源拷贝到宿主机的规划目录 docker cp skywalking-oap-tmp:/skywalking/ /opt/modules/skywalking-oap-cluster/ # 4、删除临时容器 docker rm -f skywalking-oap-tmp -
数组配置列表
shell[root@node85 ~]# ll /opt/modules/skywalking-oap-cluster/ total 344K # 启动脚本以及其它可执行工具,如:startup.sh 和 stop.sh drwxr-xr-x 2 root root 4.0K Apr 1 22:32 bin # 配置文件目录,包含关键配置文件 application.yml drwxr-xr-x 13 root root 4.0K Jul 31 17:18 config # 配置示例目录,便于用户参考 drwxr-xr-x 2 root root 4.0K Apr 1 22:32 config-examples # 容器启动脚本,用于初始化和启动 SkyWalking OAP 服务 -rwxr-xr-x 1 root root 1.3K Apr 1 22:31 docker-entrypoint.sh # 扩展配置文件目录,用于自动以扩展配置 drwxr-xr-x 2 root root 4.0K Apr 1 22:32 ext-config # 扩展库目录,用于添加插件或者依赖库 drwxr-xr-x 2 root root 4.0K Apr 1 22:32 ext-libs # SkyWalking 项目开源许可证文件 -rw-r--r-- 1 root root 41K May 10 2024 LICENSE # 项目中使用的所有依赖库的许可证集合 drwxr-xr-x 3 root root 4.0K Apr 1 22:32 licenses # SkyWalking 项目开源许可证文件模板 -rw-r--r-- 1 root root 1.6K May 10 2024 LICENSE.tpl # SkyWalking 开源协议注意事项 -rwxr-xr-x 1 root root 30K May 10 2024 NOTICE # OAP 组件所需的依赖库文件夹 drwxr-xr-x 2 root root 20K May 10 2024 oap-libs # 项目介绍文件,包含操作指南 -rw-r--r-- 1 root root 2.0K May 10 2024 README.txt # 工具目录,包含与 SkyWalking 相关的实用工具 drwxr-xr-x 4 root root 4.0K Apr 1 22:32 tools # Zipkin 集成相关的许可证信息 -rwxr-xr-x 1 root root 207K May 10 2024 zipkin-LICENSE -
修改配置文件
shell# 1、编辑配置文件 vim /opt/modules/skywalking-oap-cluster/config/application.ymlyaml# 2、修改配置信息 cluster: # 集群模式采用 Nacos 作为服务注册、发现与协调 selector: ${SW_CLUSTER:nacos} nacos: # 定义 SkyWalking OAP 注册到 Nacos 上的服务的名称,每个节点必须保持一致 serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} # Nacos 集群的配置信息 hostPort: ${SW_CLUSTER_NACOS_HOST_PORT:10.10.217.90:8848,10.10.217.91:8848,10.10.217.92:8848} # Nacos 命名空间 namespace: ${SW_CLUSTER_NACOS_NAMESPACE:"e9bc1b26-79be-4a32-9540-4e5b72d15617"} contextPath: ${SW_CLUSTER_NACOS_CONTEXT_PATH:""} # Nacos 认证用户和密码 username: ${SW_CLUSTER_NACOS_USERNAME:"nacos"} password: ${SW_CLUSTER_NACOS_PASSWORD:"nacos"} # Nacos auth accessKey accessKey: ${SW_CLUSTER_NACOS_ACCESSKEY:""} secretKey: ${SW_CLUSTER_NACOS_SECRETKEY:""} # 10.4.0 版本需要配置部署节点宿主机的实际内网 IP 地址,防止注册到 Nacos 后注册信息是 172.17.0.2:11800 类似的容器内网 IP,特别注意:每个节点填写各自节点正式的宿主机内网 IP internalComHost: ${SW_CLUSTER_INTERNAL_COM_HOST:10.10.217.84} internalComPort: ${SW_CLUSTER_INTERNAL_COM_PORT:11800} ... ... storage: # OAP 数据采用 ElasticSearch 存储 selector: ${SW_STORAGE:elasticsearch} banyandb: # Since 10.2.0, the banyandb configuration is separated to an independent configuration file: `bydb.yaml`. elasticsearch: namespace: ${SW_NAMESPACE:""} # ElasticSearch 集群节点 clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:10.10.217.87:9200,10.10.217.88:9200,10.10.217.89:9200} # ElasticSearch 集群协议 protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"} connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000} socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000} responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000} numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0} # ElasticSearch 认证用户 user: ${SW_ES_USER:""} # ElasticSearch 认证密码 password: ${SW_ES_PASSWORD:""} # ElasticSearch 证书路径 trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""} # Path to the truststore that contains CA certificates used to verify the OpenSearch/Elasticsearch server certificate. # ElasticSearch 证书密码 trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""} # Password for the truststore defined in trustStorePath. # ElasticSearch 私钥路径 keyStorePath: ${SW_STORAGE_ES_SSL_KEY_STORE_PATH:""} # Path to the client certificate keystore for mutual TLS (OpenSearch/Elasticsearch client certificate authentication). # ElasticSearch 私钥密码 keyStorePass: ${SW_STORAGE_ES_SSL_KEY_STORE_PASS:""} # Password for the client certificate keystore defined in keyStorePath. This can be externalized via secretsManagementFile. secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool. dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index. # ElasticSearch 索引分片 indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # Shard number of new indexes # ElasticSearch 分片副本 indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:1} # Replicas number of new indexes -
启动服务容器
shelldocker run -d --restart always --name skywalking-oap-cluster \ -p 12800:12800 -p 11800:11800 \ -v /opt/modules/skywalking-oap-cluster:/skywalking \ apache/skywalking-oap-server:10.4.0
提醒:如果需要设置容器启动的
JVM内存,可以在启动脚本配置-e "JAVA_OPTS=-Xmx8G -Xmx8G -XX:+UseG1GC"此环境变量将在docker-entrypoint.sh启动容器时体现作用。
-
检查启动日志
shelldocker logs -f -n 200 skywalking-oap-cluster
检查项:集群注册信息
标准化:生产参数调优
| 调优目标 | 中型生产环境建议参数 | 配置方法 |
|---|---|---|
Docker |
CPU ≥ 8C,Memory ≥ 16G |
--cpus=8 --memory=16g --memory-reservation=8g |
JVM |
Xms=8g,Xmx=8g,G1GC |
JAVA_OPTS="-Xms8g -Xmx8g -XX:+UseG1GC -XX:MaxGCPauseMillis=200" |
Log |
控制日志级别,避免 DEBUG |
/skywalking/config/log4j2.xml |
Linux |
文件句柄 ≥ 65535 |
/etc/security/limits.conf |
Linux |
TCP连接优化 | sysctl.conf 调整 somaxconn、tcp_tw_reuse |
四、SkyWalking 界面部署
注意:以下操作在各规划部署节点均需执行,可统一修改后 SCP 到各个规划部署节点
准备项:预备镜像端口
-
下载界面镜像
shelldocker pull apache/skywalking-ui:10.4.0 -
开放界面端口
shell# 查防火墙状态 firewall-cmd --state # 开放业务端口 firewall-cmd --zone=public --add-port=18080/tcp --permanent # 重载规则生效 firewall-cmd --reload # 确认是否生效 firewall-cmd --zone=public --list-ports
方案一:环境变量部署(推荐)
-
基础启动脚本
shelldocker run -d --restart always --name skywalking-ui-cluster \ -p 18080:8080 \ -e "SW_OAP_ADDRESS=http://10.10.217.85:12800,http://10.10.217.86:12800,http://10.10.217.87:12800" \ apache/skywalking-ui:10.4.0 -
检查启动日志
shelldocker logs -f -n 200 skywalking-ui-cluster -
环境变量说明
| 环境变量名称 | 环境变量说明 | 其它备注说明 |
|---|---|---|
| SW_OAP_ADDRESS | OAP 集群地址 | 多个用英文逗号隔开 |
| SW_ZIPKIN_ADDRESS | ZipKin 集群地址 | UI 查询 Zipkin 中的数据(根据实际填写,非必填) |
- 部署场景说明
- 该场景适用于开发、测试等研究环境的快速部署,方便快速快速搭建验证环境以及对应用各个参数指标配置的灵活验证;
- 该场景部署方案为将来升级
SkyWalking各个组件提供快捷的保障和基础,升级时不必过度考虑配置文件是否变更; - 涉及环境配置密码等元素设置,则需要结合运维安全规范从 "环境变量部署" 和 "配置文件部署" 两种方案中做取舍。
方案二:配置文件部署
-
获取配置文件
shell# 1、创建配置目录 mkdir -p /opt/modules/skywalking-ui-cluster # 2、启动临时容器 docker run -d --name skywalking-ui-tmp apache/skywalking-ui:10.4.0 # 3、提取配置文件 ------ 将容器配置资源拷贝到宿主机的规划目录 docker cp skywalking-ui-tmp:/skywalking/ /opt/modules/skywalking-ui-cluster/ # 4、删除临时容器 docker rm -f skywalking-ui-tmp -
修改配置文件
shell# 1、编辑配置文件 vim /opt/modules/skywalking-ui-cluster/webapp/application.ymlyaml# 2、设置 OAP 服务的连接信息 oapServices: http://10.10.217.85:12800,http://10.10.217.86:12800,http://10.10.217.87:12800 -
启动服务容器
shelldocker run -d --restart always --name skywalking-ui-cluster \ -p 18080:8080 \ -v /opt/modules/skywalking-ui-cluster:/skywalking \ apache/skywalking-ui:10.4.0 -
检查启动日志
shelldocker logs -f -n 200 skywalking-ui-cluster -
部署场景说明
- 该场景适用于生产环境部署,为多维度配置提供宿主机的配置支撑,方便更细层次的个性化配置;
- 该场景对未来版本的升级(特别是大版本),在配置文件的对比和兼容性上会存在一定的挑战;
- 涉及环境配置密码等元素设置,该方案比 "环境变量部署" 方案更加隐蔽。
标准化:生产参数调优
| 调优目标 | 中型生产环境建议参数 | 配置方法 |
|---|---|---|
Docker |
CPU ≥ 2C,Memory ≥ 2G |
--cpus=2 --memory=2g |
JVM |
UI依赖较轻,默认即可 | Docker 环境变量 JAVA_OPTS |
Linux |
文件句柄 ≥ 65535 |
/etc/security/limits.conf |
Log |
INFO级别 | /skywalking/webapp/config/log4j2.xml |
OAP连接 |
配置多个OAP地址 | webapp.yml → oapServices |
五、SkyWalking 日志留存
目标位:日志文件目录
| 目标服务 | 日志目录 |
|---|---|
SkyWalking OAP |
/config/log4j2.xml |
SkyWalking UI |
/webapp/log4j2.xml |
可配置:日志持久留存
xml
<?xml version="1.0" encoding="utf-8"?>
<Configuration status="INFO">
<Appenders>
<!-- 控制台输出 -->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout>
<LevelPatternSelector defaultPattern="%d %c %L [%t] %-5p %x - %m%n">
<PatternMatch key="ERROR" pattern="%d %c %L [%t] %-5p %x - [%swversion] %m%n"/>
</LevelPatternSelector>
</PatternLayout>
</Console>
<!-- 日志文件留存 ------ 日志留存 7 天 -->
<RollingFile name="RollingFile" fileName="/skywalking/logs/oap-server.log" filePattern="/skywalking/logs/oap-server-%d{yyyy-MM-dd}.log.gz">
<PatternLayout>
<Pattern>%d %c %L [%t] %-5p %x - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
<DefaultRolloverStrategy max="7"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="Console"/>
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
持久化:日志文件外挂
示例代码片段
shell
# OAP 挂载
-v /opt/modules/skywalking-oap-cluster/logs:/skywalking/logs
# UI 挂载
-v /opt/modules/skywalking-ui-cluster/logs:/skywalking/logs
