【教程分享】Docker搭建Zipkin,实现数据持久化到MySQL、ES

这篇具有很好参考价值的文章主要介绍了【教程分享】Docker搭建Zipkin,实现数据持久化到MySQL、ES。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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/

【教程分享】Docker搭建Zipkin,实现数据持久化到MySQL、ES

4 Web UI

请求列表:

【教程分享】Docker搭建Zipkin,实现数据持久化到MySQL、ES

点击第一项,看看详情页。

AUTH-SERVICE: get /error 入库服务名称及请求方式

【教程分享】Docker搭建Zipkin,实现数据持久化到MySQL、ES

5 持久化

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

持久化需注意MySQL/ES版本,在https://github.com/openzipkin/zipkin,可查看:

【教程分享】Docker搭建Zipkin,实现数据持久化到MySQL、ES

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 发布!文章来源地址https://www.toymoban.com/news/detail-675783.html

到了这里,关于【教程分享】Docker搭建Zipkin,实现数据持久化到MySQL、ES的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker容器数据持久化

    Docker容器数据卷:volumes        数据卷是经过特殊设计的目录,可以绕过联合文件系统,为一个或者多个容器提供访问,数据卷设计的目的,在于数据的永久存储,它完全独立于容器的生存周期,因此,docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集

    2024年02月10日
    浏览(53)
  • docker (五)-docker存储-数据持久化

    将数据存储在容器中,一旦容器被删除,数据也会被删除。同时也会使容器变得越来越大,不方便恢复和迁移。 将数据存储到容器之外,这样删除容器也不会丢失数据。一旦容器故障,我们可以重新创建一个容器,将数据挂载到容器里,就可以快速的恢复。 volume 卷 卷存储在

    2024年02月20日
    浏览(48)
  • Docker 数据持久化方案详解

    目录 一、Docker数据持久化概述 1.1联合文件系统 1.2容器的数据卷 1.2.1 什么是数据卷 1.2.2 数据卷特点 1.2.3 Docker提供三种方式将数据从宿主机挂载到容器 二、 Docker持久化方案 2.1 查看volume 基本命令使用方法 2.2 volume持久化方案 2.2.1volume简介 2.2.2.volume特点 2.2.3 挂载指定volume 2.

    2024年02月07日
    浏览(44)
  • Docker啥是数据持久化?

    ​ 在容器层的 UnionFS(联合文件系统)中对文件/目录的任何修改,无论是手工修改还是容器在运行过程中的修改,在该容器丢失或被删除后这些修改将全部丢失。即这些修改是无法保存下来的。若要保存下来这些修改,通常有两种方式: 定制镜像持久化:将这个修改过的容

    2024年02月15日
    浏览(41)
  • 【Docker】Docker 部署 Mysql 并设置数据持久化

    我们使用Docker的目的就是图它方便下载部署,不用常规的经历下载、配置、安装等等繁琐的步骤。但是与此同时Docker也存在一些缺点,像删除容器后数据就都没有了。很显然,不能持久化对于需要数据持久化的MySQL数据库来说是不能接受的,那有没有方式可以解决。 有,通过

    2024年02月10日
    浏览(33)
  • docker安装redis并持久化数据

    这里是没有任何的密码 密码是刚才设置的Maqiang

    2024年02月11日
    浏览(44)
  • Docker学习路线5:在 Docker 中实现数据持久化

    Docker 可以运行隔离的容器,包括应用程序和其依赖项,与主机操作系统分离。默认情况下,容器是临时的,这意味着容器中存储的任何数据在终止后都将丢失。为了解决这个问题并在容器生命周期内保留数据,Docker 提供了各种数据持久化方法。 Docker 卷 绑定挂载 Docker tmpfs

    2024年02月16日
    浏览(43)
  • Redis 7 教程 数据持久化

            RDB 持久化以指定的时间间隔执行数据集的时间点快照 。         把某一时刻的数据和状态以文件的形式写到磁盘上,即使出现故障宕机,快照文件也不会丢失,数据的可靠性得到保证。快照文件就是RDB(Redis DataBase)文件(dump.rdb)          在指定的时间间隔内将

    2024年02月11日
    浏览(41)
  • Docker Swarm NFS 数据持久化存储

    可参考我前面的博客《基于 Linux 的 Docker Swarm 集群部署及应用》 本次实验: master :192.168.56.142 work1 :192.168.56.132 work2 :192.168.56.180 可参考我前面的博客《构建NFS-FTP文件共享存储》 本次实验: NFS IP :192.168.56.141 Shared Dir :/data/sharedir 3.1 通过 Volume 3.1.1 创建 Volume 1、创建 Do

    2024年02月04日
    浏览(42)
  • 【云原生】第八篇--Docker容器数据持久化存储机制

    物理机或虚拟机数据持久化存储 由于物理机或虚拟机本身就拥有大容量的磁盘,所以可以直接

    2023年04月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包