乐趣区

关于后端:教程分享Docker搭建Zipkin实现数据持久化到MySQLES

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:9200
openzipkin/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 公布!

退出移动版