docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker搭建Skywalking

Docker搭建Skywalking的实现示例

作者:Dolphin_Home

本文主要介绍了Docker搭建Skywalking的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Docker搭建Skywalking

准备工作

拉取官方Skywalking镜像

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

# 拉取 UI 服务镜像
docker pull apache/skywalking-ui:8.9.0

部署 SkyWalking OAP 服务器

0. 启动临时容器【通过创建一个临时的测试容器来复制配置文件,反推配置】

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

说明

目录结构说明

路径说明
/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.sh 和 stop.sh。
config配置文件目录,包含关键配置文件,如 application.yml(OAP 核心配置)。
config-examples配置示例目录,包含模板配置,便于用户参考。
docker-entrypoint.sh容器启动脚本,用于初始化和启动 SkyWalking OAP 服务。
ext-config扩展配置文件目录,用于自定义扩展配置。
ext-libs扩展库目录,用于添加插件或依赖库。
LICENSESkyWalking 项目的开源许可证文件。
licenses项目中使用的所有依赖库的许可证集合。
oap-libsOAP 组件所需的依赖库文件夹。
README.txt项目介绍文件,包含操作指南。
tools工具目录,包含与 SkyWalking 相关的实用工具。
zipkin-LICENSEZipkin 集成相关的许可证信息。

核心目录说明

2. 使用 ElasticSearch 存储

方式 1:通过 Docker 启动 SkyWalking OAP 服务并使用 ElasticSearch 存储

docker run -d \
  -p 11800:11800 \
  -p 12800:12800 \
  -e SW_STORAGE=elasticsearch \
  -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \
  -e SW_ES_USER=elastic \
  -e SW_ES_PASSWORD="\"123456\"" \
  --link elasticsearch:elasticsearch \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

方式 2:通过 Docker 启动 SkyWalking OAP 服务并使用 ElasticSearch 存储【这里直接使用之前ES容器的网络es-net

docker run -d \
  -p 11800:11800 \
  -p 12800:12800 \
  -e SW_STORAGE=elasticsearch \
  -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \
  -e SW_ES_USER=elastic \
  -e SW_ES_PASSWORD="\"123456\"" \
  --net es-net \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

注意:

方式 3:直接指定 ElasticSearch 服务的 IP 地址

docker run \
  -d -p 11800:11800 -p 12800:12800 \
  -e TZ=Asia/Shanghai \
  -e SW_STORAGE=elasticsearch \
  -e SW_STORAGE_ES_CLUSTER_NODES=[ES的IP]:9200 \
  -e SW_ES_USER=elastic \
  -e SW_ES_PASSWORD="\"123456\"" \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

说明:

方式 4:使用挂载配置文件启动(自定义 application.yml 配置)

如果您希望使用自定义配置文件 application.yml,可以将其挂载到容器中:

docker run -d \
  -p 11800:11800 \
  -p 12800:12800 \
  -v /opt/module/skywalking/config/application.yml:/skywalking/config/application.yml \
  -e SW_STORAGE=elasticsearch \
  -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \
  -e SW_ES_USER=elastic \
  -e SW_ES_PASSWORD="\"123456\"" \
  --link elasticsearch:elasticsearch \
  --name skywalking-oap \
  --restart always \
  apache/skywalking-oap-server:8.9.0

环境变量:

挂载配置文件:

网络连接:

3. 使用 MySQL 存储(推荐✨)

说明

注意事项

4. 可选配置:自定义参数或挂载配置文件

部署 SkyWalking UI

SkyWalking UI 提供了一个基于 Web 的界面,用于可视化 OAP 服务器收集的遥测数据。

方式 1:通过 Docker 启动 SkyWalking UI 服务

docker run \
  -d -p 8080:8080 \
  -e SW_OAP_ADDRESS=http://skywalking-oap:12800 \
  --link skywalking-oap:skywalking-oap \
  --name skywalking-ui \
  --restart always \
  apache/skywalking-ui:8.9.0

浏览器访问:http://<主机IP>:8080

说明

如果8080端口被占用,这里可以替换成其他的端口 例如: -p 28080:8080

方式 2:通过 Docker 启动 SkyWalking UI 服务(使用自定义网络 es-net

docker run \
  -d -p 8080:8080 \
  -e SW_OAP_ADDRESS=http://skywalking-oap:12800 \
  --net es-net \
  --name skywalking-ui \
  --restart always \
  apache/skywalking-ui:8.9.0

查看启动日志

docker logs -f skywalking-oap
docker logs -f skywalking-ui

# 查看最近 20 行日志
docker logs -f -t --tail 20 skywalking-oap
docker logs -f -t --tail 20 skywalking-ui

进入skywalking-oap、skywalking-ui容器内部

docker ps     # 查看正在运行的容器,并得到 容器id

# 进入tomcat容器内部
docker exec -it [容器id] /bin/bash  # 中间那个是容器id 就是 CONTAINER_ID
docker exec -it [容器id] /bin/sh
#  -it 表示进入
docker exec -it skywalking-oap /bin/sh
docker exec -it skywalking-ui  /bin/sh
# 使用 命令别名 开启 ll命令
cat <<EOF >> /etc/profile
alias ll='ls -l --color=tty'
alias grep='grep --color=auto'
EOF

source /etc/profile

查看防火墙【开放端口】

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
firewall-cmd --query-port=11800/tcp
firewall-cmd --query-port=12800/tcp

# 开放80、443端口
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=11800/tcp
firewall-cmd --permanent --add-port=12800/tcp

# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --permanent --remove-port=11800/tcp
firewall-cmd --permanent --remove-port=12800/tcp

# 重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

# 查看已经开发那些端口
firewall-cmd --list-ports
firewall-cmd --zone=public --list-ports

测试

#浏览器中服务器
http://虚拟机IP:8080

查看日志

查看 SkyWalking OAP 日志

docker logs -f skywalking-oap

查看 SkyWalking UI 日志

docker logs -f skywalking-ui

停止并删除容器

停止并删除 OAP 容器

docker stop skywalking-oap
docker rm skywalking-oap

停止并删除 UI 容器

docker stop skywalking-ui
docker rm skywalking-ui

结论

以上步骤完成后,您已成功配置Apache SkyWalking的OAP服务器和UI。可以选择使用H2、Elasticsearch或MySQL作为存储,通过SkyWalking UI监控系统运行情况。

到此这篇关于Docker搭建Skywalking的实现示例的文章就介绍到这了,更多相关Docker搭建Skywalking内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文