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

一、准备资源

当前使用的skywalking是最新版本【10.0.1-6a9d727】,上一个版本是:v10.0.0;
----->所以latest版本=10.0.1

资源版本
linuxLinux fedora40 6.10.3-200.fc40.x86_64
apache/skywalking-banyandblatest
apache/skywalking-uilatest
apache/skywalking-oap-serverlatest
skywalking 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 -p 17913: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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值