麦克斯仇
Think different
159
文章
27970
阅读
首页
INDEX
文章
ARTICLE
关于
ABOUT
Zipkin服务端安装教程(Jar方式、Docker方式以及Elasticsearch数据持久化)
创建日期:
2021/08/12
修改日期:
2023/09/24
Linux
Docker
Windows
Elasticsearch
Zipkin
官方文档: - [https://zipkin.io](https://zipkin.io) - [https://github.com/openzipkin/zipkin](https://github.com/openzipkin/zipkin) - [https://github.com/openzipkin/zipkin-dependencies](https://github.com/openzipkin/zipkin-dependencies) 参考教程: - [Zipkin服务端搭建使用教程1(分别使用jar包、镜像方式启动Zipkin Server)](https://www.hangge.com/blog/cache/detail_2807.html) - [Zipkin服务端搭建使用教程2(使用MySQL储存数据)](https://www.hangge.com/blog/cache/detail_2809.html) - [Zipkin服务端搭建使用教程3(使用Elasticsearch储存数据)](https://www.hangge.com/blog/cache/detail_2810.html) - [Spring Cloud Alibaba 实战(十三) - Sleuth调用链监控](https://segmentfault.com/a/1190000021305233) # 下载 `zipkin`分为服务端和依赖分析,如果是开发环境直接运行不做数据持久化,则只需要服务端 ## Jar包 > 主程序 - 最新版本:[https://search.maven.org/remote_content?g=io.zipkin&a=zipkin-server&v=LATEST&c=exec](https://search.maven.org/remote_content?g=io.zipkin&a=zipkin-server&v=LATEST&c=exec) - 指定版本:[https://repo1.maven.org/maven2/io/zipkin/zipkin-server/](https://repo1.maven.org/maven2/io/zipkin/zipkin-server/),进入需要的版本,下载`zipkin-server-x.x.x-exec.jar` > 依赖分析 - 最新版本:[https://search.maven.org/remote_content?g=io.zipkin.dependencies&a=zipkin-dependencies&v=LATEST](https://search.maven.org/remote_content?g=io.zipkin.dependencies&a=zipkin-dependencies&v=LATEST) - 指定版本:[https://repo1.maven.org/maven2/io/zipkin/dependencies/zipkin-dependencies/](https://repo1.maven.org/maven2/io/zipkin/dependencies/zipkin-dependencies/) ## Docker镜像 > 主程序 ```bash # 下载最新版 docker pull openzipkin/zipkin:latest # 下载指定版本 docker pull openzipkin/zipkin:2.23.2 ``` > 依赖分析 ```bash # 下载最新版 docker pull openzipkin/zipkin-dependencies:latest # 下载指定版本 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/` # 开发环境(无数据持久化) 只需要启动服务端,数据存储在内存中,自动完成依赖分析。 > Jar ```bash java -jar zipkin-server-2.23.2-exec.jar ``` > Docker ```bash docker run -d --name zipkin -p 9411:9411 openzipkin/zipkin ``` # 生产环境(`Elasticsearch`数据持久化) Elasticsearch安装教程 - [CentOS7安装Elasticsearch](https://maxqiu.com/article/detail/53) - [Docker常用镜像:Elasticsearch](https://maxqiu.com/article/detail/54) 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环境可用 ### 启动 推荐写成脚本,方便后面重启等动作,具体参数根据实际情况进行修改 > Jar ```bash #!/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 ```bash #!/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环境) 参数需要使用环境变量设置! ```bash #!/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`设置环境变量之后运行 ```bat set STORAGE_TYPE=elasticsearch set ES_HOSTS=http://127.0.0.1:9200 set ES_INDEX=xxx-zipkin set ES_INDEX_SHARDS=1 set ES_INDEX_REPLICAS=0 C:\development\jdk8\bin\java -jar zipkin-dependencies-2.6.3.jar ``` > Docker ```bash #!/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定时任务](https://maxqiu.com/article/detail/22) ```bash # 每日凌晨计算昨天 5 0 * * * /work/zipkin/dependencies.sh `date -u -d '1 day ago' +%F` & # 每小时计算截止当前时间 1 1-23 * * * /work/zipkin/dependencies.sh & ```
118
全部评论