当前位置: 首页 > article >正文

避坑指南:在Fedora 40上用Docker部署SkyWalking 10.0.1,我遇到的3个典型错误及解决方法

避坑指南在Fedora 40上用Docker部署SkyWalking 10.0.1的实战复盘最近在Fedora 40上部署SkyWalking 10.0.1时遇到了几个让人头疼的问题。作为一款强大的分布式链路追踪系统SkyWalking的部署本应相对简单但在实际环境中总会遇到各种意想不到的情况。本文将分享我在部署过程中遇到的三个典型错误及其解决方法希望能帮助遇到类似问题的开发者少走弯路。1. Too many open files错误分析与解决这个错误通常出现在SkyWalking OAP服务启动后不久日志中会抛出类似io.netty.channel.ChannelException: timerfd_create() failed: Too many open files的异常。这实际上是Linux系统级别的文件描述符限制问题。1.1 问题根源在Linux系统中每个进程能打开的文件数量是有限制的。SkyWalking OAP作为高性能服务会同时维护大量网络连接和文件操作默认情况下Fedora 40对容器的文件描述符限制是1024SkyWalking OAP在处理大量追踪数据时很容易突破这个限制Docker容器继承了宿主机的ulimit设置但可以通过参数覆盖1.2 解决方案在启动OAP容器时显式设置ulimit参数docker run -d --name oap \ -p 11800:11800 -p 12800:12800 \ --ulimit nofile10240:10240 \ apache/skywalking-oap-server:latest提示10240是一个经验值对于生产环境可能需要设置更高如65535。可以通过ulimit -n在宿主机上验证当前设置。1.3 验证方法进入容器检查实际生效的限制docker exec -it oap bash ulimit -n如果输出显示10240说明设置已生效。2. Cannot link to a non running container容器链接问题在Docker环境中使用--link参数连接容器时经常会遇到这个让人困惑的错误。特别是在重启相关容器后问题会更加明显。2.1 问题场景还原典型的错误场景如下先启动BanyanDB容器docker run -d --name banyandb -p 17913:17913 apache/skywalking-banyandb:latest然后启动OAP容器并链接到BanyanDBdocker run -d --name oap --link banyandb:banyandb apache/skywalking-oap-server:latest如果之后重建了BanyanDB容器即使名称相同OAP容器就会报错无法启动2.2 根本原因Docker的--link机制实际上是在容器之间创建了一种硬编码的依赖关系链接信息存储在容器的/etc/hosts和环境变量中当被链接的容器重建后其内部IP会变化但原容器的链接信息不会自动更新2.3 可靠解决方案有两种方法可以彻底解决这个问题方法一使用Docker网络# 创建自定义网络 docker network create skywalking-net # 将容器连接到同一网络 docker run -d --name banyandb --network skywalking-net apache/skywalking-banyandb:latest docker run -d --name oap --network skywalking-net apache/skywalking-oap-server:latest方法二重启Docker服务如果已经使用了--link并且遇到问题systemctl restart docker docker start oap注意方法二只是临时解决方案建议长期使用Docker网络替代--link。3. application.yml not found配置文件缺失问题这是部署SkyWalking OAP时最常见的配置问题之一错误信息通常显示为ERROR org.apache.skywalking.oap.server.starter.OAPServerBootstrap - file not found: application.yml。3.1 问题分析虽然SkyWalking OAP镜像中确实包含默认的application.yml但在某些情况下文件可能不在预期的位置权限问题导致无法读取用户自定义配置时路径错误3.2 标准解决流程最可靠的方式是将配置文件挂载到容器中# 创建配置目录 mkdir -p /data/oap/config # 临时启动容器提取默认配置 docker run -d --name oap-temp apache/skywalking-oap-server:latest docker cp oap-temp:/skywalking/config/application.yml /data/oap/config/ docker rm -f oap-temp # 编辑配置文件根据需要修改 vim /data/oap/config/application.yml # 正式启动容器并挂载配置 docker run -d --name oap \ -v /data/oap/config/application.yml:/skywalking/config/application.yml \ apache/skywalking-oap-server:latest3.3 关键配置项在application.yml中有几个与BanyanDB相关的重要配置storage: selector: ${SW_STORAGE:banyandb} banyandb: host: ${SW_STORAGE_BANYANDB_HOST:banyandb} port: ${SW_STORAGE_BANYANDB_PORT:17912} maxBulkSize: ${SW_STORAGE_BANYANDB_MAX_BULK_SIZE:5000}4. 完整部署流程与优化建议基于上述问题的解决方案下面给出一个完整的优化部署流程。4.1 环境准备确保系统满足以下要求Fedora 40其他Linux发行版也可参考Docker 20.10.0或更高版本至少4GB可用内存磁盘空间建议20GB以上4.2 部署步骤1. 创建专用网络docker network create --driver bridge skywalking-net2. 启动BanyanDBdocker run -d --name banyandb \ --network skywalking-net \ -p 17913:17913 \ apache/skywalking-banyandb:latest \ standalone \ --stream-root-path /tmp/stream-data \ --measure-root-path /tmp/measure-data3. 准备OAP配置mkdir -p /data/skywalking/oap/{config,logs} # 获取默认配置 docker run --rm apache/skywalking-oap-server:latest \ cat /skywalking/config/application.yml /data/skywalking/oap/config/application.yml # 修改配置根据需要 vim /data/skywalking/oap/config/application.yml4. 启动OAP服务docker run -d --name oap \ --network skywalking-net \ -p 11800:11800 -p 12800:12800 \ --ulimit nofile65535:65535 \ -v /data/skywalking/oap/config/application.yml:/skywalking/config/application.yml \ -v /data/skywalking/oap/logs:/skywalking/logs \ -e SW_STORAGEbanyandb \ -e SW_STORAGE_BANYANDB_TARGETSbanyandb:17912 \ -e JAVA_OPTS-Xms2g -Xmx2g \ apache/skywalking-oap-server:latest5. 启动UI界面docker run -d --name skywalking-ui \ --network skywalking-net \ -p 8080:8080 \ -e SW_OAP_ADDRESShttp://oap:12800 \ apache/skywalking-ui:latest4.3 性能调优建议对于生产环境还需要考虑以下优化参数参数推荐值说明JAVA_OPTS-Xms4g -Xmx4g根据机器内存调整SW_STORAGE_MAX_SIZE10000每批最大存储量SW_CORE_GRPC_CHANNEL_SIZE10gRPC通道数量SW_RECEIVER_BUFFER_PATH/tmp/sw缓冲区路径在Fedora 40上实际部署后发现新版SkyWalking 10.0.1的UI确实有了很大改进但配置过程也比之前版本复杂了一些。特别是与BanyanDB的集成需要特别注意版本兼容性和网络连接问题。

相关文章:

避坑指南:在Fedora 40上用Docker部署SkyWalking 10.0.1,我遇到的3个典型错误及解决方法

避坑指南:在Fedora 40上用Docker部署SkyWalking 10.0.1的实战复盘 最近在Fedora 40上部署SkyWalking 10.0.1时,遇到了几个让人头疼的问题。作为一款强大的分布式链路追踪系统,SkyWalking的部署本应相对简单,但在实际环境中总会遇到…...

Terrascan配置漂移监控:如何检测和预防基础设施安全漏洞 [特殊字符]️

Terrascan配置漂移监控:如何检测和预防基础设施安全漏洞 🛡️ 【免费下载链接】terrascan tenable/terrascan: 是一个基于 Go 语言的云计算安全扫描工具,可以方便地实现云计算安全扫描和漏洞检测等功能。该项目提供了一个简单易用的云计算安全…...

Chatbox+DeepSeek云服务实战:5分钟搞定智能对话系统搭建(含API避坑指南)

ChatboxDeepSeek云服务实战:5分钟搞定智能对话系统搭建(含API避坑指南) 在数字化转型浪潮中,智能对话系统已成为企业提升服务效率的标配工具。对于资源有限的中小企业和独立开发者而言,如何快速实现低成本、高可用的对…...

Wireshark单元测试终极指南:GLib Check框架实战解析与10个高效技巧

Wireshark单元测试终极指南:GLib Check框架实战解析与10个高效技巧 【免费下载链接】wireshark Read-only mirror of Wiresharks Git repository at https://gitlab.com/wireshark/wireshark. ⚠️ GitHub wont let us disable pull requests. ⚠️ THEY WILL BE IG…...

ComfyUI+AnimateDiff实战:5步搞定视频转二次元动画(附完整参数配置)

ComfyUIAnimateDiff实战:5步搞定视频转二次元动画(附完整参数配置) 在数字内容创作领域,将实拍视频转化为二次元动画风格正成为短视频创作者的新宠。这种技术不仅能赋予作品独特的视觉魅力,还能显著提升内容在社交媒体…...

AutoDL服务器与GitHub协作全攻略:学术加速+公网网盘提升代码下载速度10倍

AutoDL服务器与GitHub高效协作指南:10倍加速代码下载与文件传输 在深度学习研究领域,高效的计算资源与顺畅的代码协作是提升科研效率的两大关键。AutoDL作为当前性价比突出的GPU云服务平台,与GitHub这一代码托管平台的协同使用,能…...

骨架行为识别避坑指南:为什么你的GCN模型总在‘写字’和‘打字’上翻车?试试DeGCN的关节筛选策略

骨架行为识别实战:如何用DeGCN解决"写字"与"打字"的识别难题 当你在咖啡厅看到有人对着笔记本电脑快速敲击键盘,和在纸上奋笔疾书的场景,人类视觉系统能轻易区分这两种动作——但对AI模型来说,这却是极具挑战…...

保姆级教程:如何在Windows10上快速搭建PyTorch-GPU环境(含CUDA和cuDNN配置)

Windows10深度学习环境搭建实战:PyTorch-GPU配置全指南 引言:为什么需要GPU加速的PyTorch环境 在深度学习领域,GPU加速已经成为提升模型训练效率的标配。相比纯CPU运算,利用NVIDIA显卡的CUDA核心进行并行计算,通常能…...

从微分公式到积分技巧:手把手教你玩转双元法(含常见错误分析)

从微分公式到积分技巧:手把手教你玩转双元法(含常见错误分析) 微积分作为现代数学的基石,其核心思想之一便是微分与积分的互逆关系。这种深刻的内在联系不仅体现在牛顿-莱布尼茨公式中,更在各种积分技巧中得到巧妙应用…...

SeqGPT-560M政务招标文件:招标人/代理机构/投标截止/开标时间识别

SeqGPT-560M政务招标文件:招标人/代理机构/投标截止/开标时间识别 1. 引言:告别手动翻找,让AI读懂招标文件 如果你经常和招标文件打交道,肯定有过这样的经历:面对一份几十页甚至上百页的PDF文档,需要快速…...

论文通关密码:Paperxie 四大降重模块如何破解知网 / 维普检测困局

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述https://www.paperxie.cn/weight?type1https://www.paperxie.cn/weight?type1 在本科毕业论文的终局之战里,最让人崩溃的从来不是写作本身,而是提交后跳出的检测报告:重…...

Ostrakon-VL-8B企业级落地:支持批量图片上传、异步处理与结构化导出

Ostrakon-VL-8B企业级落地:支持批量图片上传、异步处理与结构化导出 1. 引言:从零售场景痛点出发 想象一下,你是一家连锁超市的运营经理,每天需要处理成百上千张门店照片:货架陈列、商品新鲜度、促销活动执行情况、员…...

EVA-01部署实操:Qwen2.5-VL-7B+DeepSpeed Zero-3显存优化部署

EVA-01部署实操:Qwen2.5-VL-7BDeepSpeed Zero-3显存优化部署 1. 引言:当视觉大模型穿上机甲战袍 想象一下,你有一个强大的视觉AI大脑,它能看懂图片里的每一个细节,理解复杂的场景,甚至能回答你关于图片的…...

从玩具到工具:避开这3个坑,用LangGraph把你的LangChain Agent变成真正可用的智能体

从玩具到工具:避开这3个坑,用LangGraph把你的LangChain Agent变成真正可用的智能体 如果你已经跟着教程搭建过几个简单的LangChain Agent,却在实际业务中遭遇了"演示很美好,落地就崩溃"的困境——比如处理多步骤任务时逻…...

AlienFX-Tools:Alienware设备深度定制与性能优化的开源解决方案

AlienFX-Tools:Alienware设备深度定制与性能优化的开源解决方案 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools Alienware设备以其卓越的硬…...

6轴机器人 六轴机械手臂(CAD装配图 零件图+机加工件及外购件清单)

六轴机器人与六轴机械手臂作为现代工业自动化的核心装备,其设计精度与装配可靠性直接影响作业效率与产品质量。CAD装配图通过三维建模技术,清晰呈现机械臂各关节的连接方式、传动路径及空间布局,为后续零件加工与整机调试提供可视化参考。零件…...

DeOldify企业定制开发:品牌LOGO水印/输出分辨率锁定/批量命名规则

DeOldify企业定制开发:品牌LOGO水印/输出分辨率锁定/批量命名规则 1. 从黑白到彩色的商业价值 你有没有翻看过家里的老相册?那些泛黄的黑白照片里,藏着爷爷奶奶年轻时的模样,记录着父母结婚时的场景,还有你小时候第一…...

揭秘示波器探头补偿电路的内部构造与优化设计

1. 示波器探头补偿电路的核心作用 每次用示波器测量电路信号时,你有没有想过探头尖端的那个小金属环里藏着什么秘密?我拆过不下20种探头,发现这个不起眼的补偿电路才是保证测量精度的关键。简单来说,它就像信号的高速公路收费站&a…...

Windows Cleaner终极指南:3分钟告别C盘爆红的完整教程

Windows Cleaner终极指南:3分钟告别C盘爆红的完整教程 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 还在为Windows系统C盘爆红而烦恼吗?…...

零门槛全平台解决方案:如何用TeXMe实现Markdown与LaTeX的无缝融合

零门槛全平台解决方案:如何用TeXMe实现Markdown与LaTeX的无缝融合 【免费下载链接】texme Self-rendering Markdown LaTeX documents 项目地址: https://gitcode.com/gh_mirrors/te/texme 在技术文档创作中,你是否曾为Markdown的简洁与LaTeX的公…...

效率革命:XXMI-Launcher如何通过智能模组管理实现多游戏体验跃升

效率革命:XXMI-Launcher如何通过智能模组管理实现多游戏体验跃升 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 当你在桌面上打开第三个模组管理工具时,…...

PFC(6.0)单轴模拟花岗岩等矿物晶体岩石:基于Potyondy D.2010的GBM模型与...

PFC(6.0)模拟:GBM模型(grain- based model ,参考文献:Potyondy. D. 2010), pb-sj或pb-pb 单轴。 模拟花岗岩等矿物晶体岩石,多种矿物晶体模型,其中矿物种类 数量分布可以自定义。可以监测sj裂纹&#xff0c…...

可直接运行的基于MATLAB带GUI轮轨接触几何计算程序:精准计算多踏面轨头下不同横移量的接触点位置

1-148 matlab的带有gui的轮轨接触几何计算程序基于matlab的带有gui的轮轨接触几何计算程序,根据不同的踏面和轨头,计算不同横移量下面的接触点位置。程序已调通,可直接运行有没有人蹲过现成的、换文件就能换轮轨、不用啃半天赫兹接触前的几何方程、结果还…...

智能辅助革新:BetterGI原神自动化工具深度解析

智能辅助革新:BetterGI原神自动化工具深度解析 【免费下载链接】better-genshin-impact 🍨BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Testing Tools For Genshi…...

OBS多路推流插件终极指南:如何一键实现多平台同步直播

OBS多路推流插件终极指南:如何一键实现多平台同步直播 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp OBS多路推流插件是直播创作者必备的神器,能够让你同时在多…...

电感实战指南:从选型计算到PCB布局避坑

1. 电感选型实战:从参数计算到型号匹配 第一次设计开关电源时,我对着规格书上密密麻麻的电感参数完全无从下手。直到烧毁第三个电感后才发现,选型不是简单的"越大越好",而是需要精确匹配电路需求。电感的选型就像给汽车…...

传统服饰纹样数据库构建:利用国风模型进行数据增强与生成

传统服饰纹样数据库构建:利用国风模型进行数据增强与生成 1. 引言 做文化遗产数字化,尤其是传统服饰纹样这块,最头疼的是什么?是数据。我们手里可能只有几十张、几百张高清扫描的纹样图,但要做研究、要搞设计、要训练…...

IDE vs SATA vs SCSI vs SAS:硬盘接口全解析,看完就知道怎么选了

IDE vs SATA vs SCSI vs SAS:硬盘接口技术全景解析与选购指南 在数字时代,硬盘作为数据存储的核心载体,其性能表现直接影响着系统整体效能。面对市场上IDE、SATA、SCSI、SAS等多种硬盘接口标准,普通用户往往陷入选择困境。本文将深…...

Windows驱动管理终极指南:用Driver Store Explorer轻松释放数十GB系统空间

Windows驱动管理终极指南:用Driver Store Explorer轻松释放数十GB系统空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否曾好奇为什么Windows系统盘空间总是…...

计算机毕业设计:美食菜谱数据挖掘与可视化分析平台 Django框架 爬虫 机器学习 数据分析 可视化 食物 食品 菜谱(建议收藏)✅

1、项目介绍 技术栈 Python 语言、Django 框架、Vue 前端框架、MySQL 数据库、Echarts 可视化库、HTML、CSS、JavaScript、jQuery、BeautifulSoup 爬虫库、Selenium 自动化工具、豆果美食网数据源 功能模块 菜谱数据列表模块分类可视化分析模块类型可视化分析模块配料分布分析模…...