使用流式传输数据总线
Last Updated January 24, 2025

数据总线是一个框架,用于使用 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、ServiceNow 和 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
支持以下消息组:
消息组
子消息组
消息详情
衡量指标
vms-metrics
衡量指标、时间间隔、时间戳、单位、实体类型和点。
hosts-metrics
衡量指标、时间间隔、时间戳、单位、实体类型和点。
flows-metrics
衡量指标、时间间隔、时间戳、单位、实体类型和点。
nics-metrics
衡量指标、时间间隔、时间戳、单位、实体类型和点。
switchports-metrics
衡量指标、时间间隔、时间戳、单位、实体类型和点。
nsxt-metrics
衡量指标、时间间隔、时间戳、单位、实体类型和点。
应用程序
不适用
实体 ID、实体类型、名称、创建者、创建时间、上次修改者、上次修改时间、源、层和发现信息。
不适用
源虚拟机、目标虚拟机、源 IP、目标 IP、端口、源文件夹、目标文件夹、协议、源 IP 集、目标 IP 集、源安全组、目标安全组、流量类型、源安全标记、目标安全标记、源虚拟机标记、目标虚拟机标记、在主机内、防火墙操作和流标记。
问题
不适用
实体 ID、实体类型、名称、定位点实体、消息、事件标记、管理状态、已存档、事件时间(毫秒)、事件类型和严重性。
与配置相关的消息组
消息组
消息详情
虚拟机
实体 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. 注册、更新或删除订阅者

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 指南
下表列出了每个消息组的不同类型消息的名称:
消息组
消息的类型或结构定义
警示(仅限问题事件)
实体消息列表。有关详细信息,请参见
《VMware Aria Operations for Networks API 参考》
应用程序
应用程序消息列表。有关详细信息,请参见
《VMware Aria Operations for Networks API 参考》
流消息。有关详细信息,请参见
《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
                }
            ]
        }
    }
]