云原生 (Kubernetes) 应用的服务图表

使用 Citrix ADM 中的服务图形功能,您可以:

  • 确保应用程序整体性能的端到端可观察性

  • 识别应用程序不同组件的相互依赖关系造成的瓶颈

  • 深入了解应用程序不同组件的依赖关系

  • 监视 Kubernetes 群集内的服务

  • 监视哪些服务存在问题

  • 检查导致性能问题的因素

  • 查看服务 HTTP 事务的详细可见性

  • 分析以下指标:

    • 总点击次数

    • 服务响应时间

    • 数据量

    • 错误

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

准备工作

要在 Citrix ADM 中使用服务图形,请确保您具有:

  • Kubernetes 群集与 Citrix ADC CPX 作为代理。

  • Citrix ADM 代理 已安装并配置为启用数据中心或云中的 Citrix ADM 与 Kubernetes 群集或托管实例之间的通信。

  • 在 CPX yaml 文件中添加了必需的参数,以确保成功注册 CPX 与 Citrix ADM。

  • 在 Citrix ADM 代理上配置的静态路由,以启用 Citrix ADM 与 Citrix ADC CPX 之间的通信。

  • 在 Citrix ADM 中添加了 Kubernetes 群集。

  • 自动选择已启用虚拟服务器 许可证的虚拟服务器。

将 Citrix ADM 代理配置为注册到 Kubernetes 群集

要启用 Kubernetes 群集与 Citrix ADM 之间的通信,必须安装和配置 Citrix ADM 代理。您可以使用 Hypervisor、公有云服务(如 Microsoft Azure、AWS)或 Citrix ADC 实例上可用的内置代理(非常适合 HA 部署)来配置代理。

按照程序配置代理。

注意

您也可以使用现有代理。

在 CPX yaml 文件中添加参数

必须在 CPX yaml 文件中包含以下参数,以确保 CPX 注册到 Citrix ADM:

- name: "NS_MGMT_SERVER"
  value: "10.106.150.72"
- name: "NS_MGMT_FINGERPRINT"
  value: "E3:3A:2B:F7:CC:A6:3D:72:8F:3E:3E:4F:0D:C1"
- name: "NS_HTTP_PORT"
  value: "9080"
- name: "NS_HTTPS_PORT"
  value: 9443"
- name: "LOGSTREAM_COLLECTOR_IP"
  value: "10.106.150.72"

  • NS_MGMT_SERVER — 指示 Citrix ADM 代理 IP 地址

  • NS_MGMT_FINGERPRINT — 表示 Citrix ADM 代理中 CPX 的身份验证。要获取指纹:

    1. 在 Citrix ADM 中,导航到 网络 > 客户端

    2. 选择代理,然后单击 查看指纹

      指纹

  • NS_HTTP_PORT — 指示用于通信的 HTTP 端口

  • NS_HTTPS_PORT — 指示用于通信的 HTTPS 端口

  • LOGSTREAM_COLLECTOR_IP — 指示 Citrix ADM 代理 IP 地址,其中必须启用日志流协议才能将日志数据从 CPX 传输到 ADM

在 Citrix ADM 代理中配置静态路由

在 Kubernetes 群集中,所有容器化窗格都使用覆盖网络。无法直接使用这些私有 IP 地址建立通信。要启用从 Citrix ADM 到 Kubernetes 群集的通信,需要在 Citrix ADM 代理中配置静态路由。

考虑您的 Kubernetes 群集有以下 IP 地址:

  • Kubernetes 主服务器 – 10.106.157.112

  • Kubernetes 工作进程 1 – 10.106.157.110

  • Kubernetes 工作进程 2 – 10.106.157.111

成功配置 Citrix ADM 代理后:

  1. 使用 SSH 客户端登录到 Citrix ADM 代理

  2. 使用命令route add -net <public IP address range> <Kubernetes IP address>配置静态路由

    例如:

    route add -net 192.168.0.0/24 10.106.157.112

    route add -net 192.168.1.0/24 10.106.157.111

    route add -net 192.168.2.0/24 10.106.157.110

  3. 通过使netstat -rn用验证配置

    静态路由

  4. 将这些路由命令附加到/mpsconfig/svm.conf 文件中(在 Citrix ADM 代理中)。

在 Citrix ADM 中添加 Kubernetes 群集

配置 Citrix ADM 代理并配置静态路由后,必须在 Citrix ADM 中添加 Kubernetes 群集。

要添加 Kubernetes 群集,请执行以下操作:

  1. 使用管理员凭据登录到 Citrix ADM。

  2. 导航到调配 > Kubernetes > 群集。此 时将显示 “群集” 页面。

  3. 单击添加

  4. 添加群集 页面中,指定以下参数:

    1. 名称 -指定您选择的名称。

    2. API 服务器 URL -您可以从 Kubernetes 主节点获取 API 服务器 URL 详细信息。

      1. 在 Kubernetes 主节点上,运行命令 kubectl cluster-info

        API 服务器 URL

      2. 输入显示的 Kubernetes 主服务器正在运行的 URL。

    3. 身份验证令牌 -指定身份验证令牌。验证令牌需要验证 Kubernetes 群集与 Citrix ADM 之间通信的访问权限。要生成身份验证令牌,请执行以下操作:

      1. 在 Kubernetes 主节点上,运行以下命令:

        kubectl get secrets | grep ^default

        kubectl describe secret <SECRET_NAME>

        注意

        您还可以为 Kubernetes 群集创建 RBAC 角色和服务帐户 yamls,并为管理员用户创建身份验证令牌。

      2. 复制生成的令牌。

        有关详细信息,请参阅 Kubernetes文档。

    4. 从列表中选择代理。

    5. 单击创建

      添加群集

      启用自动选择虚拟服务器进行授权后,您可以在 Service Graph 中查看数据。

启用自动选择虚拟服务器进行许可

在 Citrix ADM 中添加 Kubernetes 群集后,必须确保自动选择要授权的虚拟服务器。虚拟服务器需要获得许可才能在服务图表中显示数据。要自动选择虚拟服务器,请执行以下操作:

  1. 导航至 帐户 > 订阅

  2. 虚拟服务器许可摘要下,启用 自动选择虚拟服务器自动选择不可寻址的虚拟服务器

    自动选择虚拟服务器

添加 Kubernetes 群集并启用自动选择虚拟服务器后,将 Web 事务设置 更改为 部。要启用此设置,请执行以下操作:

  1. 导航到 分析 > 设置

    此时将显示 “设置” 页面。

  2. 单击 启用分析功能”。

  3. 在 “Web 事务设置” 下,选择 全部 并单击 确定

    网络事务设置

在服务图表中查看详细信息

导航到 应用程序 > 服务图 表”,然后从列表中选择时间持续时间以查看服务图表详细信息。

详细信息服务图

1 -应用程序的端到端网络映射,显示组件服务的通信方式

2 — 指示特定时间持续时间的命中和错误的图表

3 — 搜索栏以搜索服务

4 — 选择时间持续时间的时间列表

5 -将过滤器应用于显示服务

6 — 设置图标

7 — 放大和缩小视图

根据选定的时间持续时间,将显示服务图形详细信息。从图表中选择指示要进一步向下钻取的命中的时间段以获取其他信息。

Details-service-graph1

将显示详细信息。请考虑您在 Kubernetes 群集中运行以下服务,如图所示:

Services-kubernetes

您可以查看服务的以下状态:

  • 严重(红色) -指示当平均服务响应时间 > 200 毫秒,错误计数 > 0

  • 检查(橙色) -指示当平均服务响应时间 > 200 毫秒或错误计数 > 0

  • 良好(绿色) -表示无错误,平均服务响应时间 < 200 毫秒

应用筛选器

您可以应用筛选器来查看特定服务信息。单击 无筛 选器” 列表以获取筛选器选项。

筛选选项

例如,如果要查看延迟小于 150 毫秒的服务,请单击 服务响应时间 下的条形图以显示结果。

筛选选项

单击 服务标签 可根据向服务提供的标签查看服务。

服务标签

单击 全部清除 以清除所有筛选器。

全部清除

或者,您也可以使用搜索文本框并键入服务名称以在服务图表上显示结果。

搜索栏

使用 “设置” 选项

设置图标

1 — 设置图标

2 — 将服务图显示为默认视图、基于图层视图或强制定向视图的选项

3 — 从列表中选择选项,根据类别查看服务。从列表中选择类别后,单击图表上的 + 以 查看所有服务

服务视图

4 — 放大和缩小服务图表

查看事务详情

根据图像中显示的示例,您可以查看应用程序的端到端网络地图,该地图显示组件服务的通信方式。

当您将鼠标指针悬停在 电子商务服务上时,您可以查看电 子商务服务的衡量指标详细信息。

错误详细信息

点击 量 — 表示服务接收的总点击量。

服务响应时间 — 表示服务响应到第一个字节的时间 (TTFB) 的平均响应时间。

错误 — 表示总错误,如 4xx、5xx 等。

数据卷 — 表示服务处理的数据总量。

正如你可以在图像中看到,电子商务服务指示错误,因为有一些错误在库存服务,这是连接到电子商务服务。将鼠标指针悬停在库存服务上以查看指标。

错误详细信息

查看 Web 事务日志

单击 库存服务 以进一步深入了解详情。库存服务显示事务记录详细信息。

事务摘要

可以在事务摘要下选择可用的选项。

“事务摘要”选项

  • 浏览器 -基于用户使用的浏览器搜索事务。

  • 客户端操 作系统-根据用户安装的操作系统搜索事务。

  • 请求类型 — 根据来自服务的请求搜索事务记录。

  • 响应代码 — 根据来自服务的响应搜索事务记录。例如:501、404、200

  • 响应内容类型 — 根据内容类型搜索事务记录。如果客户端请求是文本/html,则服务的响应必须是文本/html。

  • SSL 协议 — 根据用户使用的协议搜索事务。

  • SSL 密码强度 — 基于高、中、低等状态搜索事务记录。

  • SSL 密钥强度 — 根据用于安全的密钥的长度搜索事务记录。例如:2048。

  • SSL 前端失败 -根据握手失败的原因搜索事务。

自助搜索

事务摘要还有一个搜索文本框和时间长度列表,您可以根据您的要求查看事务。单击搜索框时,搜索框会显示搜索建议列表。您还可以在搜索查询中使用运算符来缩小搜索焦点范围。

以下是可用于搜索查询的运算符:

操作符 说明 示例 输出
= 等于某个值 应用程序响应时间 = 500 显示响应时间为 500 毫秒的所有事务
> 大于某个值 应用程序-响应时间 > 500 显示响应时间超过 500 毫秒的所有事务
< 小于某个值 应用程序-响应时间 < 300 显示响应时间小于 300 毫秒的所有事务
>= 大于或等于某个值 客户端 RTT > = 1024 显示客户端 RTT 大于或等于 1024 kb 的所有事务
<= 小于或等于某个值 客户端 RTT <= 1024 显示小于或等于 1024 kb 的所有事务
!= 不等于某个值 总字节数! = 0 显示总字节数的所有事务(0 字节除外)
~ 包含一些值 虚拟服务器 ~ mas 显示使用包含 mas 作为名称的虚拟服务器处理的所有事务

查看事务详情

您可以查看有关特定事务记录的详细信息。考虑您想要查看 500 个错误事务的详细信息。单击事务摘要中的响应代码 ,然后选择 500 以显示 500 错误事务记录。

5xx-error-transaction

单击以查看显示信息从电 子邮 **件服务到库存 服务** 的详细信息。

事务详情

根据详细信息,您可以分析导致 500 错误的因素,并采取必要的措施来更快地解决问题。