活动
使用事件流近乎实时地监控来自资产的特定事件和活动数据。
流媒体网络数据包括以下事件数据:
-
端口 - 上线/下线事件。
-
连接 - 上/下连接和属性更改事件。
-
Fabric 云路由器 - BGP 会话状态、路由聚合状态和路由过滤器状态事件。
-
网络边缘虚拟设备 - 访问控制列表 (ACL)、设备属性、重启和设备链路组 (DLG) 事件。
-
项目 - 项目事件数据包含项目中所有资产的生命周期状态事件。资产的任何状态变更,包括配置、取消配置和故障,都会触发事件。生命周期事件涵盖以下方面:
- 织物端口
- 网络边缘虚拟设备
- 织物云路由器
- 精确时间
- Internet Access
- 虚拟连接 - 对于端口或云路由器作为 A 侧的连接,提供配置/取消配置事件数据。对于端口到 ETree 的连接、云路由器到虚拟设备的连接或云路由器到 IPWAN 的连接,不提供故障事件数据。
-
组织事件 - 这些事件来自访问管理器和资源管理器,用于通知组织管理员组织内发生的变化事件,例如为用户添加或删除角色。
-
公司简介 - 简介属性、标签和生命周期事件。
请参阅支持的事件列表。
活动形式
我们的活动使用 CloudEvents 规范来格式化所有活动数据。我们所有的活动数据模式和数据类型都发布在 /equinix/equinix-cloudevents GitHub 存储库中。
查看事件
您可以在客户门户中查看以下事件:
- 织物端口
- 织物云路由器
- 精确时间服务
- 端口或云路由器为 A 侧的虚拟连接。
-
登录客户门户 Fabric 仪表盘。
-
导航至您的_端口清单_、Fabric Cloud Router清单、精确时间清单_或_连接清单。
-
选择端口、云路由器、精确时间服务或虚拟连接。
-
在资产详情页面中,点击_事件_。

通过 API 查看事件
您可以从 Equinix API 获取单个资产的事件。为了使事件数据可在 API 中使用,您必须首先创建一个流,然后将资产附加到到该流。
每次调用都需要对资产拥有读取权限。目前,云事件调用支持的资产类型包括端口、连接、路由器、城域网、组织、项目、虚拟设备和公司配置文件。
当前对 GET /fabric/v4/{asset}/{assetId}/cloudevents 和 POST /fabric/v4/cloudevents/search 的分页限制设置为 100。
此外,POST /fabric/v4/cloudevents/search 端点要求主题具有强制性的第一级资源 UUID。
获取事件
要获取资产的云事件,请向 /fabric/v4/{asset}/{assetId}/cloudevents 端点发送 GET 请求。在路径中指定资产类型和 ID。使用可选的 fromDateTime 和 toDateTime 查询参数,可以将结果范围缩小到特定时间段。
示例 cURL 请求:
curl -X GET 'https://api.equinix.com/fabric/v4/routers/<routerId>/cloudevents?fromDateTime=2025-04-15T17:31:00.000Z&toDateTime=2025-05-15T17:31:00.000Z' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>'
示例响应:
{
"pagination": {
"offset": 0,
"limit": 20,
"total": 4,
"next": null,
"previous": null
},
"data": [
{
"specversion": "1.0",
"source": "https://api.equinix.com/fabric/v4/events",
"id": "7e5c0bbe-98e7-4486-b760-fdc39807da5e",
"time": "2025-04-30T01:43:13Z",
"type": "equinix.fabric.router.state.deprovisioned",
"subject": "/fabric/v4/routers/89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"dataschema": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/fabric/v1/ChangeEvent.json",
"datacontenttype": "application/json",
"severitynumber": "9",
"severitytext": "INFO",
"equinixproject": "<projectId>",
"authtype": "system",
"authid": "equinix",
"data": {
"message": "router named FCR-NAME state changed to deprovisioned",
"resource": {
"href": "https://api.equinix.com/fabric/v4/routers/89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"uuid": "89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"type": "XF_ROUTER",
"name": "FCR-NAME",
"state": "DEPROVISIONED"
},
"auth": {
"type": "system",
"id": "equinix"
}
}
},
{
"specversion": "1.0",
"source": "https://api.equinix.com/fabric/v4/events",
"id": "a6dc56f2-af4e-40c0-9910-4850459f8559",
"time": "2025-04-30T01:43:11Z",
"type": "equinix.fabric.router.state.deprovisioning",
"subject": "/fabric/v4/routers/89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"dataschema": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/fabric/v1/ChangeEvent.json",
"datacontenttype": "application/json",
"severitynumber": "9",
"severitytext": "INFO",
"equinixproject": "<projectId>",
"authtype": "user",
"authid": "12345",
"data": {
"message": "router named FCR-NAME state changed to deprovisioning",
"resource": {
"href": "https://api.equinix.com/fabric/v4/routers/89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"uuid": "89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"type": "XF_ROUTER",
"name": "FCR-NAME",
"state": "DEPROVISIONING"
},
"auth": {
"type": "user",
"id": "12345",
"name": "user1 user1",
"email": "user1@test.com"
}
}
},
{
"specversion": "1.0",
"source": "https://api.equinix.com/fabric/v4/events",
"id": "1e4b57d5-97e4-4370-b675-625cd0ed0a4e",
"time": "2025-04-30T01:43:06Z",
"type": "equinix.fabric.router.state.provisioned",
"subject": "/fabric/v4/routers/89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"dataschema": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/fabric/v1/ChangeEvent.json",
"datacontenttype": "application/json",
"severitynumber": "9",
"severitytext": "INFO",
"equinixproject": "<projectId>",
"authtype": "system",
"authid": "equinix",
"data": {
"message": "Router named FCR-NAME successfully provisioned",
"resource": {
"href": "https://api.equinix.com/fabric/v4/routers/89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"uuid": "89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"type": "XF_ROUTER",
"name": "FCR-NAME",
"state": "PROVISIONED"
},
"auth": {
"type": "system",
"id": "equinix"
}
}
},
{
"specversion": "1.0",
"source": "https://api.equinix.com/fabric/v4/events",
"id": "1aa36503-c8f8-4c9c-a52c-06ed67f92a2d",
"time": "2025-04-30T01:43:05Z",
"type": "equinix.fabric.router.state.provisioning",
"subject": "/fabric/v4/routers/89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"dataschema": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/fabric/v1/ChangeEvent.json",
"datacontenttype": "application/json",
"severitynumber": "9",
"severitytext": "INFO",
"equinixproject": "<projectId>",
"authtype": "user",
"authid": "12345",
"data": {
"message": "router named FCR-NAME state changed to provisioning",
"resource": {
"href": "https://api.equinix.com/fabric/v4/routers/89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"uuid": "89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"type": "XF_ROUTER",
"name": "FCR-NAME",
"state": "PROVISIONING"
},
"auth": {
"type": "user",
"id": "12345",
"name": "user1 user1",
"email": "user1@test.com"
}
}
}
]
}
搜索活动
要在云事件中搜索资产,请向 /fabric/v4/cloudevents/search 端点发送 POST 请求。在请求正文中指定您的搜索条件。
示例 cURL 请求:
curl -X POST 'https://api.equinix.com/fabric/v4/cloudevents/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer $TOKEN' \
-d '{
"filter": {
"and": [
{
"property": "/type",
"operator": "IN",
"values": [
"equinix.network_edge.device.*"
]
},
{
"property": "/subject",
"operator": "IN",
"values": [
"/ne/v1/devices/903bb0ad-65cd-422c-94d3-a506cce0a36a*"
]
},
{
"property": "/time",
"operator": "BETWEEN",
"values": [
"2025-08-15T17:31:00.000Z",
"2025-08-25T17:31:00.000Z"
]
}
]
},
"pagination": {
"offset": 0,
"limit": 20
}
}'
完整的可搜索参数列表可在API 参考中找到。
示例响应:
{
"pagination": {
"offset": 0,
"limit": 20,
"total": 2
},
"data": [
{
"specversion": "1.0",
"source": "https://api.equinix.com/fabric/v4/cloudevents",
"id": "54ebab18-5e38-46bf-af00-cdbd0bbf7207",
"time": "2025-08-27T20:18:47.300Z",
"type": "equinix.network_edge.device.attribute.changed",
"subject": "/ne/v1/devices/903bb0ad-65cd-422c-94d3-a506cce0a36a",
"datacontenttype": "application/json",
"severitynumber": "9",
"severitytext": "INFO",
"equinixproject": "4565754-1e33-4dfd-b7c8-0383259cf754",
"authtype": "user",
"authid": "132343",
"data": {
"message": "Device Name changed to New-device",
"resource": {
"name": "Network-edge device",
"status": "PROVISIONED",
"uuid": "df23bb0ad-65cd-422c-94d3-a506cce0a36a",
"type": "DEVICE"
},
"authcontext": {
"type": "user",
"id": "132343",
"name": "Test User",
"email": "user@test.com"
}
}
},
{
"specversion": "1.0",
"source": "https://api.equinix.com/fabric/v4/cloudevents",
"id": "71ab91ec-ef19-4def-85f3-1fcac99681c4",
"time": "2025-08-14T19:12:04.726Z",
"type": "equinix.network_edge.device.state.provisioned",
"subject": "/ne/v1/devices/903bb0ad-65cd-422c-94d3-a506cce0a36a",
"datacontenttype": "application/json",
"severitynumber": "9",
"severitytext": "INFO",
"equinixproject": "4565754-1e33-4dfd-b7c8-0383259cf754",
"authtype": "system",
"authid": "equinix",
"data": {
"message": "Device status changed",
"resource": {
"name": "Network-edge device",
"status": "PROVISIONED",
"uuid": "903bb0ad-65cd-422c-94d3-a506cce0a36a",
"type": "DEVICE"
},
"authcontext": {
"type": "user",
"id": "132343",
"name": "Test User",
"email": "user@test.com"
}
}
}
]
}
获取活动详情
要获取指定云事件的详细信息,请向 /fabric/v4/cloudevents/<cloudEventId> 端点发送 GET 请求。
示例 cURL 请求:
curl -X GET 'https://api.equinix.com/fabric/v4/cloudevents/<cloudEventId>' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>'
示例响应:
{
"specversion": "1.0",
"source": "https://api.equinix.com/fabric/v4/events",
"id": "a6dc56f2-af4e-40c0-9910-4850459f8559",
"time": "2025-04-30T01:43:11Z",
"type": "equinix.fabric.router.state.deprovisioning",
"subject": "/fabric/v4/routers/89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"dataschema": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/fabric/v1/ChangeEvent.json",
"datacontenttype": "application/json",
"severitynumber": "9",
"severitytext": "INFO",
"equinixproject": "<projectId>",
"authtype": "user",
"authid": "12345",
"data": {
"message": "router named FCR-NAME state changed to deprovisioning",
"resource": {
"href": "https://api.equinix.com/fabric/v4/routers/89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"uuid": "89b6af8b-21b9-4e20-ab88-2e6e89b68e1d",
"type": "XF_ROUTER",
"name": "FCR-NAME",
"state": "DEPROVISIONING"
},
"auth": {
"type": "user",
"id": "12345",
"name": "user1 user1",
"email": "user1@test.com"
}
}
}
在接收器集成中接收事件
创建流并向该流添加资产后,您可以通过订阅该流来创建订阅,以便将事件发送到您选择的第三方数据收集器。
一旦您创建了订阅,您的接收器就会在事件发生时接收事件。
例如,如果您将一个项目附加到您的流,那么您可以在创建或删除资产时查看项目中所有受支持资产的资产生命周期事件。
因此,如果您登录客户门户并创建端口、连接、服务令牌、网络等,您的接收器将收到一个事件:
{ [-]
_source: https://api.equinix.com/fabric/v4/cloudevents
data: { [-]
message: Router named router-name state changed to provisioning
resource:[+]
}
}
equinixproject: 377533000114703
id: d2bb7d5d-3e7b-4638-9023-acdb08cc38a4
severitynumber: 9
severitytext: INFO
subject: /fabric/v4/routers/3cbd8a7f-6878-4492-88a9-1a8be65cc461
time: 2025-02-04T01:43:45Z
type: equinix.fabric.router.state.provisioning
Show as raw text
host = http-inputs-<host>.splunkcloud.com
source = Equinix
source = https://api.equinix.com/fabric/v4/cloudevents
另一个例子,对于配置了 Direct 和 BGP 路由协议的 FCR 到端口连接,并且您启用或禁用 BGP,您的接收器会收到一个事件。
订阅激活后,您可以前往数据收集器并使用 index=" 进行搜索。<name_of_splunk_hec>此搜索应返回 Splunk 收集的相关事件数据。
{ [-]
_source: https://api.equinix.com/fabric/v4/cloudevents
equinixmessage: Virtual port status changed to UP
id: 5345e011-4478-484b-beb4-38c940ff2f9e
severitynumber: 9
severitytext: INFO
subject: /fabric/v4/ports/c4d85dbe-f965-9659-f7e0-306a5c00af26
time: 2024-07-26T12:31:53.975Z
type: equinix.fabric.port.status.up
}
Show as raw text
host = http-inputs-equinix-digin.splunkcloud.com
source = Equinix
sourcetype = _json