【Docker】Docker+Zipkin+Elasticsearch+Kibana部署分布式链路追踪

文章目录

  • 1. 组件介绍
  • 2. 服务整合
    • 2.1. 前提:安装好Elaticsearch和Kibana
    • 2.2. 再整合Zipkin

点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情)

本文主要讨论在Elasticsearch和Kibana安装好合适版本的前提下,继续整合Zipkin。

1. 组件介绍

一般的,它们的工作过程是这样的:Spring Cloud微服务把调用链路的日志发送给Zipkin,Zipkin把数据发送给Elasticsearch进行保存,Kibana图形化显示Elasticsearch的数据。

Zipkin和Elaticsearch都可以单独使用,但是Zipkin是把数据保存在内存中的,重启后数据消失,所以通常跟Elasticsearch搭配把数据保存在Elasticsearch中,Kibana是可视化平台必须需要跟Elaticsearch搭配。

单独安装可参考Docker单独安装Elaticsearch、Docker单独安装Zipkin。

  • **Elasticsearch:**Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
  • Kibana:Kibana是一款适用于Elasticsearch的数据可视化和管理工具,可以提供实时的直方图、线形图、饼状图和地图。支持用户安全权限体系,支持各种纬度的插件,通常搭配Elasticsearch、Logstash一起使用。
  • **Zipkin:**Zipkin是Twitter的一个开源项目,可以用来获取和分析Spring Cloud Sleuth中产生的请求链路跟踪日志,它提供了Web界面来帮助我们直观地查看请求链路跟踪信息。常用语微服务的调用链路跟踪。

2. 服务整合

2.1. 前提:安装好Elaticsearch和Kibana

在安装好Elaticsearch和Kibana基础上再来整合Zipkin。Docker下安装Elasticsearch和Kibana,Docker安装Kibana服务

  • 安装启动Elasticsearch
# 
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
-e "discovery.type=single-node" \
-e "cluster.name=elasticsearch" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m" \
-d "docker.elastic.co/elasticsearch/elasticsearch:6.6.2"
  • 安装启动Kibana
# 
docker run -d --name kibana -p 5601:5601 \
--link elasticsearch:elasticsearch \
kibana:6.6.2

2.2. 再整合Zipkin

Elasticsearch的版本和Kibana的版本要求一致,Zipkin的版本不做要求。安装启动好Elasticsearch和Kibana之后,继续把Zipkin整合进来。下面以Elasticsearch的6.6.2、Kibana的6.6.2、Zipkin为例来整合:

  • Docker启动Zipkin连接Elasticsearch,如下:
docker run -d --name zipkin -p 9411:9411 \
-e STORAGE_TYPE=elasticsearch \
-e ES_HOSTS=http://192.168.1.6:9200 \
openzipkin/zipkin

注:其中的ip地址填写你自己的主机ip地址

  • 查看Zipkin的日志
docker logs -f zipkin
  • Zipkin页面访问地址:http://localhost:9411,点击查询几下

  • 查看Elasticsearch日志有zipkin字样的也就基本没啥问题了
docker logs -f elasticsearch

  • 都安装好之后,下一次的启动顺序是有要求的,先要启动Elasticsearch,如下:
docker start elasticsearch
docker start zipkin
docker start kibana
  • 如果发生了微服务间的分布式调用,通过Kibana也是可以看到调用链路的日志信息的,如下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/20408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv rtsp 硬件解码

讨论使用opencv的reader 硬件解码的方案有太多种,如果使用ffmpeg硬件解码是最方便的,不方便的是把解码过后的GPU 拉到 CPU 上,再使用opencv的Mat 从cpu 上上载到gpu上,是不是多了两个过程,应该是直接从GPU mat 直接去…

c# COM组件原理

COM(Component Object Model)是一种微软的软件组件技术,用于实现软件组件之间的互操作性。它是一种二进制接口标准,允许不同的软件组件在不同的进程中进行通信。COM组件可以用多种编程语言编写,并且可以在多个应用程序…

rust报错“Utf8Error { valid_up_to: 1, error_len: Some(1) } }”

这个错误通常表示在尝试将字节序列解码为UTF-8字符时出现问题。它指出在索引1处发现了无效的字节序列,并且错误的长度为1个字节。 要解决这个问题,你可以尝试以下几种方法: 检查你的输入数据是否包含无效的字节序列。你可以使用一些调试工具…

node npm 一些小工具

1.npm nrm 换源 npm i -g nrmnrm 其实就是 NPM registry manager,管理 NPM 源的命令行工具。 $ nrm lsnpm ---------- https://registry.npmjs.org/yarn --------- https://registry.yarnpkg.com/tencent ------ https://mirrors.cloud.tencent.com/npm/cnpm -----…

洛谷 P1613 跑路 Floyd

原题链接: 跑路 - 洛谷 解题思路: 如果u到v之间有一条长度为2^t的路径,那就把dis[u][v]改为1,所以我们先结合倍增法跑一遍floyd,得到新图,然后在新图上再跑一次最短路,这次可以用任何的最短路…

数实融合 产业共创 | 竹云受邀出席“2023湾区数字科技50人论坛”

7月29日,“2023湾区数字科技50人论坛”在深圳湾科技生态园圆满举行!本届论坛由深圳市科学技术协会指导,中国鲲鹏产业源头创新中心、湾盟产业创新服务中心主办,深圳市金融攻关基地、广东赛迪工业和信息化研究院、香港科技大学深港协…

MySQL数据库备份与恢复

在任何数据库环境中,总会有不确定的意外情况发生,比如停电,计算机系统的各种软硬件故障,认为破坏,管理员误操作等是不可避免的,这些情况可能会导致 数据的丢失, 服务器瘫痪 等严重后果。存在多个…

STM32CubeMX配置定时器PWM--保姆级教程

———————————————————————————————————— ⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩最近在开发一个STM32H723ZGT6的板子,使用STM32CUBEMX做了很多驱动&#x…

android NFC 从0到一

NFC intent action ACTIVITY_INTENT_ACTION 类型 作用 优先级 ACTION_NDEF_DISCOVERED 标签中含有NDEF数据且为公认类型 高 ACTION_TECH_DISCOVERED 标签中没有NDEF数据却是已定义的标签技术 中 ACTION_TAG_DISCOVERED 前两个action都没有启动&#xff0c…

【Python】从同步到异步多核:测试桩性能优化,加速应用的开发和验证

目录 测试工作中常用到的测试桩mock能力 应用场景 简单测试桩 http.server扩展:一行命令实现一个静态文件服务器 性能优化:使用异步响应 异步响应 能优化:利用多核 gunicorn 安装 gunicorn 使用 gunicorn 启动服务 性能优化&#…

Spring Boot 常见的底层注解剖析

Spring Boot 是一个用于创建独立的、基于Spring框架的Java应用程序的框架。它提供了许多注解,用于配置和定制应用程序的行为。以下是一些常见的Spring Boot底层注解的剖析: 常见的Spring Boot底层注解的剖析 SpringBootApplication:这是一个…

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28‘ not found

某项目中,我要给别人封装一个深度学习算法的SDK接口,运行在RK3588平台上,然后客户给我的交叉编译工具链是 然后我用他们给我的交叉编译工具链报下面的错误: aarch64-buildroot-linux-gnu-gcc --version /data/chw/aarch64/bin/cca…

使用idea实现git操作大全(在项目开发中遇到的实际情况

使用idea实现git操作大全(在项目开发中遇到的实际情况) 1.安装git插件2.在开发中切记拉一个自己的分支 1.安装git插件 2.在开发中切记拉一个自己的分支 选中需要拉的分支,右键该分支,选中new breach from “分支”,点…

Permute 3 for mac音视频格式转换

Permute是一款Mac平台上的媒体格式转换软件,由Chaotic Software开发。它可以帮助用户快速地将各种音频、视频和图像文件转换成所需格式,并提供了一些常用工具以便于用户进行编辑和处理。 Permute的主要特点包括: - 支持大量格式:支…

小程序安全性加固:如何保护用户数据和防止恶意攻击

第一章:引言 在当今数字化时代,移动应用程序的使用已经成为人们日常生活中的重要组成部分。小程序作为一种轻量级的应用程序形式,受到了广泛的欢迎。然而,随着小程序的流行,安全性问题也日益凸显。用户数据泄露和恶意攻…

flask中写一个基础的sqlHelper类

写一个SQLHelper类: from flask_sqlalchemy import SQLAlchemydb SQLAlchemy()class SQLHelper:staticmethoddef add(record):db.session.add(record)return SQLHelper.session_commit()staticmethoddef add_all(records):db.session.add_all(records)return SQLH…

STM32 DMA

DMA介绍 DMA,Direct Memory Access,即直接存储器访问。 DMA传输,将数据从一个地址空间复制到另一个地址空间。(内存(程序里定义的数组)->外设(串口、SPI等外设的数据寄存器)、外…

【MySQL】DDL和DML

4,DDL:操作数据库 我们先来学习DDL来操作数据库。而操作数据库主要就是对数据库的增删查操作。 4.1 查询 查询所有的数据库 SHOW DATABASES; 运行上面语句效果如下: 上述查询到的是的这些数据库是mysql安装好自带的数据库,我们以后不要操…

MyBatis动态sql传参的问题

在使用mysql动态查询时遇到的一个问题&#xff0c;查询语句如下&#xff1a; WHERE11 <!-- 使用动态SQL进行条件判断 --> <if test"status ! null and status ! ">AND u.STATUS #{status} </if> 其中 STATUS是一个Integer型枚举值&#xff08;0…

django实现部门表的增删改查界面

1、前期准备 部署好mysql数据库&#xff0c;创建好unicom数据库下载好bootstap的插件下载好jquery的插件下载好mysqlclient-1.4.6-cp36-cp36m-win_amd64.whl的安装包&#xff0c;根据python的版本下载 2、创建项目 在pycharm中创建项目 在pycharm的终端创建虚拟环境 py -m v…