使用docker部署skywalking
使用docker部署skywalking
Intro#
之前在本地搭建过一次 skywalking + elasticsearch ,但是想要迁移到别的机器上使用就很麻烦了,于是 docker 就成了很方便的解决方式,只要 dockerfile / docker-compose 定了下来在哪里跑都是一样的。
构建 Docker 镜像#
可以直接使用 docker hub 上的镜像 weihanli/skywalking:5.0.0-GA
示例 Dockerfile
FROM centos:7
# Timezone, Asia/Shanghai by default
ENV Timezone=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$Timezone /etc/localtime && echo '$Timezone' > /etc/timezone
RUN yum install -y wget && \
yum install -y java-1.8.0-openjdk
WORKDIR /app
ADD http://mirror.bit.edu.cn/apache/incubator/skywalking/5.0.0-GA/apache-skywalking-apm-incubating-5.0.0-GA.tar.gz .
RUN tar -xf apache-skywalking-apm-incubating-5.0.0-GA.tar.gz && \
mv apache-skywalking-apm-incubating skywalking && \
echo "tail -f /dev/null" >> /app/skywalking/bin/startup.sh
CMD ["/bin/sh","-c","/app/skywalking/bin/startup.sh" ]
配置 docker-compose 环境#
有了 docker 镜像还不够,我们还需要 elasticsearch 来做存储,配置一个 docker-compose 环境会很方便,这里有一个我正在用的配置,仅供参考
docker-compose#
docker-compose 示例
注意:如果本地有端口被占用的,请自行修改,另 elasticsearch 需要使用 5.x 版本,skywalking5.x版本不支持 6.x 版本的 elasticsearch
version: '2'
services:
elasticsearch:
image: elasticsearch:5.6
container_name: elasticsearch
ports:
- 9200:9200
volumes:
- ./es/data:/usr/share/elasticsearch/data
- ./es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
skywalking:
image: weihanli/skywalking:5.0.0-GA
container_name: skywalking
ports:
- 10800:10800
- 11800:11800
- 12800:12800
- 8090:8080
volumes:
- ./skywalking/application.yml:/app/skywalking/config/application.yml
links:
- elasticsearch:elasticsearch
depends_on:
- elasticsearch
elsticsearch 配置#
cluster.name: elasticsearch
network.host: 0.0.0.0
network.publish_host: 0.0.0.0
thread_pool.bulk.queue_size: 1000
主要配置 clusterName 以及 network.host,network.host 要配置成 skywalking 可以访问得到的地址,这里配置了 0.0.0.0
skywalking 配置#
主要配置 elsticsearch 的 clusterName 以及 clusterNode 信息
storage:
elasticsearch:
clusterName: elasticsearch
clusterNodes: elasticsearch:9300
clusterName 要与 elasticsearch 的配置相同,clusterNode 的地址需要能够被 skywalking 访问的到
完整示例配置可以参考这里
开始部署#
在本地配置好如上所示的docker-compose 环境之后,打开 docker-compose 所在的文件夹执行 docker-compose up
即可启动 skywalking
启动后访问 ui 的端口,默认是 8080,上面的 docker-compose 文件中映射到的是 8090,打开 localhost:8090 登录,默认账号密码为 admin/admin,没有报错就证明我们的skywalking已经部署成功,如果有报错检查 elasticsearch 是否启动成功。
常见问题#
-
Elasticsearch 启动失败,
The vm.max_map_count kernel setting needs to be set to at least 262144 for production use.
参考 https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode 进行设置
Reference#
作者:weihanli
出处:https://www.cnblogs.com/weihanli/p/deploy-skywalking-via-docker.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?