使用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/timezoneRUN yum install -y wget && \yum install -y java-1.8.0-openjdkWORKDIR /appADD 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.shCMD ["/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.6container_name: elasticsearchports:- 9200:9200volumes:- ./es/data:/usr/share/elasticsearch/data- ./es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.ymlskywalking:image: weihanli/skywalking:5.0.0-GAcontainer_name: skywalkingports:- 10800:10800- 11800:11800- 12800:12800- 8090:8080volumes:- ./skywalking/application.yml:/app/skywalking/config/application.ymllinks:- elasticsearch:elasticsearchdepends_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: elasticsearchclusterNodes: 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
- https://github.com/apache/incubator-skywalking/blob/5.x/docs/cn/Deploy-backend-in-standalone-mode-CN.md
- https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode
转载于:https://www.cnblogs.com/weihanli/p/deploy-skywalking-via-docker.html
使用docker部署skywalking相关推荐
- DolphinScheduler 之Docker 部署
文章目录 快速试用 Docker 部署 先决条件 如何使用 Docker 镜像 一.以 docker-compose 的方式启动 DolphinScheduler (推荐) 0.请配置内存不少于 4G ...
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...
- Docker 部署SpringBoot项目不香吗?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...
- docker部署springboot_Docker+SpringBoot快速构建和部署应用
前言 Docker技术发展为当前流行的微服务提供了更加便利的环境,使用SpringBoot+Docker部署和发布应用,其实也是一件比较简单的事情.当前,前提是得有Docker的基础. 构建一个Spr ...
- docker初体验:docker部署nginx负载均衡集群
Docker 是一个用于开发,交付和运行应用程序的开放平台.Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件.今天来为大家演示一下docker部署nginx负载均衡集群 环境 ce ...
- docker初体验:docker部署nginx服务
Docker 是一个用于开发,交付和运行应用程序的开放平台.Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件.今天来为大家演示一下docker部署nginx 环境 centos7 ...
- Docker系列 四.Docker部署SpringBoot
四.Docker部署SpringBoot 环境&工具: 阿里云轻量级服务器.CentOS 7系统.FinalShell(其他连接客户端也可以).IDEA 1. 创建springboot项目 这 ...
- Docker部署文档
Docker部署文档 目录 Docker部署文档 1 一.什么是Docker 3 1.1Docker简介 3 1.2对比传统虚拟机总结 4 1.3Docker通常用于如下场景: 5 1.4基本概念 5 ...
- Docker部署Zookeeper集群
Docker部署Zookeeper集群 官方网站: http://zookeeper.apache.org/ http://zookeeper.apache.org/doc/r3.4.8/zookee ...
- 部署go的web应用_使用Docker部署Go Web应用
为什么需要Docker? 使用docker的主要目标是容器化.也就是为你的应用程序提供一致的环境,而不依赖于它运行的主机. 想象一下你是否也会遇到下面这个场景,你在本地开发了你的应用程序,它很可能有很 ...
最新文章
- CTFshow php特性 web127
- 弱电工程数据中心计算机房内布线
- C# 获取并判断操作系统版本,解决Win10、 Windows Server 2012 R2 读取失败的方案
- 【算法】漫画:如何找到链表的倒数第n个结点?
- 微信小程序 最全 生成带参数二维码
- 综述 | 知识图谱实体链接:一份“由浅入深”的综述
- win10下VS2013+OpenCV2.4.9环境配置
- 关于cocos2dx导入安卓项目至eclipse的诸多问题
- Vue.js 入门案例
- js--小结⑥---typeof
- VMware虚拟机下网络连接的三种模式
- copy 和 deepcopy的区别
- 线性系统大作业——0.一阶和二阶倒立摆建模与控制系统设计
- Oracle11g的安装及删除
- word 空格变删除 问题及解决
- 自体验谷歌浏览器插件推荐
- Ubuntu 无法播放视频
- 29转换为8位二进制的转换过程
- 遇到不认识的字怎么办
- Linux 已修改ip地址(ONBOOT=yes),但是不显示ip地址