Zipkin服务端安装教程(Jar方式、Docker方式以及Elasticsearch数据持久化)
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.
2021/08/12 Windows Linux Docker zipkin
官方文档:
参考教程:
zipkin
分为服务端和依赖分析,如果是开发环境直接运行不做数据持久化,则只需要服务端
Docker镜像
# 下载最新版
docker pull openzipkin/zipkin:latest
# 下载指定版本
docker pull openzipkin/zipkin:2.23.2
# 下载最新版
docker pull openzipkin/zipkin-dependencies:latest
# 下载指定版本
docker pull openzipkin/zipkin-dependencies:2.6.3
- 根据官方
GitHub
仓库zipkin-server
目录下的文档说明,zipkin
支持如下数据存储Memory
:建议开发环境用,重启丢失数据MySQL
:官方不推荐使用,仅兼容保留(查询太慢了)Cassandra
:一个开源分布式NoSQL数据库系统,笔者没接触过,不做介绍Elasticsearch
:(PS:就剩它了)
- 当使用数据持久化时,需要运行额外的程序完成依赖关系
- 服务启动后的
UI
界面默认为http://ip:port/zipkin/
开发环境(无数据持久化)
只需要启动服务端,数据存储在内存中,自动完成依赖分析。
java -jar zipkin-server-2.23.2-exec.jar
Docker
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环境可用
推荐写成脚本,方便后面重启等动作,具体参数根据实际情况进行修改
#!/bin/bash
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
#!/bin/bash
docker rm -f zipkin
docker run -d --restart always --name zipkin \
--network xxx-bridge -p 9411:9411 \
-e JAVA_OPTS='-Xms128m -Xmx128m -Xmn32m -Xss512k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m' \
-e STORAGE_TYPE=elasticsearch \
-e ES_HOSTS=elasticsearch:9200 \
-e ES_INDEX=xxx-zipkin \
-e ES_INDEX_SHARDS=1 \
-e ES_INDEX_REPLICAS=0 \
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环境)
参数需要使用环境变量设置!
#!/bin/bash
STORAGE_TYPE=elasticsearch ES_HOSTS=http://127.0.0.1:9200 java -jar zipkin-dependencies-2.6.3.jar $1
补充:Windows环境cmd
命令行需要使用set
设置环境变量之后运行
set STORAGE_TYPE=elasticsearch
set ES_HOSTS=http://127.0.0.1:9200
set ES_INDEX=max-blog-zipkin
set ES_INDEX_SHARDS=1
set ES_INDEX_REPLICAS=0
C:\development\jdk8\bin\java -jar zipkin-dependencies-2.6.3.jar
Docker
#!/bin/bash
docker run --rm --network xxx-bridge \
-e STORAGE_TYPE=elasticsearch \
-e ES_HOSTS=elasticsearch:9200 \
-e ES_INDEX=xxx-zipkin \
-e ES_INDEX_SHARDS=1 \
-e ES_INDEX_REPLICAS=0 \
openzipkin/zipkin-dependencies:2.6.3 $1
crontab
相关教程:crontab定时任务
# 每日凌晨计算昨天
5 0 * * * /work/zipkin/dependencies.sh `date -u -d '1 day ago' +%F` &
# 每小时计算截止当前时间
1 1-23 * * * /work/zipkin/dependencies.sh &
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK