注意使用docker部署skywalking和使用tar包部署有点不一样OAP和UI需要分别部署原因是:
SkyWalking UI 和 OAP 是 SkyWalking 的两个主要组件,它们之间的关系是前端和后端的关系。SkyWalking UI 是一个 Web 应用程序,它提供了一个漂亮的 UI 界面,可以帮助用户更方便地查看和分析 SkyWalking 收集到的分布式跟踪数据。而 OAP 则是 SkyWalking 的核心引擎,它负责收集、处理和存储分布式跟踪数据,同时也提供了一些 API 和插件机制,方便用户扩展和定制。在 Docker 部署中,将 UI 和 OAP 分开部署可以更好地实现组件化和灵活性,方便用户根据自己的需求进行部署和扩展。
首先拉取镜像
docker pull apache/skywalking-oap-server:9.2.0
docker pull apache/skywalking-ui:9.2.0
把对应的配置文件映射出来
docker run --name oap --restart always -d -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=192.168.197.136:9200 apache/skywalking-oap-server:9.2.0
mkdir -p /data/skywalking/{oap,ui} 创建组件对应目录
docker cp oap:/skywalking /data/skywalking/oap/
docker rm -f oap
vim /data/skywalking/oap/skywalking/config/application.yml 编辑配置文件
将默认的H2存储库改为elasticsearch7
skywalking数据清理机制配置
enableDataKeeperExecutor: 数据清理机制的开关,默认开启。
dataKeeperExecutePeriod: 数据清理定时器间隔时间,默认5,单位分钟。
recordDataTTL: 明细记录的有效期,默认3,单位天。
metricsDataTTL: 数据有效期,默认7,单位天。
修改skywalking采样率配置
在receiver-trace 模块,默认配置 10000 , 10000 * 1/10000 = 1 = 100%
假设我们设计采样 40%,那么设置为 4000 ,具体如下:
flushInterval每15秒刷新一次堆改为每30秒刷新;
flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:15} # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests:并发请求数2改为4;
concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
为了方便管理编写了一个启动脚本
vim oap.sh
#!/bin/bash
img_name='apache/skywalking-oap-server:9.2.0'
name=skywalking-oap
docker rm -f $name
docker run -d --name $name \
-e JVM_Xms=512M \
-e JVM_Xmx=1024M \
-v /data/skywalking/oap/skywalking/:/skywalking \
--net=host \
--restart=always \
$img_name
#JVM_Xms=512M JVM堆最小参数 JVM_Xmx=1024M JVM堆最大参数
bash oap.sh 启动
部署完oap之后部署ui的组件
把对应的配置文件映射出来
docker run --name ui --restart always --net=host -d -e SW_OAP_ADDRESS=http://192.168.197.138:12800 apache/skywalking-ui:9.2.0
docker cp ui:/skywalking /data/skywalking/ui/
docker rm -f ui
为了方便管理编写了一个启动脚本
vim ui.sh
#!/bin/bash
img_name='apache/skywalking-ui:9.2.0'
name=skywalking-ui
docker rm -f $name
docker run -d --name $name \
--net=host \
--restart=always \
-v /data/skywalking/ui/skywalking/:/skywalking \
-e SW_OAP_ADDRESS=http://192.168.197.138:12800 \
-e SERVER_PORT=8888 \
$img_name
bash ui.sh 启动
运行成功后访问ui的web页面
192.168.197.138:8888
到这就配置完成了。