千家信息网

链路追踪工具Zipkin如何安装使用

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章将为大家详细讲解有关链路追踪工具Zipkin如何安装使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言Zipkin 是一个开放源代码分布式的跟踪系统,每
千家信息网最后更新 2025年01月24日链路追踪工具Zipkin如何安装使用

这篇文章将为大家详细讲解有关链路追踪工具Zipkin如何安装使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

前言

Zipkin 是一个开放源代码分布式的跟踪系统,每个服务向zipkin报告计时数据,zipkin会根据调用关系通过Zipkin UI生成依赖关系图。

Zipkin提供了可插拔数据存储方式:In-Memory、MySql、Cassandra以及Elasticsearch。为了方便在开发环境我直接采用了In-Memory方式进行存储,生产数据量大的情况则推荐使用Elasticsearch。

基本操作

Zipkin是一个分布式跟踪系统。它有助于收集解决服务体系结构中的延迟问题所需的时序数据。功能包括该数据的收集和查找。

如果日志文件中有跟踪ID,则可以直接跳至该跟踪ID。否则,您可以基于属性进行查询,例如服务,操作名称,标签和持续时间。将为您总结一些有趣的数据,例如在服务中花费的时间百分比以及操作是否失败。

Zipkin UI还提供了一个依赖关系图,该关系图显示了每个应用程序中跟踪了多少个请求。这对于识别包括错误路径或对不赞成使用的服务的调用在内的汇总行为可能会有所帮助。

构建zipkin服务端

构建zipkin 服务有三种构建方式,Docker容器是推荐方式jar安装源码打包安装

使用docker容器安装运行

docker run -d -p 9411:9411 openzipkin/zipkin#或者增加es存储环境docker run -d -p 9411:9411 \--env STORAGE_TYPE=elasticsearch \--env ES_HOSTS=http://192.168.0.100:9200 \openzipkin/zipkin

使用ElasticSearch进行存储,默认启动方式会将日志数据存在内存中,一旦服务重启会清空数据,建议使用es进行持久化存储。启动示例参数如下:

STORAGE_TYPE=elasticsearch ES_HOSTS=http://192.168.0.100:9200

另外还有一些其它可配置参数

* `ES_HOSTS`: A comma separated list of elasticsearch base urls to connect to ex. http://host:9200.              Defaults to "http://localhost:9200".* `ES_PIPELINE`: Only valid when the destination is Elasticsearch 5+. Indicates the ingest                 pipeline used before spans are indexed. No default.* `ES_TIMEOUT`: Controls the connect, read and write socket timeouts (in milliseconds) for                Elasticsearch Api. Defaults to 10000 (10 seconds)* `ES_MAX_REQUESTS`: Only valid when the transport is http. Sets maximum in-flight requests from                     this process to any Elasticsearch host. Defaults to 64.* `ES_INDEX`: The index prefix to use when generating daily index names. Defaults to zipkin.* `ES_DATE_SEPARATOR`: The date separator to use when generating daily index names. Defaults to '-'.* `ES_INDEX_SHARDS`: The number of shards to split the index into. Each shard and its replicas                     are assigned to a machine in the cluster. Increasing the number of shards                     and machines in the cluster will improve read and write performance. Number                     of shards cannot be changed for existing indices, but new daily indices                     will pick up changes to the setting. Defaults to 5.* `ES_INDEX_REPLICAS`: The number of replica copies of each shard in the index. Each shard and                       its replicas are assigned to a machine in the cluster. Increasing the                       number of replicas and machines in the cluster will improve read                       performance, but not write performance. Number of replicas can be changed                       for existing indices. Defaults to 1. It is highly discouraged to set this                       to 0 as it would mean a machine failure results in data loss.* `ES_USERNAME` and `ES_PASSWORD`: Elasticsearch basic authentication, which defaults to empty string.                                   Use when X-Pack security (formerly Shield) is in place.* `ES_HTTP_LOGGING`: When set, controls the volume of HTTP logging of the Elasticsearch Api.                     Options are BASIC, HEADERS, BODY

服务启动后默认可以通过9411端口访问zipkin的监控页面

http://localhost:9411/zipkin/

注:zipkin会在es中创建以zipkin开头日期结尾的index,并且默认以天为单位分割,使用该存储模式时,zipkin中的依赖信息会无法显示,需要通过zipkin-dependencies工具包计算。

使用jar运行

如果您安装了Java 8或更高版本,那么最快速的安装方法是以独立的可执行jar形式获取最新版本:

curl -sSL https://zipkin.io/quickstart.sh | bash -sjava -jar zipkin.jar

使用源码安装运行

如果要开发新功能,则可以从源代码运行Zipkin。为此,您需要获取Zipkin的源代码并进行构建。

# 获取最新源码git地址git clone https://github.com/openzipkin/zipkincd zipkin# mvn编译打包./mvnw -DskipTests --also-make -pl zipkin-server clean install# jar包运行java -jar ./zipkin-server/target/zipkin-server-*exec.jar
zipkin-dependencies生成依赖链

zipkin-dependencies基于spark job来生成全局的调用链,下载地址:https://github.com/openzipkin/zipkin-dependencies

STORAGE_TYPE=elasticsearch ES_HOSTS=127.0.0.1:9200 java -jar zipkin-dependencies.jar &

下载完成后通过上述命令启动zipkin-dependencies,这里要注意的是程序只会根据当日的zipkin数据实时计算一次依赖关系,并以索引zipkin:dependency-2020-9-28方式存入es中,然后就退出了,因此要做到实时更新依赖的话需要自己想办法实现周期性执行zipkin-dependencies`。

依赖配置
         Hoxton.SR8                               org.springframework.cloud              spring-cloud-dependencies              ${spring.cloud-version}              pom              import                  org.springframework.cloud  spring-cloud-starter-sleuth  org.springframework.cloud  spring-cloud-starter-zipkin
参数配置
spring:  zipkin:    base-url: http://127.0.0.1:9411

这里的base-url是zipkin服务端的地址,默认地址也是http://localhost:9411/ ,配置好后,我们访问我们服务的API,点击run query即可有如下图追踪信息。

商业化链路追踪产品推荐

阿里云商业链路追踪(TracingAnalysis)为分布式应用的开发者提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具。能够帮助开发者快速分析和诊断分布式应用架构下的性能瓶颈,提高微服务时代下的开发诊断效率。

商业化产品架构

链路追踪的产品架构如图所示。

图 1. 链路追踪产品架构

主要工作流程为:

  • 客户侧的应用程序通过集成链路追踪的多语言客户端 SDK 上报服务调用数据。链路追踪支持多种开源社区的 SDK,且支持 OpenTracing 标准。

  • 数据上报至链路追踪控制台后,链路追踪组件进行实时聚合计算和持久化,形成链路明细、性能总览、实时拓扑等监控数据。您可以据此进行问题排查与诊断。

  • 调用链数据可对接下游阿里云产品,例如 LogSearch、CloudMonitor、MaxCompute 等,用于离线分析、报警等场景。

商业化产品功能

链路追踪的主要功能有:

  • 分布式调用链查询和诊断:追踪分布式架构中的所有微服务用户请求,并将它们汇总成分布式调用链。

  • 应用性能实时汇总:通过追踪整个应用程序的用户请求,来实时汇总组成应用程序的单个服务和资源。

  • 分布式拓扑动态发现:用户的所有分布式微服务应用和相关 PaaS 产品可以通过链路追踪收集到的分布式调用信息。

  • 多语言开发程序接入:基于 OpenTracing 标准,全面兼容开源社区,例如 Jaeger 和 Zipkin。

  • 丰富的下游对接场景:收集的链路可直接用于日志分析,且可对接到 MaxCompute 等下游分析平台。

关于"链路追踪工具Zipkin如何安装使用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

链路 服务 数据 分布式 应用 产品 实时 方式 程序 存储 开发 架构 分析 跟踪 运行 工具 商业 地址 应用程序 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器gpu测试 安徽hpe高密度服务器云主机 杭州交友软件开发需要多少钱 企知道网络技术有限公司总经理 上海安硕软件开发有限公司 网络安全环境分析需求分析 数据库中怎么存图片 七天网络安全插画 云计算管理服务器的工具 数据库以二进制形式存储吗 萝岗网络安全服务怎么选择 网络安全手抄报大全内容清楚 河北省保密局网络技术处 嵌入式软件开发属于程序员吗 软件开发属于工程类合同么 cbm数据库的单词通配符 三年级的网络安全知识竞赛 下列属于索引数据库 江西智能软件开发定做价格 sql数据库bak导入 互联网企业网络安全自查表 代驾司机软件开发平台公司 xampp 数据库配置 狂野飙车国际服服务器 软件开发中的保障机构是指什么 软件开发属于工程类合同么 防网络安全的方法 网络安全主权内容 计算机网络技术安全运维方向 广播服务器的特性
0