文章目录
前言
由于本地的 JDK 版本与 SkyWalking 对应的 JDK 版本不一致,为了避免兼容性问题并简化环境配置,我们使用 Docker 来部署 Apache SkyWalking。这种方法可以确保在隔离的容器中运行 SkyWalking,从而避免对本地环境的影响。
前置条件
- 已经安装了Docker环境并且可以正常拉去镜像
一、创建Docker 网络
首先,创建一个专用于 SkyWalking 组件之间通信的 Docker 网络。
docker network create skywalking-net
用于skywalking-ui 向 skywalking-oap通信
对应删除命令docker network rm skywalking-net
二、部署 SkyWalking OAP 服务器
linux系统换行符为
\
,如果是在windows系统需要将换行符\
修改为^
使用默认存储启动(H2数据库)
docker run --name skywalking-oap --restart always -d \
-p 11800:11800 -p 12800:12800 \
--network skywalking-net \
apache/skywalking-oap-server:10.1.0
使用es存储对应命令
docker run --name skywalking-oap --restart always -d \
-p 11800:11800 -p 12800:12800 \
--network skywalking-net \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=127.0.0.1:9200 \
apache/skywalking-oap-server:10.1.0
将127.0.0.1:9200
替换为实际使用的Elasticsearch IP 地址和端口。
使用挂载配置文件启动(需要修改的参数在application.yml
文件中修改)
docker run --name skywalking-oap --restart always -d -p 11800:11800 -p 12800:12800 -p 12801:12801 -p 7091:7091 \
-v /home/skywalking/oap/application.yml:/skywalking/config/application.yml \
apache/skywalking-oap-server:10.1.0
这里 我将
application.yml
文件放在了/home/skywalking
路径,大家自己选择路径即可
指定JVM最大堆内存为2g
docker run --name skywalking-oap --restart always -d -p 11800:11800 -p 12800:12800 -p 12801:12801 -p 7091:7091 \
-e JAVA_OPTS="-Xmx2g" \
-v /home/skywalking/oap/application.yml:/skywalking/config/application.yml \
apache/skywalking-oap-server:10.1.0
三 部署 SkyWalking UI
SkyWalking UI 提供了一个基于 Web 的界面,用于可视化 OAP 服务器收集的遥测数据。
docker run --name skywalking-ui --restart always -d -p 8080:8080 --network skywalking-net apache/skywalking-ui:10.1.0
如果8080端口被占用,这里可以替换成其他的端口 例如: -p 28080:8080
如果遇到以下报错报错
com.linecorp.armeria.client.UnprocessedRequestException: io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:12800
使用以下命令启动ui
docker run --name skywalking-ui --restart always -d -p 8080:8080 -e SW_OAP_ADDRESS=http://skywalking-oap:12800 --network skywalking-net apache/skywalking-ui:10.1.0
四 查看日志
4.1. 查看 SkyWalking OAP 日志
docker logs -f skywalking-oap
4.2. 查看 SkyWalking UI 日志
docker logs -f skywalking-ui
五 停止并删除容器
##5.1. 停止并删除 OAP 容器
docker stop skywalking-oap
docker rm skywalking-oap
5.2. 停止并删除 UI 容器
docker stop skywalking-ui
docker rm skywalking-ui
结论
至此,已经成功配置了 Apache SkyWalking 的 OAP 服务器和 UI。可以选择使用 H2 或 Elasticsearch 存储,并通过 SkyWalking UI 监控和跟踪系统的运行情况。
官方文档地址:
https://skywalking.apache.org/docs/main/latest/en/setup/backend/backend-docker/
https://skywalking.apache.org/docs/main/latest/en/setup/backend/ui-setup/