zoukankan      html  css  js  c++  java
  • 使用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 是否启动成功。

    常见问题

    Reference

  • 相关阅读:
    面试题:链表倒数第k个节点
    面试题:重建二叉树
    面试题:从尾到头打印链表
    面试题:第一个出现的字符位置
    面试题:调整数组顺序
    面试题:有限制条件的求和
    面试题:Fibonacci数列
    面试题:旋转数组的最小数字
    面试题:替换空格
    EndNote8破解版下载安装
  • 原文地址:https://www.cnblogs.com/weihanli/p/deploy-skywalking-via-docker.html
Copyright © 2011-2022 走看看