使用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 是否启动成功。

常见问题

Reference

使用docker部署skywalking的更多相关文章

  1. 基于docker部署skywalking实现全链路监控

    一.概述 简介 skywalking是一个开放源码的,用于收集.分析,聚合,可视化来自于不同服务和本地基础服务的数据的可观察的平台,skywalking提供了一个简单的方法来让你对你的分布式系统甚至是 ...

  2. docker部署skywalking

    https://www.cnblogs.com/xiao987334176/p/13530575.html

  3. 使用 chart 部署 skywalking

    使用 chart 部署 skywalking 本文主要讲述的是如何使用 Helm Charts 将 SkyWalking 部署到 Kubernetes 集群中,相关文档可以参考skywalking-k ...

  4. ASP.NET Core开发-Docker部署运行

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  5. Docker部署Hadoop集群

    Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...

  6. 程序开发使用docker部署

    我们公司自己研发了一套 grand-line 系统,使用 docker 来部署项目. 我是第一批小白鼠,一开始网络差,build 一次要半个小时,连接进入 web shell 也很慢,部署一个微信项目 ...

  7. 我使用celery以及docker部署遇到的问题

    首先我本机测试时没有问题的,但是在线上docker中,任务一直显示 "Sending due task".超时的任务是 django orm update 操作,本地不会出现这样的 ...

  8. Docker部署SDN环境

    2014-12-03 by muzi Docker image = Java class Docker container = Java object 前言 5月份的时候,当我还是一个大学生的时候,有 ...

  9. 在生产环境使用Docker部署应用

    导读 Docker现在越来越流行,但是真正在生产环境部署Docker还是个比较新的概念,还没有一个标准的流程.作者是ROR的程序员,作者结合平时的部署经验,联系Docker的特点,向大家分享了其在生产 ...

随机推荐

  1. [Swift]LeetCode27. 移除元素 | Remove Element

    Given an array nums and a value val, remove all instances of that value in-place and return the new ...

  2. [Swift]LeetCode486. 预测赢家 | Predict the Winner

    Given an array of scores that are non-negative integers. Player 1 picks one of the numbers from eith ...

  3. python 模拟豆瓣登录(豆瓣6.0)

    最近在学习python爬虫,看到网上有很多关于模拟豆瓣登录的例子,随意找了一个试了下,发现不能运行,对比了一下代码和豆瓣网站,发现原来是豆瓣网站做了修改,增加了反爬措施. 首先看下要模拟登录的网站: ...

  4. 关于Python pandas模块输出每行中间省略号问题

    关于Python数据分析中pandas模块在输出的时候,每行的中间会有省略号出现,和行与行中间的省略号....问题,其他的站点(百度)中的大部分都是瞎写,根本就是复制黏贴以前的版本,你要想知道其他问题 ...

  5. HBase之CF持久化系列(续1)

    这一节本来打算讲解HRegion的初始化过程中一些比较复杂的流程.不过,考虑前面的博文做的铺垫并不够,因此,在这一节,我还是特意来介绍HBase的CF持久化.关于这个话题的整体流程性分析在博文< ...

  6. nginx的configure流程

    configure配置 nginx的编译过程,第一步是configure.我们使用 --help可以看到configure的很多配置. configure的过程做的事情其实就是检测环境,然后根据环境生 ...

  7. 【JVM虚拟机】(4)---性能调优

    JVM性能调优 一.调优策略 对于GC的性能主要有2个方面的指标:吞吐量throughput(工作时间不算gc的时间占总的时间比)和暂停pause(gc发生时app对外显示的无法响应). 1.调优的目 ...

  8. asp.net core 系列 2 启动Startup类介绍

    一.Startup类 ASP.NET Core 应用是一个控制台应用,它在其 Program.Main 方法中创建 Web 服务器.其中Main方法是应用的托管入口点,Main 方法调用 WebHos ...

  9. Flask 启动报错 error: [Errno 10053]

    首先这不是 Flask 库的异常,该报错经常出现在 Python2 中. 问题所在:Python2 中 SocketServer 模块的问题. 解决办法: 不要用自带的 Server,通过 gunic ...

  10. 从jvm角度看懂类初始化、方法重写、重载。

    类初始化 在讲类的初始化之前,我们先来大概了解一下类的声明周期.如下图 类的声明周期可以分为7个阶段,但今天我们只讲初始化阶段.我们我觉得出来使用和卸载阶段外,初始化阶段是最贴近我们平时学的,也是笔试 ...