5

Zipkin服务端安装教程(Jar方式、Docker方式以及Elasticsearch数据持久化)

 2 years ago
source link: https://maxqiu.com/article/detail/115
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Zipkin服务端安装教程(Jar方式、Docker方式以及Elasticsearch数据持久化)
Zipkin服务端安装教程(Jar方式、Docker方式以及Elasticsearch数据持久化)

2021/08/12  Windows  Linux  Docker  zipkin

官方文档:

参考教程:

zipkin分为服务端和依赖分析,如果是开发环境直接运行不做数据持久化,则只需要服务端

Docker镜像

  1. # 下载最新版
  2. docker pull openzipkin/zipkin:latest
  3. # 下载指定版本
  4. docker pull openzipkin/zipkin:2.23.2
  1. # 下载最新版
  2. docker pull openzipkin/zipkin-dependencies:latest
  3. # 下载指定版本
  4. docker pull openzipkin/zipkin-dependencies:2.6.3
  1. 根据官方GitHub仓库zipkin-server目录下的文档说明,zipkin支持如下数据存储
    • Memory:建议开发环境用,重启丢失数据
    • MySQL:官方不推荐使用,仅兼容保留(查询太慢了)
    • Cassandra:一个开源分布式NoSQL数据库系统,笔者没接触过,不做介绍
    • Elasticsearch:(PS:就剩它了)
  2. 当使用数据持久化时,需要运行额外的程序完成依赖关系
  3. 服务启动后的UI界面默认为http://ip:port/zipkin/

开发环境(无数据持久化)

只需要启动服务端,数据存储在内存中,自动完成依赖分析。

  1. java -jar zipkin-server-2.23.2-exec.jar

Docker

  1. docker run -d --name zipkin -p 9411:9411 openzipkin/zipkin

生产环境(Elasticsearch数据持久化)

Elasticsearch安装教程

PS:Docker环境需要创建一个bridge并使用网络,例如docker network create -d bridge xxx-bridge

参数 说明 默认值 备注 QUERY_PORT 端口 9411

STORAGE_TYPE 存储类型 mem 可选值:mem,mysql,cassandra3,elasticsearch ES_HOSTS ES连接地址 http://localhost:9200

ES_TIMEOUT 连接超时 10000 单位:毫秒 ES_INDEX 索引名称 zipkin

ES_DATE_SEPARATOR 每日索引名的日期分隔符 -

ES_INDEX_SHARDS 索引分片数量 5

ES_INDEX_REPLICAS 分片副本数量 1

ES_USERNAME ES用户名

ES_PASSWORD ES密码

JAVA_OPTS Java运行参数

仅Docker环境可用

推荐写成脚本,方便后面重启等动作,具体参数根据实际情况进行修改

  1. #!/bin/bash
  2. java -Xms128m -Xmx128m -Xmn32m -Xss512k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -jar zipkin-server-2.23.2-exec.jar --STORAGE_TYPE=elasticsearch --ES_HOSTS=http://127.0.0.1:9200 --ES_INDEX=xxx-zipkin --ES_INDEX_SHARDS=1 --ES_INDEX_REPLICAS=0

Docker

  1. #!/bin/bash
  2. docker rm -f zipkin
  3. docker run -d --restart always --name zipkin \
  4. --network xxx-bridge -p 9411:9411 \
  5. -e JAVA_OPTS='-Xms128m -Xmx128m -Xmn32m -Xss512k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m' \
  6. -e STORAGE_TYPE=elasticsearch \
  7. -e ES_HOSTS=elasticsearch:9200 \
  8. -e ES_INDEX=xxx-zipkin \
  9. -e ES_INDEX_SHARDS=1 \
  10. -e ES_INDEX_REPLICAS=0 \
  11. openzipkin/zipkin:2.23.2

以下参数需要与服务端相同

参数 说明 默认值 STORAGE_TYPE 存储类型 ES_HOSTS ES连接地址 http://localhost:9200 ES_INDEX 索引名称 zipkin ES_DATE_SEPARATOR 每日索引名的日期分隔符 - ES_INDEX_SHARDS 索引分片数量 5

ES_INDEX_REPLICAS 分片副本数量 1

ES_USERNAME ES用户名

ES_PASSWORD ES密码

PS:默认情况下,仅分析今天的数据。可以通过YYYY-mm-dd格式的参数解析指定日期

依赖分析需要定时任务配合,建议每日凌晨统计昨天的结果,每小时统计截止当前结果。

推荐将下面的命令写成脚本,然后使用Linux自带的crontab定时任务自动执行

Jar(仅支持jdk1.8环境)

参数需要使用环境变量设置!

  1. #!/bin/bash
  2. STORAGE_TYPE=elasticsearch ES_HOSTS=http://127.0.0.1:9200 java -jar zipkin-dependencies-2.6.3.jar $1

补充:Windows环境cmd命令行需要使用set设置环境变量之后运行

  1. set STORAGE_TYPE=elasticsearch
  2. set ES_HOSTS=http://127.0.0.1:9200
  3. set ES_INDEX=max-blog-zipkin
  4. set ES_INDEX_SHARDS=1
  5. set ES_INDEX_REPLICAS=0
  6. C:\development\jdk8\bin\java -jar zipkin-dependencies-2.6.3.jar

Docker

  1. #!/bin/bash
  2. docker run --rm --network xxx-bridge \
  3. -e STORAGE_TYPE=elasticsearch \
  4. -e ES_HOSTS=elasticsearch:9200 \
  5. -e ES_INDEX=xxx-zipkin \
  6. -e ES_INDEX_SHARDS=1 \
  7. -e ES_INDEX_REPLICAS=0 \
  8. openzipkin/zipkin-dependencies:2.6.3 $1

crontab

相关教程:crontab定时任务

  1. # 每日凌晨计算昨天
  2. 5 0 * * * /work/zipkin/dependencies.sh `date -u -d '1 day ago' +%F` &
  3. # 每小时计算截止当前时间
  4. 1 1-23 * * * /work/zipkin/dependencies.sh &

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK