跳至内容

事件流

!!! 信息“通知”

Equinix Metal可观测性功能目前处于测试阶段,并非所有客户均可使用。此功能仅供评估和测试使用。此功能目前免费提供,且不在 SLA 的保障范围内。

您可以使用事件流近乎实时地监控来自Metal组织的特定事件和活动数据。事件流可以提供关键事件数据,帮助您了解和分析业务需求。这些事件包括:

  • 帐户和组织事件
  • 服务和计费事件
  • 设备管理事件
  • 网络管理活动

事件流仅对组织的所有者和管理员可见。

限制条件

目前,事件流仅支持将 Splunk 作为目标。可观测性流数据通过 Splunk HTTP 事件收集器 ("HEC") 接口发送到 Splunk。要接收可观测性流数据,您必须先在 Splunk 实例中配置 HTTP 事件收集器。我们建议创建一个专门用于接收可观测性流数据的收集器。

将可观测性流数据发送到 Splunk 受到以下限制:

  • 为确保传输数据加密,仅允许使用 HTTPS 连接。不支持使用纯文本、不安全的 HTTP 连接将数据发送到 Splunk HEC。
  • 所有可观察性流数据都作为 JSON 事件发送到 Splunk;不支持原始数据。
  • JSON 事件将发送到标准 /services/collector/event 端点;不支持其他端点 URL。
  • JSON 事件将发送到创建 Splunk HTTP 事件收集器时配置的默认索引。不支持覆盖发送到 Splunk 的事件索引。
  • 不支持索引器确认。

可观察性 API

如果您正在使用 Observability API,则应注意它与当前的 Equinix Metal API 之间的一些差异。

  • 新的 API 端点
  • 新的身份验证机制

首先,可观测性有自己的 API 端点,可以通过 https://observability.equinixmetal.net 访问。

其次,可观测性 API 具有身份验证机制,您需要使用 Equinix Metal API 密钥 交换一个有效期较短的 JSON Web 令牌 (JWT),该令牌用于所有可观测性请求的身份验证。令牌会在 5 分钟后过期。要获取 JWT,请向 iam.metalctrl.io/api-keys/exchange 端点发送 POST 请求。

curl -X POST \
-H "Authorization: bearer <API_TOKEN>" \
https://iam.metalctrl.io/api-keys/exchange

响应将是一个 JSON "access_token",您可以使用它来验证您对 Observability API 的请求。

{
"access_token": "eyJ....98"
}

可观察性 API 不接受Equinix Metal API 密钥进行身份验证。

创建事件流

创建事件流,将服务器数据导出到 Splunk 进行存储和分析。要创建流,请执行以下操作:

  1. 前往[Equinix Metal Portal并输入您的凭据登录门户。

  2. 从“组织”下拉菜单中选择要创建事件流的组织。

  3. 点击“可观测性”选项卡。

    Event Streams page from the Observability tab

  4. 点击,创建事件流

  5. 在“创建事件流”模态框中,在“名称”字段中输入一个易于理解的名称。

  6. (可选)在描述字段中输入事件流的描述​​。

  7. 在提供的字段中输入您的 Splunk 主机名和 API 密钥,以将数据发送到 Splunk。

    连接主机名应取自[HTTP事件收集器URI。主机名应指定为字符串,并可选择性地添加端口号后缀;有效值包括http-inputs-my-org.splunkcloud.comsplunk.example.com:8443

    API 密钥应为创建 Splunk HEC 端点时生成的 HTTP 事件收集器令牌。该令牌将以加密格式存储,只有发送可观测性流数据的工作线程才能解密。

测试流连接

在将数据连接流式传输到 Splunk 之前,必须对其进行测试以确保其有效性。要测试流连接,请执行以下操作:

  1. 在“创建事件流”模态框中,如果您尚未输入 Splunk 主机名和 API 密钥,请在提供的字段中输入。

  2. 点击,测试流连接

    如果屏幕上显示“测试通过”消息,则表示连接有效。如果测试连接未通过,则会显示错误消息。您必须收到“测试通过”消息才能确保测试连接有效,从而可以将数据流传输到 Splunk。

    Testing an event stream in the console

  3. 点击保存以保存事件流。 事件流保存在“可观测性”页面上的“事件流”表中。

管理事件流

在 Metal 控制台中创建事件流后,您可以从组织的“可观测性”选项卡管理事件流。

Event Streams Table

删除事件流

要停止流向 Splunk 实例的数据流,您可以删除事件流。要删除事件流,请执行以下操作:

  1. 在“事件流”表中,单击“删除”列中的垃圾桶图标。 删除事件流窗口出现。

  2. 在字段中输入删除,然后单击删除

一旦流被删除,它将立即停止从源接收新数据,但将继续传输正在传输的数据。所有正在传输的数据均已传输完毕后,该流将被删除,所有资源将被释放。

Splunk 事件元数据

可观测性服务会为发送到您的流的每个审计日志事件设置以下 Splunk 事件元数据 键:

  • time - The timestamp at which the event occurred, specified in seconds since the Unix epoch.
  • source - All events will specify a source of equinix.
  • sourcetype- Audit log events will specify a source type of log.
  • fields - Additional fields for indexing as described below.

索引字段

除了上述标准 Splunk 元数据键之外,可观察性服务还会为发送到您的流的每个日志事件设置以下自定义索引字段。这些字段是可选的,如果不存在,则会被忽略。

  • level - A human-readable indication of the logging level, such as INFO or DEBUG.
  • severity - A numeric severity level; higher numbers indicate more severe events (such as errors or violations).

Splunk 事件数据

发送到 Splunk HTTP 事件收集器(作为 "事件数据")的 event 键的内容是一个结构化的 JSON 文档,其中包含有关正在记录的事件的应用程序特定信息。

有关完整参考,请参阅Splunk 事件架构文档

{
"stream" : {
"streamId" : "dce13c1d-0589-406b-af40-854156a0621e",
"streamName" : "Example Stream"
},
"source" : {
"category" : "audit",
"type" : "api_request",
"service" : "metal",
"organizationId" : "99be473c-ee3c-4aeb-a678-eba3fdae7ca6",
"projectId" : "99be473c-ee3c-4aeb-a678-eba3fdaebeef"

},
"schema" : "v1",
"timestamp" : "2024-04-16T14:58:21.442334Z",
"level" : "INFO",
"eventId" : "6910f03f-ec60-42fc-9e9d-c5f6af2f732d",
"event" : {
"eventName" : "instance_provision_requested",
"status" : "failed",
"auth" : {
"authType" : "user",
"user" : {
"userId" : "582865f9-904b-4061-b536-2420eb01ecdc",
"userName" : "jdoe@equinix.com"
},
"role" : {
"roleName" : "collaborator"
}
},
"httpRequest" : {
"host" : "api.equinix.com",
"method" : "PUT",
"path" : "/metal/v1/projects/99f8e7f1-fe4a-441a-ade9-687743f080f6",
"scheme" : "http",
"statusCode" : 200,
"userAgent" : "metal-cli/metal equinix-sdk-go/0.30.0",
"sourceIpAddress" : "111.111.111.11"
}
}
}
此页面有帮助吗?