Docker搭建Skywalking

Docker搭建Skywalking

  • 虚拟机IP192.168.0.109
  • Nacos服务地址http://192.168.0.109:8848/nacos
  • MySQL服务
    • IP:192.168.0.109
    • 端口:3306
    • 用户名:root
    • 密码:root
  • ElasticSearch服务:
    • IP:192.168.0.109
    • 端口:9200
    • 用户名:elastic
    • 密码:123456
    • 容器使用的Docker网络:docker network create elastic-net
    • 容器名称: elasticsearch
  • Kibana服务:

准备工作

  1. 先准备配置目录和持久化目录,举个栗子:mkdir -p /opt/module/skywalking/{config,data,logs}
  2. 解决 SkyWalking 容器 Permission denied(权限被拒绝)的错误,chmod -R 777 /opt/module/skywalking

拉取官方Skywalking镜像

# 拉取 OAP 服务镜像
docker pull apache/skywalking-oap-server:8.9.0

# 拉取 UI 服务镜像
docker pull apache/skywalking-ui:8.9.0
  • 注意:oap版本和agent版本需要适配,版本不适配可能会出现页面无法访问、agent上报不到页面等问题。

部署 SkyWalking OAP 服务器

0. 启动临时容器【通过创建一个临时的测试容器来复制配置文件,反推配置】
docker run \
  -d -p 11800:11800 -p 12800:12800  \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

说明

  • 11800:OAP 服务端口。
  • 12800:SkyWalking UI 服务端口。
  • --restart always:容器自动重启策略。
目录结构说明
路径 说明
/skywalking/config 配置文件目录
/skywalking/logs 日志文件目录
/skywalking/data 数据存储目录
复制 SkyWalking 配置文件到宿主机
docker cp skywalking-oap:/skywalking/config     /opt/module/skywalking
docker cp skywalking-oap:/skywalking/logs       /opt/module/skywalking
docker cp skywalking-oap:/skywalking/data       /opt/module/skywalking

# 如果需要导出所有文件
docker cp skywalking-oap:/skywalking     /opt/module
移除临时容器
docker stop skywalking-oap
docker rm skywalking-oap

1. 使用默认存储(H2 数据库)

启动 SkyWalking OAP 容器,使用 H2 数据库作为存储:

docker run \
  -d -p 11800:11800 -p 12800:12800  \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

说明:如果不指定存储类型,默认使用 H2 数据库。

容器内主要目录和文件说明
目录/文件名 说明
bin 启动脚本及其他可执行工具,如 startup.shstop.sh
config 配置文件目录,包含关键配置文件,如 application.yml(OAP 核心配置)。
config-examples 配置示例目录,包含模板配置,便于用户参考。
docker-entrypoint.sh 容器启动脚本,用于初始化和启动 SkyWalking OAP 服务。
ext-config 扩展配置文件目录,用于自定义扩展配置。
ext-libs 扩展库目录,用于添加插件或依赖库。
LICENSE SkyWalking 项目的开源许可证文件。
licenses 项目中使用的所有依赖库的许可证集合。
oap-libs OAP 组件所需的依赖库文件夹。
README.txt 项目介绍文件,包含操作指南。
tools 工具目录,包含与 SkyWalking 相关的实用工具。
zipkin-LICENSE Zipkin 集成相关的许可证信息。
### 使用 Docker 安装 Apache SkyWalking 并配置 MySQL 8 存储 #### 自动化安装 Docker 为了确保环境具备运行容器的能力,可以通过官方推荐的方式快速安装 Docker。执行以下命令完成自动化部署: ```bash curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun ``` 此方法能够简化跨平台的一致性问题并加速国内用户的下载速度[^1]。 #### 构建自定义镜像 如果需要定制化的功能或者特定版本的支持,则需创建专属的 Docker 镜像文件 `Dockerfile` 来满足需求。例如基于已有项目源码制作新映像时可采用如下指令: ```bash docker build -t docker_dome:V1.0.1 . ``` 上述操作会依据当前目录下的构建上下文生成指定标签名称的新镜像实例[^2]。 #### 下载与解压二进制包 对于不依赖容器技术的传统场景来说,直接获取官方发布的稳定发行版不失为一种高效途径之一。这里选取支持 Elasticsearch v7 的 Apache SkyWalking 版本号为 8.6.0 进行示范说明: ```bash wget https://archive.apache.org/dist/skywalking/8.6.0/apache-skywalking-apm-es7-8.6.0.tar.gz tar zxvf apache-skywalking-apm-es7-8.6.0.tar.gz mkdir /apps && mv apache-skywalking-apm-bin-es7 /apps/skywalking ``` 以上步骤完成了软件主体部分准备工作的同时还调整了目标路径以便后续管理维护更加便捷[^3]。 然而,在实际生产环境中往往还需要对接关系型数据库来增强数据持久性和查询性能等方面的优势。因此下面重点阐述如何切换至 MySQL 数据库引擎作为主要存储方案的具体实现细节。 --- #### 修改配置以适配 MySQL 后端 默认情况下,Apache SkyWalking 可能使用内存或 ES 等 NoSQL 类型的数据管理系统保存采集到的信息流记录。但当业务规模扩大后可能面临成本控制压力以及复杂报表统计分析的需求增长等情况,此时引入传统的关系型数据库就显得尤为重要了。 ##### 步骤一:准备 MySQL 实例 确认已存在可用状态良好的 MySQL Server (建议选用最新长期支持 LTS 版本),并通过 SQL 命令初始化必要的表结构资源对象。假设我们已经拥有了名为 `skywalking_db` 的专用模式空间及其关联账户权限设定完毕之后继续往下推进流程。 ##### 步骤二:编辑 application.yml 文件 进入 `/apps/skywalking/config/application.yml` 路径定位相关参数项位置修改成如下所示内容片段形式表示启用 OAP server 对接 mysql 功能模块开关选项开启状态: ```yaml storage: selector: ${SW_STORAGE:mysql} mysql: host: "${SW_MYSQL_HOST:localhost}" port: "${SW_MYSQL_PORT:3306}" user: "${SW_MYSQL_USER:root}" password: "${SW_MYSQL_PASSWORD:password}" database_name: "${SW_MYSQL_DB_NAME:skywalking}" ``` 此处需要注意替换变量值为自己真实有效的连接属性信息匹配对应字段含义描述准确无误即可正常工作运转起来[^4]。 最后重启服务验证整个链路畅通无阻即告成功! --- ### 总结 综上所述,通过组合运用多种工具和技术手段实现了从零开始搭建一套完整的分布式追踪解决方案全过程展示分享给大家参考学习借鉴之用。希望对你有所帮助解答疑惑之处有所启发引导作用发挥积极作用效果体现出来吧!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值