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

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

时间:2023-08-27 21:22:51浏览次数:45  
标签:zipkin -- Zipkin 默认 化到 9411 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/

image-20230827204323093

4 Web UI

请求列表:

image-20230827205247092

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

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

image-20230827205413561

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 发布!

标签:zipkin,--,Zipkin,默认,化到,9411,MySQL,ES
From: https://www.cnblogs.com/JavaEdge/p/17660870.html

相关文章

  • qt5 odbc mysql 开发配置
    qt5应用odbc使用mysql 要点apt-getinstallmysql-serverapt-getinstallmysqlclient-dev配置mysql-server可以安装apt-getinstallmysql-workbenchapt-getinstallmysql-connector-odbc配置/etc/odbc.ini/etc/odbcinst.iniapt-getinstallunixodbcisqlDNS-v......
  • mysql 深入学习三 索引优化二 (索引下推、trace工具)
    使用上一篇的表并插入测试数据#‐‐插入一些示例数据dropprocedureifexistsinsert_emp;delimiter;;createprocedureinsert_emp()begindeclareiint;seti=1;while(i<=100000)doinsertintoemployees(name,age,position)values(CONCA......
  • mysql数据库连接密码的修改
    使用MySQL创建新连接时,密码是一个非常重要的组成部分。默认情况下,MySQL会生成一个随机的密码,该密码由一串随机的字符组成,包括数字、字母和其它特殊字符。在安装MySQL时,您可以选择使用自己的密码,也可以使用默认密码。默认密码是MySQL在安装时为root用户设置的密码。在许多情况下,建......
  • 【MySQL 8.0】新特性:函数索引
    (root@node01)>selectcount(*)fromcustomerwhereyear(c_since)=2020;+----------+|count(*)|+----------+|702|+----------+1rowinset(0.46sec)(root@node01)>explainselectcount(*)fromcustomerwhereyear(c_since)=2020;+----+-......
  • MySQL事务
    2023.8.261.事务的四大特性A原子性C一致性I隔离性D持久性2.会出现的问题脏读:读到了另一个事物中未提交的修改不可重复读:一个事务前后两次因为另一个事务做了修改或导致读到的数据不同幻读:一个事务前后两次因为另一个事务做了新增而读取到了......
  • MySQL.js用法
    mysql.js是一个用于连接MySQL数据库的JavaScript库。以下是一些常用的方法及其详细参数说明: 1.创建连接对象: ```javascriptconstmysql=require('mysql');constconnection=mysql.createConnection({ host:'localhost',//数据库地址 user:'root',//数据......
  • MySQL 8与复制可观察性
    许多老MySQLDBA都使用showreplicastatus中的seconds_behind_source来了解(异步)复制的状态和正确执行情况。不过,MySQL复制已经有了很大的发展,复制团队已经努力为MySQL的所有复制方式提供了大量有用的信息。例如,增加了并行复制、组复制......所有这些信息都是老的showreplica......
  • mysql中truncate表对auto_increment的影响
    在mysql中,如果对表执行truncate操作后,会重新设置auto_increment的值,比如:root@localhost(none)>useabce;Databasechangedroot@localhostabce>createtabletest(idintnotnullauto_incrementprimarykey,ageint);QueryOK,0rowsaffected(0.02sec)root@localho......
  • 【MySQL 8.0】新特性:ALTER TABLE … ALGORITHM=INSTANT
    MySQL8.0.29之前,在线DDL操作中即时添加列只能添加在表的最后一列MySQL8.0.29扩展了对ALTERTABLE…ALGORITHM=INSTANT的支持:用户可以在表的任何位置即时添加列、即时删除列、添加列时评估行大小限制(root@node01)>altertablecustomeraddcolumnc_commentvarcha......
  • rhel 7.3搭建MySQL 5.7.21(一主一从GTID半同步复制)
    文档课题:rhel7.3搭建MySQL5.7.21(一主一从GTID半同步复制)数据库:MySQL5.7.21系统:rhel7.3环境:角色 主机名 IP 操作系统 server_id MySQL安装包master mysql-leo-master 192.168.133.111 rhel7.3 1 Percona-Server-5.7.21-20-Linux.x86_64.ssl101.tar.gzslave mysql-leo-s......