1 拉取镜像
指定版本,在git查看相应版本,参考: https://github.com/openzipkin/zipkin
如2.21.7
docker pull openzipkin/zipkin:2.21.7
2 启动
Zipkin默认端口为9411。启动时通过-e server.port=xxxx设置指定端口
docker run --name zipkin-server -d --restart=always -p 9411:9411 openzipkin/zipkin:2.21.7
--restart=always
能够让容器在退出后主动重启,保障可用性-p 9411:9411
是端口映射,将容器外部默认的 9411 端口映射到宿主机的 9411 端口,不便拜访- 指定镜像版本号
openzipkin/zipkin:2.21.7
是个好习惯,防止应用默认 latest 标签导致不可控的问题 - 如果须要调整配置,能够应用
-e
参数设置环境变量,例如:-e JAVA_OPTS="-Xms512m -Xmx512m"
来管制 Zipkin 的内存 - 数据默认寄存在内存中,倡议通过
-v
参数映射卷长久化数据,防止重启后失落
3 拜访测试
拜访链接:http://localhost:9411/zipkin/
4 Web UI
申请列表:
点击第一项,看看详情页。
AUTH-SERVICE: get /error 入库服务名称及申请形式
5 长久化
Zipkin Server默认将追踪数据信息保留到内存,重启服务后追踪数据将不存在,Zipkin反对将追踪数据长久化到MySQL或ES。
长久化需注意MySQL/ES版本,在https://github.com/openzipkin/zipkin,可查看:
ES组件应用Elasticsearch 5+的性能,但已测试过与Elasticsearch 6-7.x的兼容性。
它将spans存储为Zipkin v2 json,以便与其余工具集成。为扩大,它应用自定义和手动实现的索引组合。
留神:这个存储须要一个Spark job来聚合依赖链接。
5.1 MySQL长久化
① 建数据库
如zipkin
② 建表
语句参考:https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql-v1/src/main/resources/mysql.sql
③ 批改启动命令
Zipkin默认端口9411。
启动时通过-e server.port=xxxx设置指定端口
docker run \--name zipkin-server -d \--restart=always \-p 9411:9411 \-e MYSQL_USER=root \-e MYSQL_PASS=lhzlx \-e MYSQL_HOST=111.229.160.175 \-e STORAGE_TYPE=mysql \-e MYSQL_DB=zipkin \-e MYSQL_TCP_PORT=3316 \openzipkin/zipkin:2.21.7
④ 验证
启动zipkin-server并申请,再次重启zipkin-server,可见仍然存在申请链路录记录,并且MySQL表中存在记录。
5.2 ES长久化
无需建设啥配置信息,只需启动jar时指定ES地址。
将脚本中的启动命令批改为:
docker run \--name zipkin-server -d \-p 9411:9411 \--restart=always \-e STORAGE_TYPE=elasticsearch \-e ES_HOSTS=localhost:9200openzipkin/zipkin:2.21.7
若连贯ES集群,--ES_HOSTS通过逗号宰割,如:--ES_HOSTS=http://1.1.1.1:9200,http://2.2.2.2:9200
连贯ES参数
环境变量 | 形容 |
---|---|
ES_HOSTS | 连贯ES地址,多个由逗号分隔。默认为http://localhost:9200 |
ES_PIPELINE | 指定span被索引之前的pipeline |
ES_TIMEOUT | 连贯ES的超时工夫,单位ms。默认为10000(10S) |
ES_INDEX | Zipkin长久化所应用的索引。默认为zipkin |
ES_DATE_SEPARATOR | Zipkin建设索引的日期分隔符。默认为- |
ES_INDEX_SHARDS | 分片(shard)个数,默认为5个 |
ES_INDEX_REPLICAS | 正本(replica)个数,默认为1个 |
ES_HTTP_LOGGING | ES的日志级别,可选值为BASIC, HEADERS, BODY |
ES_USERNAME/ES_PASSWORD | 登录ES的用户名和明码 |
本文由博客一文多发平台 OpenWrite 公布!