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

news2024/9/22 17:21:39

文章目录

  • 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.coloradmin.cn/o/824035.html

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

相关文章

Spring Security OAuth2.0(7):自定义认证连接数据库

自定义认证连接数据库 首先创建数据库和用户表 CREATE TABLE t_user (id bigint(20) NOT NULL AUTO_INCREMENT,username varchar(64) DEFAULT NULL,password varchar(64) DEFAULT NULL,fullname varchar(255) DEFAULT NULL,mobile varchar(20) DEFAULT NULL,PRIMARY KEY (id)…

【vue】组件使用教训

组件使用 报错组件找不到 These dependencies were not found: 遇见的问题 在使用vue的时候,做了一个统计图的功能,引入了chart。 但是在运行项目的时候,直接报错启动不起来,报错内容是 告诉我依赖找不到,然后还试…

2023年华数杯建模思路 - 案例:退火算法

## 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上,退火(annealing)现象指物体逐渐降温的物理现象,温度愈低&#…

医疗知识图谱问答 ——Neo4j 基本操作

前言 说到问答机器人,就不得不说一下 ChatGPT 啦。一个预训练的大预言模型,只要是人类范畴内的知识,似乎他回答得都井井有条,从写文章到写代码,再到解决零散琐碎的问题,不光震撼到我们普通人,就…

重生之我要学C++第一天

我重生了,今天开始带着上世纪的回忆重新学习C 目录 命名空间(namespace) 输入输出流 缺省参数(默认参数) 函数重载 命名空间(namespace) 新定义命名空间是C为防止对变量,函数&am…

2023年华数杯建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米,宽为12米&#xff0…

版本控制和团队协作:前端工程化的关键要素

文章目录 版本控制系统介绍(如 Git)1. 分布式系统2. 分支管理3. 版本控制4. 快速和高效5. 社区和生态系统 分支管理和团队协作流程1. 主分支2. 功能分支3. 开发工作4. 合并到develop5. 发布准备6. 发布 持续集成与持续部署实践持续集成(CI&am…

LeetCode·每日一题·2681. 英雄的力量·脑筋急转弯

题目 示例 思路 代码 static const int MOD 1e9 7; int cmp(const void *a, const void *b) {return *(int *)a - *(int *)b; } int sumOfPower(int* nums, int numsSize){qsort(nums, numsSize, sizeof(nums[0]), cmp);//排序long long ans 0, s 0;for (int x 0; x <…

C++ 虚函数详解(动态绑定)

动态绑定 虚函数的作用主要是实现了多态的机制。关于多态&#xff0c;简而言之就是用父类型别的指针指向其子类的实例&#xff0c;然后通过父类的指针调用实际子类的成员函数。我们在使用基类的引用&#xff08;指针&#xff09;调用虚函数时&#xff0c;就会发生动态绑定。所…

快速开发人脸识别系统Java版本

简介&#xff1a; 先说下什么是人脸识别系统&#xff1a;举个例子&#xff0c;公司门口有个人脸识别系统&#xff0c;员工站到门口&#xff0c;看着摄像头&#xff0c;大屏幕上会抓拍到你的人脸&#xff0c;然后和公司的员工照片库里的照片比对&#xff0c;比对成功就提示&…

哪些行业适合使用PDM系统

在现代数字化时代&#xff0c;PDM系统&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;以其强大的功能和灵活的特性&#xff0c;成为各个行业提高生产效率和管理水平的得力工具。那么&#xff0c;哪些行业适合使用PDM系统呢&#xff1f;让我们一同深入…

Django使用用户列表的展示和添加

接着上一篇&#xff1a;https://blog.csdn.net/javascript_good/article/details/132027702 来实现用户表的查询和添加 1、创建数据库表 在models.py 中&#xff0c;增加UserInfo类&#xff0c;包括字段姓名、密码、年龄、账号余额、入职时间、所属部门、性别 verbose_name 就…

选读SQL经典实例笔记15_窗口函数

1. 分组 1.1. 把相似的行数据聚集在一起 2. SQL分组的定义 2.1. 数学上的“群”&#xff08;group&#xff09;定义为 (G, •,e)&#xff0c;其中G是一个集合&#xff0c;• 表示G的二进制运算&#xff0c;而e则是G中的成员 2.2. 一个SQL 分组须满足的两个定理 2.2.1. 对于…

计算机毕设 深度学习手势识别 - yolo python opencv cnn 机器视觉

文章目录 0 前言1 课题背景2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存 5 模型训练5.1 修…

好用的Linux远程工具

你好&#xff0c;我是Martin&#xff0c;今天给大家介绍几款主流的远程工具。 远程工具介绍 关于远程连接的用户分类时这样的&#xff0c;通常需要进行远程连接的人有两类&#xff0c;一类是系统管理员&#xff0c;另一类是普通的用户。远程连接工具是一些可以让你通过网络连接…

md5sum

概念作用及原理 md5sum是一种常用的哈希算法&#xff0c;用于计算数据的MD5哈希值。MD5&#xff08;Message Digest Algorithm 5&#xff09;是一种广泛使用的加密散列函数&#xff0c;用于将任意长度的数据映射为固定长度的哈希值&#xff08;通常是128位&#xff09;。这个哈…

html学习5(表单)

1、表单是一个包含表单元素的区域&#xff0c;用于收集用户的输入信息。 2、表单元素是允许用户在表单中输入内容&#xff0c;比如&#xff1a;文本域&#xff08;textarea&#xff09;、下拉列表&#xff08;select&#xff09;、单选框&#xff08;radio-buttons&#xff09…

python解析帆软cpt及frm文件(xml)获取源数据表及下游依赖表

#!/user/bin/evn python import os,re,openpyxl 输入&#xff1a;帆软脚本文件路径输出&#xff1a;帆软文件检查结果Excel#获取来源表 def table_scan(sql_str):# remove the /* */ commentsq re.sub(r"/\*[^*]*\*(?:[^*/][^*]*\*)*/", "", sql_str)# r…

Linux中的file命令:查看文件类型

2023年8月1日&#xff0c;周二上午 目录 简要说明使用方法MIME类型举例说明 简要说明 在Linux中&#xff0c;file命令用于识别文件类型。 file命令可以识别各种类型的文件&#xff0c;包括普通文件、目录、符号链接、设备文件、压缩文件、二进制可执行文件等。 它是一个非常…

Vue 入门和基础语法(一)

一、入门 Vue 不支持 IE8 及以下的版本&#xff0c;因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性&#xff0c;但它支持所有兼容 ECMAScript 5 的浏览器。 1.1、创建 Hello Vue Vue.js 的核心是实现了 MVVM 模式&#xff0c;它扮演的角色就是 ViewModel 层&#xff0c;那…