Citrix ADC

使用Citrix ADM对Citrix云本地网络进行故障排除

概述

本文档提供了关于如何使用Citrix ADM来交付和监控Kubernetes微服务应用程序的信息。您还将深入使用CLI、服务图和跟踪来允许平台和SRE团队进行故障排除。

应用程序性能和延迟概述

TLS加密

TLS是一种加密协议,旨在确保互联网通信的安全。TLS握手是开始使用TLS加密的通信会话的过程。在TLS握手过程中,通信双方交换消息以相互确认、相互验证、建立它们使用的加密算法并就会话密钥达成一致。TLS握手是HTTPS工作方式的基础部分。

TLS vs SSL握手

SSL(安全套接字层),是为HTTP开发的原始加密协议。TLS(传输层安全)在一段时间前取代了SSL。SSL握手现在被称为TLS握手,尽管“SSL”这个名字仍然被广泛使用。

TLS握手何时发生?

当用户通过HTTPS导航到一个网站,浏览器首先开始查询该网站的原始服务器时,TLS握手就会发生。TLS握手也发生在任何其他通信使用HTTPS时,包括API调用和通过HTTPS查询的DNS。

TLS握手发生在通过TCP握手打开TCP连接之后。

TLS握手期间会发生什么?

  • 在TLS握手过程中,客户端和服务器一起执行以下操作:
    • 指定他们使用的TLS版本(TLS 1.0、1.2、1.3等等)。
    • 决定使用哪些密码套件(请参阅下面的部分)。
    • 通过服务器的公钥和SSL证书颁发机构的数字签名验证服务器的身份。
    • 在握手完成后生成使用对称加密的会话密钥。

TLS握手有哪些步骤?

  • TLS握手是客户端和服务器之间交换的一系列数据报或消息。TLS握手包括多个步骤,因为客户端和服务器交换完成握手所需的信息,并使进一步的对话成为可能。

TLS握手中的确切步骤取决于所使用的密钥交换算法的类型和双方支持的密码套件。最常用的是RSA密钥交换算法。具体内容如下:

  1. ' client hello '消息:客户端通过向服务器发送“hello”消息来发起握手。该消息包括客户端支持的TLS版本、支持的密码套件和一串称为“客户端随机”的随机字节。
  2. ' server hello '消息:在回复客户端hello消息时,服务器发送一条消息,其中包含服务器的SSL证书、服务器选择的密码套件和“server random”(服务器生成的另一个随机字节字符串)。
  3. 身份验证:客户端使用颁发证书的证书颁发机构验证服务器的SSL证书。这确认了服务器就是它所说的那个人,并且客户端正在与域的实际所有者交互。
  4. 预主秘密:客户端再发送一个随机的字节字符串,即“预主秘密”。预主密钥用公钥加密,服务器只能用私钥解密。(客户端从服务器的SSL证书中获取公钥。)
  5. 使用私钥:服务器解密预主密钥。
  6. 创建会话密钥:客户端和服务器都从客户端随机密钥、服务器随机密钥和预主密钥生成会话密钥。他们应该会得出相同的结果。
  7. 客户端就绪:客户端发送一个“完成”消息,该消息使用会话密钥加密。
  8. Server is ready:服务器发送一个用会话密钥加密的“finished”消息。
  9. 实现安全对称加密:握手完成,使用会话密钥继续通信。

所有TLS握手都使用非对称加密(公钥和私钥),但并非所有TLS握手在生成会话密钥的过程中都使用私钥。例如,短暂的迪菲-海尔曼握手是这样的:

  1. Client hello:客户端发送一个客户端hello消息,包含协议版本、客户端随机数和密码套件列表。
  2. 服务器hello:服务器用它的SSL证书、它选择的密码套件和服务器随机进行应答。与前一节中描述的RSA握手相反,在此消息中服务器还包括以下内容(步骤3)。
  3. 服务器的数字签名:服务器使用自己的私钥加密客户端随机数、服务器随机数和DH参数*。此加密数据用作服务器的数字签名,确定服务器拥有与SSL证书中的公钥匹配的私钥。
  4. 数字签名确认:客户端用公钥解密服务器的数字签名,验证服务器控制着私钥并且是它所说的那个人。客户端DH参数:客户端向服务器发送自己的DH参数。
  5. 客户端和服务器计算预主密钥:与RSA握手中客户端生成预主密钥并将其发送给服务器不同,客户端和服务器使用它们交换的DH参数分别计算匹配的预主密钥。
  6. 创建会话密钥:现在,客户端和服务器从预主密钥、客户端随机密钥和服务器随机密钥计算会话密钥,就像RSA握手一样。
    • Client is ready:与RSA握手相同
    • 服务器准备好
    • 实现安全对称加密

    *DH参数:DH代表Diffie-Hellman。Diffie-Hellman算法使用指数计算来获得相同的预主控秘密。服务器和客户端都为计算提供了一个参数,当它们结合在一起时,会在每一侧产生不同的计算,结果是相等的。

要阅读更多关于短暂的迪菲-赫尔曼握手和其他类型握手之间的对比,以及它们是如何实现向前保密的,请参阅以下内容TLS协议文档

什么是密码套件?

  • 密码套件是一组用于建立安全通信连接的加密算法。(加密算法是对数据执行的一组数学运算,使数据看起来是随机的。)有各种广泛使用的密码套件,TLS握手的一个基本部分是商定用于该握手的密码套件。

要开始,请参阅参考:TLS协议文档

Citrix应用程序交付管理SSL仪表板

Citrix应用程序交付管理(ADM)现在为您简化了证书管理的各个方面。通过单个控制台,您可以建立自动策略,以确保正确的颁发者、密钥强度和正确的算法,同时密切监视未使用或即将过期的证书。要开始使用Citrix ADM的SSL指示板及其功能,您必须了解SSL证书是什么,以及如何使用Citrix ADM跟踪SSL证书。

安全套接字层(SSL)证书是任何SSL事务的一部分,是一种数字数据表单(X509),用于标识公司(域)或个人。证书有一个公钥组件,任何想要与服务器发起安全事务的客户端都可以看到该组件。相应的私钥安全地驻留在Citrix Application Delivery Controller (ADC)设备上,用于完成非对称密钥(或公钥)加密和解密。

SSL证书和密钥可以通过以下两种方式获取:

  • 来自授权证书颁发机构(CA)
  • 通过在Citrix ADC设备上生成新的SSL证书和密钥

Citrix ADM提供了在所有托管的Citrix ADC实例上安装的SSL证书的集中视图。在SSL仪表板上,您可以查看帮助跟踪证书颁发者、密钥强度、签名算法、过期或未使用证书等的图表。您还可以看到正在虚拟服务器上运行的SSL协议的分布,以及在这些服务器上启用的密钥。

您还可以设置通知,以便在证书即将过期时通知您,并包括有关哪些Citrix ADC实例使用这些证书的信息。

您可以将Citrix ADC实例的证书链接到CA证书。但是,请确保链接到同一个CA证书的证书具有相同的来源和相同的颁发者。将证书链接到CA证书后,可以取消链接。

SSL仪表板

要开始,请参阅SSL仪表板文档

第三方集成

应用程序延迟是以毫秒为单位度量的,根据所使用的度量标准,它可以表示两种情况之一。更常见的测量延迟的方法称为“往返时间”(或RTT)。RTT计算数据包在网络上从一点传输到另一点以及响应发送回源所需的时间。另一种测量方法被称为“时间到第一个字节”(TTFB),它记录了从数据包离开网络上的一个点到到达目的地所花费的时间。RTT更常用于测量延迟,因为它可以从网络上的单个点运行,并且不需要在目标点上安装数据收集软件(像TTFB那样)。

通过实时监控应用程序带宽使用情况和性能,ADM服务可以很容易地识别问题,并在潜在问题出现并影响网络用户之前先发制人地解决问题。这个基于流程的解决方案根据接口、应用程序和会话跟踪使用情况,为您提供有关整个网络活动的详细信息。

使用Splunk工具

基础设施和应用程序性能是相互依赖的。为了了解全貌,SignalFx提供了云基础设施和运行在其上的微服务之间的无缝关联。如果您的应用程序因为内存泄漏、吵闹的邻居容器或任何其他与基础设施相关的问题而出错,SignalFx会告诉您。为了完成整个过程,可以在上下文中访问Splunk日志和事件,从而进行更深入的故障排除和根本原因分析。

Splunk

有关SignalFx微服务APM和Splunk故障排除的更多信息,请查看Splunk for DevOps信息。

MongoDB支持

MongoDB将数据存储在灵活的类似json的文档中。这意味着字段可以因文档而异,并且数据结构可以随着时间而改变。

文档模型映射到应用程序代码中的对象,使数据易于处理。

按需查询、索引和实时聚合为访问和分析数据提供了强大的方法。

MongoDB的核心是分布式数据库,因此内置了高可用性、水平扩展和地理分布,并且易于使用。

MongoDB旨在满足现代应用程序的需求,其技术基础使您能够完成:

  • 文档数据模型-为您提供处理数据的最佳方式。
  • 分布式系统设计——允许你智能地把数据放在你想要的地方。
  • 统一的体验,让您可以自由地在任何地方运行-允许您的工作面向未来,并消除供应商锁定。

有了这些功能,您就可以构建一个基于MongoDB的智能操作数据平台。有关更多信息,请参见MongoDB文档

如何负载均衡进入流量的TCP或UDP基于应用程序

在Kubernetes环境中,Ingress是一个允许从Kubernetes集群外部访问Kubernetes服务的对象。标准Kubernetes Ingress资源假设所有流量都是基于http的,不满足非基于http的协议,如TCP、TCP- ssl和UDP。因此,基于L7协议的关键应用程序(如DNS、FTP、LDAP)不能使用标准Kubernetes Ingress公开。

标准的Kubernetes解决方案是创建LoadBalancer类型的服务。看到Citrix ADC中的服务类型LoadBalancer获取更多信息。

第二个选项是对入口对象进行注释。Citrix入口控制器使您能够负载平衡TCP或UDP基于入口流量。它提供了以下内容注释你可以在Kubernetes Ingress资源定义中使用它来负载平衡基于TCP或UDP的Ingress流量:

  • ingress.citrix.com/insecure-service-type:注释支持使用TCP、UDP或ANY作为Citrix ADC协议的L4负载均衡。
  • ingress.citrix.com/insecure-port:注释配置TCP端口。当需要在非标准端口上进行微服务访问时,该注释非常有用。缺省情况下,配置80端口。

有关更多信息,请参见如何负载均衡进入流量的TCP或UDP基于应用程序

监视和改进基于TCP或UDP的应用程序的性能

应用程序开发人员可以通过Citrix ADC中的富监视器(如TCP- ecv、UDP- ecv)密切监视基于TCP或UDP的应用程序的运行状况。ECV(扩展内容验证)监视有助于检查应用程序是否返回预期的内容。

此外,可以通过使用持久性方法(如源IP)来提高应用程序的性能。您可以使用这些Citrix ADC特性聪明的注释在Kubernetes。下面就是这样一个例子:

apiVersion扩展/ v1beta1种类入口元数据名字mongodb注释ingress.citrix.com/insecure-port“80”ingress.citrix.com/frontend-ip“192.168.1.1”ingress.citrix.com/csvserver”{l2conn”:“在“}”ingress.citrix.com/lbvserver”{mongodb-svc”:{“lbmethod”:“SRCIPDESTIPHASH}}”ingress.citrix.com/monitor”{mongodbsvc”:{“类型”:“tcp-ecv}}”规范规则-宿主mongodb.beverages.comhttp路径-路径/后端mongodb-svcservicePort80<!--NeedCopy-->

Citrix应用交付管理(ADM)服务

Citrix ADM服务提供以下好处:

  • 敏捷-易于操作、更新和消费。思杰ADM service的服务模式在云端可用,易于操作、更新和使用所提供的特性。更新频率与自动更新功能相结合,可快速增强Citrix ADC部署。
  • 更快实现价值-更快地实现业务目标。与传统的本地部署不同,只需单击几下,您就可以使用Citrix ADM Service。您不仅节省了安装和配置时间,还避免了在潜在错误上浪费时间和资源。
  • 多站点管理-针对跨多站点数据中心的实例的单一窗格。通过Citrix ADM Service,您可以管理和监视各种部署类型的Citrix adc。您可以对部署在本地和云中的思杰adc进行一站式管理。
  • 运营效率-优化和自动化的方式,以实现更高的运营效率。通过思杰ADM服务,您可以节省维护和升级传统硬件部署的时间、金钱和资源,从而降低运营成本。

Kubernetes应用程序的服务图

使用Citrix ADM中云原生应用程序特性的服务图,您可以:

  • 确保端到端应用程序的整体性能
  • 识别由应用程序的不同组件的相互依赖所造成的瓶颈
  • 了解应用程序不同组件的依赖关系
  • 监控Kubernetes集群内的服务
  • 监视哪个服务有问题
  • 检查导致性能问题的因素
  • 查看服务HTTP事务的详细可见性
  • 分析HTTP、TCP和SSL指标

通过在Citrix ADM中可视化这些指标,您可以更快地分析问题的根本原因并采取必要的故障排除操作。服务图在各种组件服务中显示应用程序。这些在Kubernetes集群内运行的服务可以与应用程序内外的各种组件通信。

要开始,请看建立服务图

3层web应用程序的服务图

使用应用程序仪表板中的服务图功能,您可以查看:

  • 关于如何配置应用程序的详细信息(包括内容切换虚拟服务器和负载均衡虚拟服务器)
    • 对于GSLB应用,可以查看数据中心、ADC实例、CS和LB虚拟服务器
  • 从客户端到服务的端到端事务
  • 客户端访问应用程序的位置
  • 处理客户端请求的数据中心名称和相关的数据中心Citrix ADC指标(仅适用于GSLB应用程序)
  • 客户端、服务和虚拟服务器的度量细节
  • 错误是来自客户端还是来自服务
  • 服务状态如至关重要的审查,.Citrix ADM根据服务响应时间和错误计数显示服务状态。
    • 关键(红色)—平均业务响应时间> 200 ms,错误计数> 0
    • 评估(橙色)—平均业务响应时间> 200ms或错误计数> 0
    • 好(绿色)—无错误,服务平均响应时间< 200ms
  • 客户端状态如至关重要的审查,.Citrix ADM根据客户端网络延迟和错误计数显示客户端状态。
    • 关键(红色)—平均客户端网络时延> 200 ms,错误计数> 0
    • 评估(橙色)—平均客户端网络时延> 200 ms或错误计数> 0
    • 好(绿色)—无错误,客户端网络平均时延< 200ms
  • 虚拟服务器的状态如至关重要的审查,.Citrix ADM根据app得分显示虚拟服务器状态。
    • 关键(红色)—当应用评分< 40时
    • 评估(橙色)—应用评分在40 ~ 75之间
    • 好(绿色)—当应用评分为> 75时

注意事项:

  • 业务图中只显示负载均衡、内容交换和GSLB虚拟服务器。
  • 如果没有虚拟服务器绑定到自定义应用程序,则在应用程序的服务图中不可见详细信息。
  • 只有在虚拟服务器和web应用程序之间发生活动事务时,您才能在服务图中查看客户端和服务的指标。
  • 如果虚拟服务器与web应用之间没有活动事务,则只能在业务图中查看基于负载均衡、内容切换、GSLB虚拟服务器、服务等配置数据的详细信息。
  • 应用程序配置中的更新可能需要10分钟才能反映在服务图中。

有关更多信息,请参见应用程序的服务图

服务流程图

要开始,请看业务图文档

Citrix ADC团队的故障排除

让我们讨论一些用于Citrix ADC平台故障排除的最常见属性,以及这些故障排除技术如何应用于微服务拓扑的Tier-1部署。

Citrix ADC有一个命令行界面(CLI),可以实时显示命令,对于确定运行时配置、静态和策略配置非常有用。这可以通过“秀”命令。

SHOW -执行ADC CLI操作:

>Show running config (-summary -fullValues)搜索能力(grep命令)> " sh running config | -i grep vserver "检查版本。>显示license" sh license" 

显示SSL统计信息

>Sh ssl System front - Backend Encryption 

显示SSL统计信息

Citrix ADC有一个命令,用于基于七(7)秒计数器间隔枚举所有对象的统计信息。这可以通过“统计”命令。

Citrix ADC高颗粒L3-L7遥测

  • 系统级:ADC的CPU和内存利用率。
  • HTTP协议:#请求/响应,GET/POST拆分,N-S和E-W的HTTP错误(仅适用于服务网格精简,sidecar很快)。
  • SSL:仅对精简服务的N-S和E-W流量使用#会话和#握手。
  • IP协议:#接收/发送的包数、#接收/发送的字节数、#截断的包数、#查找IP地址。
  • Citrix ADC AAA: #Active Sessions
  • 接口:#组播报文总数、#传输字节总数、#接收/发送巨型报文数。
  • 负载均衡虚拟服务器和内容交换虚拟服务器:#包数、#命中数、#接收/发送字节数。

STAT -执行ADC CLI操作:

>统计信息" stat ssl " 

开始SSL

Citrix ADC具有日志存档结构,允许在通过“NSCONMSG”命令。

NSCONMSG-主日志文件(ns数据格式)

Cd/var/nslog " Mac Moves " nsconfig -d current -g nic_err 

命令流

Nstcpdump

你可以使用nstcpdump用于低级故障排除。nstcpdump收集的详细信息少于nstrace.打开ADC CLI并输入壳牌.你可以使用滤镜nstcpdump但不能使用特定于ADC资源的过滤器。可以在CLI界面中直接查看转储输出。

CTRL + c—同时按下这两个键,停止一个nstcpdump

Nstcpdump.sh分级存储主机X.X.X.X—显示发送到目的主机的流量。

Nstcpdump.sh -n SRC主机X.X.X.X-显示来自指定主机的流量,不将IP地址转换为名称(-n)。

Nstcpdump.sh主机X.X.X.X—显示来自指定主机IP的流量。

例如“nstcpdump”

NSTRACE-数据包跟踪文件

NSTRACE是一个用于网络故障排除的低级包调试工具。它允许您存储可以使用分析工具进一步分析的捕获文件。两种常用工具是Network Analyzer和Wireshark。

' nstrace '输出

数据包跟踪输出

在ADC的/var/nstrace目录下创建NSTRACE抓包文件后,可以将抓包文件导入Wireshark中进行抓包和网络分析。

SYSCTL -详细的ADC信息:描述,模型,平台,cpu,等等

Sysctl -a grep hw。physmem hw。Physmem: 862306304 netscaler。Hw_physmem_mb: 822 

debug -打开用于认证调试信息的管道

aaad.debug

有关如何使用aad.debug模块通过ADC或ADC网关排除身份验证问题的详细信息,请参见支持文章

还可以直接为ADC获取性能统计数据和事件日志。有关这方面的更多信息,请参见艺发局支援文件

为SRE和平台团队进行故障排除

Kubernetes流量

北/南:

  • 北/南流量是指从用户通过入口流入集群的流量。

东/西:

  • 东/西流量是围绕Kubernetes集群流动的流量:服务到服务或服务到数据存储。

在Kubernetes环境中,Citrix ADC CPX负载如何平衡东西流量

在你部署了Kubernetes集群之后,你必须通过在ADM中提供Kubernetes环境的详细信息来将集群与ADM集成。ADM监视Kubernetes资源的变化,例如服务、端点和Ingress规则。

当您在Kubernetes集群中部署ADC CPX实例时,它会自动向ADM注册,作为注册过程的一部分,ADM会了解到CPX实例的IP地址和端口,并使用NITRO REST api对其进行配置。

下图显示了在Kubernetes集群中ADC CPX负载如何平衡东西向流量。

负载均衡Kubernetes

在这个例子中,

Kubernetes集群的节点1和节点2包含一个前端服务实例和一个后端服务实例。当ADC CPX实例部署在节点1和节点2时,ADC CPX实例会自动注册到ADM,需要在ADM中配置Kubernetes集群详情,手动将Kubernetes集群与ADM集成。

当客户端请求前端服务时,ingress资源在两个节点上的前端服务实例之间进行负载均衡。当前端服务的实例需要来自集群中的后端服务的信息时,它将请求定向到其节点中的ADC CPX实例。ADC CPX实例负载平衡集群中后端服务之间的请求,提供东西流量。

用于应用程序的ADM服务图

Citrix ADM中的服务图特性使您能够以图形表示形式监视所有服务。该特性还提供了详细的分析和有用的度量。您可以查看以下服务的业务图:

要开始,请参阅服务图中的详细信息

查看微服务应用计数器

服务图还显示了所有属于Kubernetes集群的微服务应用程序。但是,将鼠标指针放在服务上以查看度量细节。

您可以查看:

  • 服务名称
  • 服务使用的协议,如SSL、HTTP、TCP、SSL over HTTP
  • 支安打-该服务接收到的总命中数
  • 服务响应时间-从服务获得的平均响应时间。(响应时间=客户端RTT +请求最后一个字节-请求第一个字节)
  • 错误-总错误,如4xx, 5xx等
  • 数据量—该服务处理的数据总量
  • 名称空间—服务的命名空间
  • 集群名称—服务所在的集群名称
  • SSL服务器错误—该服务的SSL错误总数

缓慢的应用程序

这些特定的计数器和事务日志可以通过Citrix Observability export (COE)使用一系列受支持的端点提取出来。有关COE的更多信息,请参阅以下部分。

出口Citrix ADC统计

这是一个简单的服务器,它抓取Citrix ADC的统计数据,并通过HTTP将它们导出到Prometheus。然后,Prometheus可以作为数据源添加到Grafana,以图形方式查看Citrix ADC的统计数据。

要监视Citrix ADC实例的统计数据和计数器,citrix-adc-metric-exporter可以作为容器或脚本运行。导出器从Citrix ADC实例收集Citrix ADC统计信息,例如对虚拟服务器的总命中次数、HTTP请求速率、SSL加密-解密速率等,并保存它们,直到Prometheus服务器提取统计信息并使用时间戳存储它们。然后可以将Grafana指向Prometheus服务器,以获取统计数据、绘制它们、设置警报、创建热图、生成表等等,以便根据需要分析Citrix ADC统计数据。

下面几节将详细介绍如何在图中所示的环境中设置导出器。还说明了导出器默认抓取的Citrix ADC实体/度量以及如何修改它。

有关Citrix ADC的export的详细信息,请参见指标出口商GitHub

ADM服务分布式跟踪

在服务图中,您可以使用分布式跟踪视图来:

  • 分析整体业务性能。
  • 可视化所选服务及其相互依赖的服务之间的通信流。
  • 确定哪个服务显示错误并排除错误服务
  • 查看所选服务与每个相互依赖的服务之间的事务详细信息。

ADM分布式跟踪先决条件

要查看服务的跟踪信息,必须:

  • 确保应用程序在发送任何东西向流量时维护以下跟踪头:

跟踪头

  • 用NS_DISTRIBUTED_TRACING更新CPX YAML文件,并将值设置为YES。要开始,请看分布式跟踪

Citrix ADC可观察性导出器(COE)解析

Citrix Observability export是一个容器,用于从Citrix adc收集指标和事务,并将它们转换为支持端点的合适格式(如JSON、AVRO)。您可以将Citrix Observability export收集的数据导出到所需的端点。通过分析导出到端点的数据,您可以在由思杰adc代理的应用程序的微服务级别上获得有价值的见解。

有关COE的更多信息,请参见COE GitHub

使用Elasticsearch作为事务端点的COE

COE

当Elasticsearch被指定为事务端点时,Citrix Observability export将数据转换为JSON格式。在Elasticsearch服务器上,Citrix Observability export每小时为每个ADC创建Elasticsearch索引。这些索引基于数据、小时、ADC的UUID和HTTP数据的类型(http_event或http_error)。然后,Citrix Observability export在每个ADC的弹性搜索索引下以JSON格式上传数据。所有常规事务都被放入http_event索引中,任何异常事务都被放入http_error索引中。

COE JSON

Zipkin的分布式跟踪支持

在微服务架构中,单个终端用户请求可能跨越多个微服务,这使得跟踪事务和修复错误来源具有挑战性。在这种情况下,传统的性能监视方法无法准确地确定故障发生的位置以及性能差背后的原因。您需要一种方法来捕获特定于处理请求的每个微服务的数据点,并分析它们以获得有意义的见解。

分布式跟踪通过提供一种端到端跟踪事务的方法来解决这一挑战,并了解如何跨多个微服务处理事务。

OpenTracing是用于设计和实现分布式跟踪的api的规范和标准集。分布式跟踪器允许您可视化微服务之间的数据流,并帮助您识别微服务架构中的瓶颈。

Citrix ADC可观察性出口商实现了Citrix ADC的分布式跟踪,目前支持Zipkin作为分布式跟踪器。

目前,您可以使用Citrix ADC在应用程序级别监视性能。使用Citrix Observability export和Citrix ADC,您可以获得由Citrix ADC CPX、MPX或VPX代理的每个应用程序的微服务跟踪数据。

要开始,请参阅GitHub可观察性出口商

COE ADC

用于应用程序调试的Zipkin

Zipkin是开源分布式跟踪系统Dapper的论文来自谷歌.Dapper是谷歌在生产中的分布式跟踪系统。谷歌在他们的论文中解释了这一点——“我们构建Dapper是为了为谷歌的开发人员提供更多关于复杂分布式系统行为的信息”。在故障排除时,从不同角度观察系统是至关重要的,特别是当系统是复杂和分布式的时候。

下面的Zipkin跟踪数据确定了与Watches示例应用程序相关的总共5个跨度和5个服务。跟踪数据显示了5个微服务之间的特定跨度数据。

要开始,请看Zipkin

Zipkin痕迹

亚马逊跨度

示例Zipkin跨度显示初始页面加载请求的应用程序延迟:

Zipkin服务样本

用于查看数据的Kibana

Kibana是一个开放的用户界面,让您可视化您的Elasticsearch数据和导航弹性堆栈。从跟踪查询负载到了解请求在应用程序中的流动方式,可以做任何事情。

无论您是分析师还是管理员,Kibana通过提供以下三个关键功能使您的数据具有可操作性:

  • 一个开源的分析和可视化平台。使用Kibana来探索Elasticsearch数据,然后构建漂亮的可视化和仪表板。
  • 一个用于管理弹性堆栈的UI。管理您的安全设置,分配用户角色,拍摄快照,汇总数据,以及更多-所有这些都来自一个方便的Kibana UI。
  • Elastic解决方案的集中式中心。从日志分析到文档发现再到SIEM, Kibana是访问这些功能和其他功能的门户。

Kibana被设计成使用Elasticsearch作为数据源。可以将Elasticsearch看作存储和处理数据的引擎,Kibana位于最上面。

在主页上,Kibana提供了以下添加数据的选项:

Kibana使用an索引模式告诉它要搜索哪些Elasticsearch索引。如果您上传一个文件、运行一个内置教程或添加示例数据,您将免费获得一个索引模式,并且可以开始探索。如果您加载自己的数据,则可以在其中创建索引模式堆栈管理

步骤1:配置Logstash的索引模式

步骤2:选择索引并生成要填充的流量。

步骤3:从日志提要的非结构化数据生成应用程序。

步骤4:Kibana格式化Logstash输入以创建报告和仪表板。

  • 时间范围
  • 表格视图
  • 基于应用程序的命中计数。
    • 时间IP,代理,机器。操作系统,响应码(200),URL
    • 对值进行筛选

步骤5:在聚合报告中可视化数据。

  • 图表报告中的结果聚合(饼、图等)

Kibana仪表板

Kibana http