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
4、UI页面介绍
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
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的用户名和密码 |