先进的概念

使用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握手。当任何其他通信使用HTTPS时,也会发生TLS握手,包括API调用和通过HTTPS查询的DNS。

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

TLS握手期间发生了什么?

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

TLS握手的步骤是什么?

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

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

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

所有的TLS握手都使用非对称加密(公钥和私钥),但并不是所有的TLS握手都在生成会话密钥的过程中使用私钥。例如,短暂的Diffie-Hellman握手过程如下:

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

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

想要阅读更多关于短暂的Diffie-Hellman握手和其他握手之间的对比,以及它们是如何实现向前保密的,请看这篇文章TLS协议文档

什么是密码套件?

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

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

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

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

安全套接字层(SSL)证书是任何SSL事务的一部分,它是一种数字数据表单(X509),用于标识公司(域)或个人。该证书具有一个公钥组件,对于任何希望与服务器发起安全事务的客户机都是可见的。相应的私钥安全地驻留在Citrix应用程序交付控制器(ADC)设备上,用于完成非对称密钥(或公钥)的加密和解密。

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

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

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

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

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

SSL仪表板

要开始,请参阅以下内容SSL仪表板文档

第三方集成

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

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

使用Splunk工具

基础设施和应用程序性能是相互依赖的。为了查看全貌,SignalFx提供了云基础设施和运行在其上的微服务之间的无缝关联。如果您的应用程序由于内存泄漏、有噪声的邻居容器或任何其他与基础设施相关的问题而出现异常,SignalFx会让您知道。为了完成这幅图,可以在上下文中访问Splunk日志和事件,以便进行更深入的故障排除和根本原因分析。

Splunk

有关SignalFx Microservices APM和Splunk故障排除的更多信息,请查看Splunk的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(扩展内容验证)监视器有助于检查应用程序是否返回预期的内容。

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

apiVersion: extensions/v1beta1 kind: Ingress元数据:name: mongodb annotations: ingress.citrix.com/insecure-port: " 80 " ingress.citrix.com/frontend-ip: " 192.168.1.1 " ingress.citrix.com/csvserver: ' {" l2conn ": " on "} ' ingress.citrix.com/lbvserver: ' {" mongodb-svc ":{" lbmethod ": " SRCIPDESTIPHASH "}} ' ingress.citrix.com/monitor: ' {" mongodb-svc ":{" type ": " tcp-ecv "}} ' Spec: rules:—host: mongodb.beverages.com http: paths:—path: / backend: serviceName: mongodb-svc servicePort: 80 

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

思杰ADM服务提供以下好处:

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

Kubernetes应用程序的服务图

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

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

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

要开始,请看建立服务图

3层Web应用程序的服务图

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

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

点需要注意:

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

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

服务流程图

要开始,请看服务图文档

Citrix ADC团队的故障排除

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

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

执行ADC的CLI操作:

>Show running config (-summary -fullValues) Ability to search (grep command) > " sh running config | -i grep vserver "查看版本信息。>显示许可证“sh许可证”

SSL统计数据显示

>Sh ssl系统前后端加密

SSL统计数据显示

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

Citrix ADC的高颗粒L3-L7遥测

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

STAT -执行ADC CLI操作:

>统计信息" stat ssl " 

开始SSL

类对特定错误进行故障排除时,Citrix ADC具有一个日志存档结构,允许搜索统计信息和计数器“NSCONMSG”命令。

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

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

命令流

Nstcpdump

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

CTRL + C-按下这些键同时停止nstcpdump

Nstcpdump.sh DST主机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中进行抓包和网络分析。

详细的ADC信息:描述、型号、平台、cpu等

Sysctl -a grep hw。physmem hw。physmem: 862306304 netscaler。hw_physmem_mb: 822 < !——NeedCopy >

aaad.debug -打开认证调试信息的管道

aaad.debug

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

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

SRE和平台团队的故障排除

Kubernetes流量

北/南:

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

东/西:

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

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

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

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

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

负载平衡Kubernetes

在这个例子中,

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

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

应用程序的ADM服务图

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

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

查看微服务应用计数器

服务图还显示了属于Kubernetes集群的所有微服务应用程序。将鼠标指针悬停在服务上以查看指标详细信息。

你可以查看:

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

缓慢的应用程序

可以使用一系列受支持的端点通过Citrix可观察性出口商(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出口商的更多信息,请参见度量出口国GitHub

ADM服务分布式跟踪

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

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

ADM分布式跟踪前提条件

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

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

跟踪头

  • 使用NS_DISTRIBUTED_TRACING和YES值更新CPX YAML文件。要开始,请看分布式跟踪

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

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

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

使用Elasticsearch作为事务端点的COE

COE

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

COE JSON

Zipkin的分布式跟踪支持

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

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

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

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

目前,您可以使用Citrix ADC在应用程序级别监视性能。使用Citrix可观察性导出器和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数据,并在Elastic Stack中导航。从跟踪查询负载到了解请求在应用程序中的流动方式,你可以做任何事情。

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

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

Kibana被设计成使用Elasticsearch作为数据源。可以把Elasticsearch看作存储和处理数据的引擎,Kibana位于其顶部。

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

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

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

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

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

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

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

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

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

Kibana仪表板

Kibana http