0


skywalking-oap+skywalking-ui+banyandb通过docker部署链路监控系统

skywalking-oap+ui+banyandb通过docker部署链路监控系统

一、准备资源

当前使用的skywalking是最新版本【10.0.1-6a9d727】,上一个版本是:v10.0.0;
----->所以latest版本=10.0.1
资源版本linuxLinux fedora40 6.10.3-200.fc40.x86_64apache/skywalking-banyandblatestapache/skywalking-uilatestapache/skywalking-oap-serverlatestskywalking Java AgentJava Agent下载地址

二、docker源配置

PS:最近docker拉取镜像的源被屏蔽了不少, 我找到了一些可以用的,自测可用,贴在这里,自取

# /etc/docker/daemon.json{"registry-mirrors":["https://dockerhub.icu",
        "https://docker.ckyl.me",
        "https://docker.awsl9527.cn",
        "https://docker.m.daocloud.io",
        "https://docker.laoex.link"],
  "experimental":true}

三、拉取skywalking镜像

docker pull apache/skywalking-banyandb:latest
docker pull apache/skywalking-ui:latest
docker pull apache/skywalking-oap-server:latest

四、启动docker

(一)启动banyandb

docker run -d--name banyandb -p17913:17913 apache/skywalking-banyandb:latest standalone --stream-root-path /tmp/stream-data --measure-root-path /tmp/measure-data

可以看我写的另外一个文章:docker部署banyandb

(二)启动skywalking-oap-server

[root@fedora40 data]# mkdir -p oap/config[root@fedora40 data]# docker run -d --name oap -p 11800:11800 -p 12800:12800 --ulimit nofile=10240:10240 apache/skywalking-oap-server:latest[root@fedora40 data]# docker cp oap:/skywalking/config/application.yml /data/oap/config[root@fedora40 data]# docker rm -f oap[root@fedora40 data]# vim oap/config/application.yml

操作说明:

  1. 先启动一个apache/skywalking-oap-server:latest的容器
  2. 将application.yml文件拷贝到挂载目录,然后删除oap容器
  3. vim编辑application.yml,编辑内容如下在这里插入图片描述在这里插入图片描述
  4. 以上vim,退出保存后,再次执行docker run创建skywalking-oap-server命令
[root@fedora40 data]# docker run -d --name=oap4 -p 11800:11800 -p 12800:12800 --ulimit nofile=10240:10240 --link banyandb:banyandb -e SW_STORAGE=banyandb -e SW_STORAGE_BANYANDB_TARGETS=banyandb:17912 -e SW_HEALTH_CHECKER=default -e JAVA_OPTS="-Xms2048m -Xmx2048m" -e TZ=Asia/Shanghai  -v /etc/localtime:/etc/localtime -v ./oap/config/application.yml:/skywalking/config/application.yml apache/skywalking-oap-server:latest

脚本说明
在这里插入图片描述

创建skywalking-oap-server容器成功
在这里插入图片描述

(三)启动skywalking-ui

[root@fedora40 data]# docker run -d --name uila -p 8088:8080 --link oap4:oap4 -e TZ=Asia/Shanghai -e SW_OAP_ADDRESS=http://oap4:12800 -v /etc/localtime:/etc/localtime apache/skywalking-ui:latest

脚本中

–link oap4:oap4 和oap4互联
-e SW_OAP_ADDRESS=http://oap4:12800 #指定oap地址

创建apache/skywalking-ui容器成功
在这里插入图片描述

五、访问界面

(一)访问banyandb界面

访问地址banyandb数据库界面
banyandb界面

(二)访问skywalking-ui界面

访问地址skywalking-ui界面
最新版本10.0.1的UI和8点及9点几的UI还是很不一样的
skywalking-ui界面

六、启动springcloud项目

(一)IDEA中配置skywalking-agent启动方式

1. 下载java agent

java agent下载地址
下载的文件名称:apache-skywalking-java-agent-9.3.0.tgz
解压后
java agent文件

2. 将代码放到springcloud项目的根pom.xml中

java agent的版本是9.3.0,以下代码中,版本要一致

<!-- SkyWalking agent for Java --><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>9.3.0</version><scope>provided</scope></dependency><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId><version>9.3.0</version></dependency>

3. 在IDEA启动项中,增加探针

注意:所有的启动项中,都需要添加,否则skywalking就收集不到数据

-javaagent:D:/workspace/javaSpace/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=GatewayServerBootstrap -Dskywalking.collector.backend_service=192.168.0.117:11800

-javaagent: 项目中 skywalking-agent.jar 的绝对路径,修改为自己的地址
-Dskywalking.agent.service_name:服务名称
-Dskywalking.collector.backend_service:Skywalking 服务地址

在这里插入图片描述

(二)java-jar启动项目方式

java-jar -javaagent:D:/workspace/javaSpace/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=GatewayServerBootstrap Dskywalking.collector.backend_service=192.168.0.117:11800 GatewayServerBootstrap.jar

-javaagent: 项目中 skywalking-agent.jar 的绝对路径,修改为自己的地址
-Dskywalking.agent.service_name:服务名称
-Dskywalking.collector.backend_service:Skywalking 服务地址

(三)配置好探针,启动springcloud项目后

启动项目后,等段时候后,skywalking就收集到了数据
收集服务的数据

部署问题汇总

1、Caused by: io.netty.channel.ChannelException: timerfd_create() failed: Too many open files

问题截图:
在这里插入图片描述
问题解决方案
估计是因为在容器中要打开很多文件,而容器中打开文件数量有限制。所以在docker run的脚本中,指定打开文件的上限,设置数量多一点,如下图:
在这里插入图片描述
我设置的是10240,你可以其他大一点的数字。总之,把文件上限设置高点就行了。

2、docker start Cannot restart container uila: Cannot link to a non running container

Docker 容器启动错误:Cannot link to a non running container 解决方案 。

创建容器A --link了 B 容器。

后来把 B容器删除了,重新起了个B。

然后容器A就报错Cannot link to a non running container 无法启动,明明B容器是在的,不过容器ID变了.

最常见的就是关联Mysql 容器的情况下。

解决方案

重启Docker ,在重启容器A。完美解决

systemctl restart docker

3、ERROR org.apache.skywalking.oap.server.starter.OAPServerBootstrap - file not found: application.yml

问题截图:
在这里插入图片描述
问题解决方案
这是因为你在执行docker run的时候,没有挂载application.yml文件,按理说apache/skywalking-oap-server:latest镜像中应该有这个文件。为啥报错也不清楚。不过在命令中挂载了application.yml文件在创建容器,就不会报错。如下操作

[root@fedora40 data]# mkdir -p oap/config[root@fedora40 data]# docker run -d --name oap -p 11800:11800 -p 12800:12800 --ulimit nofile=10240:10240 apache/skywalking-oap-server:latest[root@fedora40 data]# docker cp oap:/skywalking/config/application.yml /data/oap/config[root@fedora40 data]# docker rm -f oap

操作说明:

  1. 先启动一个apache/skywalking-oap-server:latest的容器
  2. 将application.yml文件拷贝到挂载目录
  3. 删除掉之前创建的容器
  4. 再次启动挂载目录的容器,请查看上面的操作

问题解决!


[参考文档] https://blog.csdn.net/qq_19891197/article/details/139411022)
[参考文档] https://blog.csdn.net/jang675953/article/details/139566597)

标签: skywalking ui docker

本文转载自: https://blog.csdn.net/zlk_416/article/details/141187739
版权归原作者 Ennis.Zhou 所有, 如有侵权,请联系我们删除。

“skywalking-oap+skywalking-ui+banyandb通过docker部署链路监控系统”的评论:

还没有评论