数据总线是一个框架,用于使用 API 与其他应用程序共享存储在 VMware Aria Operations for Networks 中的数据。使用数据总线,可以近乎实时地以低延迟共享大量数据。

VMware Aria Operations for Networks 数据总线提供以下优势:

  • 提供了一种近乎实时地以编程方式使用大量数据的方法。
  • 采用基于变化的使用模型,这种模型使数据总线比传统 API 调用具有明显的优势,尤其是在流和衡量指标等大量数据的环境中。

用例

通过 VMware Aria Operations for Networks 数据总线,可以将数据用于各种目的。以下是如何使用数据总线的几个示例:

用例 描述 步骤
将流保留更长时间 VMware Aria Operations for Networks 中的流保留期为一个月。

使用数据总线,可以将流保留更长时间。

  1. 设置订阅者 URL以接收 HTTPS/HTTP 数据。
  2. 确保您了解所需的安全信息。请参见了解安全性和 SSL 证书
  3. 注册订阅者以订阅流消息组
  4. 数据开始流式传输。有关消息格式的详细信息,请参见从数据总线收到的消息格式
  5. 了解有关数据总线功能的更多信息,请参见了解数据总线术语和功能
将警示发送到各种目标 默认情况下,可以将警示发送到 SNMP/SMTP 目标。

使用数据总线,可以将警示发送到各种其他目标,例如 Slack、SeviceNow 和 PagerDuty 等。

可以使用数据总线获取的一些警示示例包括密码过期、VMware vCenter Server 断开连接等系统警示。

  1. 设置订阅者 URL以接收 HTTPS/HTTP 数据。
  2. 确保您了解所需的安全信息。请参见了解安全性和 SSL 证书
  3. 注册订阅者以订阅问题消息组
  4. 数据开始流式传输。有关消息格式的详细信息,请参见从数据总线收到的消息格式
  5. 了解有关数据总线功能的更多信息,请参见了解数据总线术语和功能
将衡量指标从 VMware Aria Operations for Networks 流式传出 轮询衡量指标 API 是一个多步骤过程,包括获取实体 ID、定期调用 API 以及筛选出重复信息。

数据总线显著提高了此整个过程的效率;订阅所选的衡量指标组或子组,当处理衡量指标时,衡量指标直接流式传出到端点。

  1. 设置订阅者 URL以接收 HTTPS/HTTP 数据。
  2. 确保您了解所需的安全信息。请参见了解安全性和 SSL 证书
  3. 注册订阅者以订阅衡量指标消息组
  4. 数据开始流式传输。有关消息格式的详细信息,请参见从数据总线收到的消息格式
  5. 了解有关数据总线功能的更多信息,请参见了解数据总线术语和功能

支持的消息组

如果您希望定期轮询信息,则相比于使用 API,使用数据总线流式传输是更好的选择。消息组是可以从数据总线订阅的一组特定数据。每个消息组最多可以有 10 个订阅者,但流和衡量指标消息组除外,每个消息组只能有一个订阅者。另外,对于衡量指标消息组,每个消息组只能有一个订阅者。了解 VMware Aria Operations for Networks 支持哪些消息组,可帮助您做出更好的决策。

VMware Aria Operations for Networks 支持以下消息组:

消息组 子消息组 消息详情
衡量指标 vms-metrics 衡量指标、时间间隔、时间戳、单位、实体类型和点。
hosts-metrics 衡量指标、时间间隔、时间戳、单位、实体类型和点。
flows-metrics 衡量指标、时间间隔、时间戳、单位、实体类型和点。
nics-metrics 衡量指标、时间间隔、时间戳、单位、实体类型和点。
switchports-metrics 衡量指标、时间间隔、时间戳、单位、实体类型和点。
nsxt-metrics 衡量指标、时间间隔、时间戳、单位、实体类型和点。
应用程序 不适用 实体 ID、实体类型、名称、创建者、创建时间、上次修改者、上次修改时间、源、层和发现信息。
不适用 源虚拟机、目标虚拟机、源 IP、目标 IP、端口、源文件夹、目标文件夹、协议、源 IP 集、目标 IP 集、源安全组、目标安全组、流量类型、源安全标记、目标安全标记、源虚拟机标记、目标虚拟机标记、在主机内、防火墙操作和流标记。
问题 不适用 实体 ID、实体类型、名称、定位点实体、消息、事件标记、管理状态、已存档、事件时间(毫秒)、事件类型和严重性。
表 1. 与配置相关的消息组
消息组 消息详情
虚拟机 实体 ID、名称、实体类型、IP 地址、默认网关、VNIC、源防火墙规则、目标防火墙规则、虚拟机 UUID、管理器 UUID、集群、资源池、主机、供应商 ID、vCenter Manager、文件夹、数据存储、数据中心、源反转规则、目标反转规则、CPU 计数、内存、操作系统全名和 HCX 信息。
主机 实体 ID、名称、实体类型、VMKNIC、集群、vCenter Manager、虚拟机计数、数据存储、服务标记、供应商 ID、维护模式、连接状态、CPU 计数、内存和管理器 UUID。
网卡 实体 ID、名称、实体类型、VLAN 和虚拟机。
交换机端口 实体 ID、名称、实体类型、操作状态、管理状态、子类型、设备和管理器。
提示: 子消息组提供更精细的信息。特定消息组的所有订阅者都会收到相同的信息。

通过数据总线发布的数据分类为不同的消息组。用户可以订阅一个或多个消息组,与这些消息组相关的数据将流式传输到 HTTP 或 HTTPS 端点。

执行下面的步骤以配置数据总线:

1. 了解安全性和 SSL 证书

使用数据总线时,必须了解以下安全信息:

环境 详细信息
内部部署
  • HTTP/HTTPS 作为传输协议 - 在内部部署环境中使用数据总线时,可以通过 HTTP/HTTPS 端点从数据总线获取数据。要确保在传输过程中和验证订阅者真实性期间对数据进行加密,请使用 HTTPS。
  • 防火墙规则 - 要确保只有 VMware Aria Operations for Networks 可以向订阅者发送数据,您需要启用防火墙规则。集群中的所有 VMware Aria Operations for Networks 平台节点都会向订阅者发送数据,因此您必须将防火墙规则配置为允许来自所有平台节点的流量。
  • SSL 证书 - 订阅者使用的 SSL 证书必须由熟知的 CA 签名。如果 SSL 证书是自签名证书或由组织的内部 CA 签名,并且不受 Java 信任,则必须将 CA 证书导入到 VMware Aria Operations for Networks 的 Java 信任库。要获得有关如何导入 Java 信任库的帮助,请联系 VMware 技术支持。
    注: 对于 VMware Aria Operations for Networks 平台的所有出站 SSL 流量,将信任导入到信任库的 CA 证书。
SaaS
  • HTTPS 作为传输协议 - 在 SaaS 环境中使用数据总线时,只能通过 HTTPS 端点从数据总线获取数据。
  • 用于消息身份验证的 CSP 令牌 - 来自 VMware Aria Operations for Networks (SaaS) 的每条数据总线消息都包含一个授权标头,其中包含 CSP 颁发的 JWT 令牌。作为订阅者,您可以使用 CSP (https://console.cloud.vmware.com/csp/gateway/am/api/auth/token-public-key) 中的公钥验证令牌,以验证令牌的真实性。您可以验证令牌的真实性,以确保令牌中的客户端 ID 是在 CSP 上注册的 VMware Aria Operations for Networks 数据总线应用程序的客户端 ID。可以从 VMware Aria Operations for Networks 数据总线开发人员那里获取客户端 ID 详细信息。
  • SSL 证书 - 订阅者使用的 SSL 证书必须由熟知的 CA 签名。默认情况下,VMware Aria Operations for Networks (SaaS) 颁发的 SSL 证书由 JDK 签名。VMware Aria Operations for Networks (SaaS) 不支持导入自定义 CA 证书。

2. 注册、更新或删除订阅者

  • 要注册订阅者,必须使用 POST 方法执行 API 调用。有关详细信息,请参见 VMware Aria Operations for Networks API 指南

    如果注册成功,消息响应将包含订阅者 ID。您可以使用该订阅者 ID 删除订阅或更新订阅。成功注册订阅者后,订阅者可能需要长达五分钟的时间才能开始接收消息。

  • 要更新订阅者,必须使用 PUT 方法执行 API 调用。有关详细信息,请参见 VMware Aria Operations for Networks API 指南
    注: 只能更新订阅者 URL。无法更新 message group
  • 要删除订阅者,必须使用 DELETE 方法执行 API 调用。有关详细信息,请参见 VMware Aria Operations for Networks API 指南

    成功删除订阅者后,数据发布可能需要长达五分钟的时间才能停止。

3. 从数据总线收到的消息格式

作为各种消息组的一部分收到的消息是包含多条消息的列表,具有通用的高层结构。列表中的每条消息都是一个云事件格式的对象。要了解有关云事件的更多信息,请参见 cloudevents

所有消息都有两组特定字段:

  • 通用结构 - 在所有消息组中通用。例如:
    "id": "14cfd27c-76d8-43e3-9fe9-f53bf69c0c5e", 
        "type": "Application", 
        "specversion": "1.0", 
        "source": "CAESBkFCQ0RFRg==", 
        "messageGroup": "applications", 
        "status": "CREATE", 
  • 消息组特定的结构 - 独特于每个消息组。例如,以下是应用程序消息中的数据对象,独特于应用程序消息组:
        "data": { 
          "entity_id": "1:561:0", 
          "entity_type": "APPLICATION", 
          "name": "app1", 
          "created_by": "test@vnera.com", 
          "creation_time": 1637303575039, 
          "last_modified_by": "test@vnera.com", 
          "last_modified_time": 1637303575039, 
          "source": "MANUAL", 
          "tiers": [ 
            { 
              "entity_id": "1:562:1", 
              "entity_type": "TIER", 
              "name": "app1_t1" 
           } 
          ] 
        } 

数据总线消息中对象的结构与公共 API 响应的结构定义一致,但使用子集的衡量指标除外。消息结构在 VMware Aria Operations for Networks 的不同版本之间向后兼容。在更高版本中,可能增加了新字段。有关每个消息组的消息的详细结构,请参见 VMware Aria Operations for Networks API 指南

下表列出了每个消息组的不同类型消息的名称:

消息组 消息的类型或结构定义
警示(仅限问题事件) 实体消息列表
应用程序 应用程序消息列表
流消息
衡量指标

衡量指标数据的结构不同于公共 API,以使消息更精简。

[
    {
        "id": "string",
        "type": "string",
        "specversion": "string",
        "source": "string",
        "message_group": "metrics",
        "data": {
            "metric": "string",
            "interval": 0,
            "timestamp": 0,
            "unit": "string",
            "entity_type": "string",
            "points": [
                {
                    "entity_id": "string",
                    "value": 0
                }
            ]
        }
    }
]