注意使用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

到这就配置完成了。 

 

 

 

 

 

 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐