> 文档中心 > Docker搭建Zipkin,实现数据持久化到Mysql、ES

Docker搭建Zipkin,实现数据持久化到Mysql、ES

目录

  • 1、拉取镜像
  • 2、启动
  • 3、访问测试
  • 4、UI页面介绍
  • 5、持久化配置
    • 5.1 持久化到Mysql
    • 5.2 持久化到ES

1、拉取镜像

拉取时最好指定版本,可用在git查看相应版本们,参考: https://github.com/openzipkin/zipkin

 # 拉取时最好带上版本号,比如2.21.7docker 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

3、访问测试

访问地址:162.11.15.114:9411
Docker搭建Zipkin,实现数据持久化到Mysql、ES

4、UI页面介绍

Docker搭建Zipkin,实现数据持久化到Mysql、ES
Docker搭建Zipkin,实现数据持久化到Mysql、ES
Docker搭建Zipkin,实现数据持久化到Mysql、ES

5、持久化配置

Zipkin Server默认会将追踪数据信息保存到内存,在重启服务后追踪数据将不存在,Zipkin支持将追踪数据持久化到mysql数据库或elasticsearch中。

持久化需要注意Mysql与ES的版本,在https://github.com/openzipkin/zipkin,可以进行查看,如下:
在这里插入图片描述

5.1 持久化到Mysql

1、创建数据库,比如zipkin

2、创建表,语句参考:https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql-v1/src/main/resources/mysql.sql
Docker搭建Zipkin,实现数据持久化到Mysql、ES
3、修改启动命令
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

在这里插入图片描述
4、验证:
启动zipkin-server并且进行请求,再次重启zipkin-server,可以看见依然存在请求链路录记录,并且mysql表中存在记录。

5.2 持久化到ES

持久化到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的用户名和密码