使用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM