使用 Cloud Monitoring 分析注入情况

支持的服务:

本文档介绍了如何使用 Cloud Monitoring 接收注入通知。Google SecOps 使用 Cloud Monitoring 发送注入通知。使用此功能可接收注入通知和查看注入量。您可以将电子邮件通知集成到现有工作流中。当注入值达到某些预定义级别时,系统会触发通知。 在 Cloud Monitoring 文档中,通知称为“提醒”

准备工作

为健康状况指标设置注入通知

如需设置用于监控特定于 Google SecOps 的注入健康状况指标的通知,请执行以下操作:

  1. 在 Google Cloud 控制台中,选择 Monitoring

  2. 在导航窗格中,选择提醒 ,然后点击创建政策

  3. 选择指标 页面上,点击选择指标

  4. 选择指标 菜单中,点击以下任一选项:

    • 活跃 开关,用于过滤和显示过去 25 小时内包含数据的资源和指标。如果您未选择此选项,系统会列出所有资源和指标类型。
    • 组织/文件夹级 开关,用于监控组织和文件夹的资源及指标,例如使用方配额用量或 BigQuery 槽分配。
  5. 选择以下任一指标:

    • 依次选择 Chronicle Collector > Ingestion ,然后选择注入的日志总数注入的日志总大小

    • 依次选择 Chronicle Collector > Normalizer ,然后选择记录总数事件总数

    • 依次选择 Chronicle Log Type > Outofband ,然后选择注入的日志总数(Feed)注入的日志总大小(Feed)

  6. 点击应用

添加过滤条件

  1. 选择指标 页面上,点击添加过滤条件

    1. 在过滤条件对话框中,选择 collector_id 标签、比较条件和过滤条件值。

    2. 选择以下一个或多个过滤条件:

      • project_id:与此资源关联的 Google Cloud 项目的 ID。

      • location:包含收集器对象的集群的物理位置。 我们建议您不要使用此字段。如果您将此字段留空,Google SecOps 可以使用现有信息自动确定数据的存储位置。

      • collector_id:收集器的 ID。

      • log_type:日志类型的名称。

      • 指标标签 > 命名空间:日志的命名空间。

      • feed_name:Feed 的名称。

      • LogType:日志的类型。

      • 指标标签 > event_type:事件类型决定了事件中包含哪些字段。事件类型包括 PROCESS_OPENFILE_CREATIONUSER_CREATIONNETWORK_DNS 等值。

      • 指标标签 > state:事件或日志的最终状态。状态为以下其中一种:

        • parsed:日志已成功解析。
        • validated:日志已成功验证。
        • failed_parsing:日志存在解析错误。
        • failed_validation:日志存在验证错误。
        • failed_indexing:日志存在批量索引错误。

      • 指标标签 > drop_reason_code:如果注入来源是 Google SecOps 转发器,则此字段会填充,并指明在规范化期间丢弃日志的原因。

      • 指标标签 > ingestion_source:使用 Ingestion API 注入日志时,注入标签中存在的注入来源。

    3. 选择一个特殊收集器 ID。collector_id 也可以是转发器 ID 或基于注入方法的特殊 ID:

      • aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:
        表示使用 Feed Management API 或页面创建的所有 Feed。如需详细了解 Feed 管理,请参阅 Feed 管理Feed Management API
      • aaaa1111-aaaa-1111-aaaa-1111aaaa1111:
        表示收集代理,包括 Bindplane(Google 电子版)。

      • aaaa1111-aaaa-1111-aaaa-1111aaaa1112:
        Bindplane Enterprise(Google 版)。

      • aaaa1111-aaaa-1111-aaaa-1111aaaa1113:
        Bindplane Enterprise.

      • aaaa1111-aaaa-1111-aaaa-1111aaaa1114:
        无头收集器。

      • aaaa1111-aaaa-1111-aaaa-1111aaaa1115:
        Chronicle API。如需了解详情,请参阅注入方法

      • aaaa2222-aaaa-2222-aaaa-2222aaaa2222:
        通过 HTTPS 推送方法注入的日志,包括 Webhook、Amazon Kinesis Firehose 和 Google Cloud Pub/Sub 来源类型 Feed。

      • aaaa3333-aaaa-3333-aaaa-3333aaaa3333:
        Cloud Storage 日志,包括通过 Event Threat Detection 注入的日志。

      • aaaa4444-aaaa-4444-aaaa-4444aaaa4444
        通过 Azure 事件中心 Feed 集成注入的日志。这包括 Microsoft Azure 事件中心来源类型 Feed。

      • bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb:
        表示使用旧版 Backstory Ingestion API unstructuredlogentries 方法的所有注入来源。如需了解详情,请参阅旧版 Google SecOps Ingestion API

      • cccccccc-cccc-cccc-cccc-cccccccccccc
        表示使用旧版 Backstory Ingestion API udmevents 方法的所有注入来源。

      • dddddddd-dddd-dddd-dddd-dddddddddddd:
        表示通过内部 API 注入的任何日志,这些日志不是通过 OutOfBand (OOB) 处理器注入,也不是通过 Google Cloud 日志注入。

      • eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee
        表示用于CreateEntitiescollector_id

  2. 转换数据 部分,执行以下操作:

    1. 时间序列聚合 字段设置为 sum
    2. 时间序列分组依据 字段设置为 project_id

  3. 可选:设置包含多个条件的提醒政策。如需在提醒政策中创建包含多个条件的 注入通知,请参阅 具有多个 条件的政策

Google SecOps 转发器指标和关联的过滤条件

下表介绍了可用的 Google SecOps 转发器指标和关联的过滤条件。

Google SecOps 转发器指标 过滤条件
容器已用内存 log_typecollector_id
容器已用磁盘空间 log_typecollector_id
容器 cpu_used log_typecollector_id
日志 drop_count log_typecollector_idinput_typereason
buffer_used log_typecollector_idbuffer_typeinput_type
last_heartbeat log_typecollector_idinput_type

设置示例政策以检测静默的 Google SecOps 转发器

以下示例政策会检测所有 Google SecOps 转发器,如果 Google SecOps 转发器在 60 分钟内未发送日志,则会发送提醒。这可能不适用于您要监控的所有 Google SecOps 转发器。 例如,您可以监控一个或多个 Google SecOps 转发器中的单个日志源,并使用不同的阈值,或者根据 Google SecOps 转发器的报告频率排除它们。

  1. 在 Google Cloud 控制台中,选择 Monitoring
    前往 Cloud Monitoring

  2. 点击创建政策

  3. 选择指标 页面上,依次选择 Chronicle Collector > Ingestion > 注入的日志总数

  4. 点击应用

  5. 转换数据 部分,执行以下操作:

    1. 滚动窗口 设置为最长 1 小时的时间*。
    2. 滚动窗口函数 设置为平均值
    3. 时间序列聚合 设置为平均值
    4. 时间序列分组依据 设置为 collector_id 。如果未将其设置为 按 collector_id 分组依据,则系统会针对每个日志源触发提醒。
  6. 点击下一步

  7. 选择指标缺失 ,然后执行以下操作:

    1. 提醒触发器 设置为任何违反时序的情况
    2. 触发器缺失时间 设置为最长 1 小时的时间。
    3. 输入条件的名称 ,然后点击下一步
  8. 通知和名称 部分,执行以下操作:

    1. 使用通知渠道 字段中选择一个通知渠道。我们建议您配置多个通知渠道,以实现冗余。
    2. 配置突发事件关闭通知。
    3. 将政策用户标签设置为适当的级别。此设置用于设置政策的提醒严重级别。
    4. 输入您要作为提醒的一部分发送的任何文档。
    5. 输入提醒政策的名称。

向全方位政策添加排除项

可能需要从全方位政策中排除某些 Google SecOps 转发器 ,因为它们可能只是流量较低,或者需要 更自定义的提醒政策。

  1. 在 Google Cloud 控制台中,选择 Monitoring

  2. 在导航页面上,选择提醒 ,然后在政策 部分中,选择要修改的政策。

  3. 政策详情 页面上,点击修改

  4. 修改提醒政策 页面上的添加过滤条件 部分下,选择添加过滤条件 ,然后执行以下操作:

    1. 选择 collector_id 标签以及要从政策中排除的收集器。
    2. 将比较条件设置为 !=,将值设置为要排除的 collector_id,然后点击完成
    3. 针对需要排除的每个收集器重复此操作。如果您想使用以下格式,还可以使用正则表达式仅通过一个过滤条件排除多个收集器:

      (?:aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa|bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb|cccccccc-cccc-cccc-cccc-cccccccccccc)

  5. 点击保存政策

设置示例政策以检测静默的 Google SecOps 收集代理

以下示例政策会检测所有 Google SecOps 收集代理,如果 Google SecOps 收集代理在 60 分钟内未发送日志,则会发送提醒。 此示例可能不适用于您要监控的所有 Google SecOps 收集代理。 例如,您可以监控一个或多个 Google SecOps 收集代理中的单个日志源,并使用不同的阈值,或者根据 Google SecOps 收集代理的报告频率排除它们。

  1. 在 Google Cloud 控制台中,选择 Monitoring
    前往 Cloud Monitoring

  2. 点击创建政策

  3. 选择指标 页面上,依次选择 Chronicle Collector > Agent > Exporter Accepted Spans Count

  4. 点击应用

  5. 转换数据 部分,执行以下操作:

    1. 滚动窗口 设置为最长 1 小时的时间*。
    2. 滚动窗口函数 设置为平均值
    3. 时间序列聚合 设置为平均值
    4. 时间序列分组依据 设置为 collector_id 。如果未将其设置为按 collector_id 分组依据,则系统会针对每个日志源触发提醒。
  6. 点击下一步

  7. 选择指标缺失 ,然后执行以下操作:

    1. 提醒触发器 设置为任何违反时序的情况
    2. 触发器缺失时间 设置为最长 1 小时的时间*。
    3. 输入条件的名称 ,然后点击下一步
  8. 通知和名称 部分,执行以下操作:

    1. 使用通知渠道 字段中选择一个通知渠道。我们建议您配置多个通知渠道,以实现冗余。
    2. 配置突发事件关闭通知。
    3. 将政策用户标签设置为适当的级别。此设置用于设置政策的提醒严重级别。
    4. 输入您要作为提醒的一部分发送的任何文档。
    5. 输入提醒政策的名称。

设置示例政策以检测防火墙服务器高可用性集群的故障

以下示例政策会检测 Linux 防火墙服务器的主动-被动高可用性 (HA) 集群的两个成员何时停止报告,这表示发生故障。

在以下示例政策中,HA 集群成员的名称为 prod-linux-server-1prod-linux-server-2。如需设置示例政策以检测防火墙服务器高可用性集群的故障,请执行以下操作:

  1. 在 Google Cloud 控制台中,选择 Monitoring
    前往 Cloud Monitoring

  2. 点击创建政策

  3. 政策配置模式 设置为构建器

  4. 对于选择指标,依次选择 Chronicle Collector > Ingestion > 注入的日志总数

  5. 点击应用

  6. 添加过滤条件 部分,输入以下内容:

    ingestion_source one_of prod-linux-server-1, prod-linux-server-2

  7. 转换数据 部分,执行以下操作:

    1. 滚动窗口 设置为 5 分钟
    2. 滚动窗口函数 设置为速率
    3. 时间序列聚合 设置为平均值
    4. 时间序列分组依据 设置为 ingestion_source
  8. 点击下一步

  9. 条件类型 选项中,选择指标缺失 ,然后执行以下操作:

    1. 提醒触发器 设置为所有时序违反

    2. 触发器缺失时间 设置为 5 分钟

    3. 条件名称 设置为 Linux-Active-Passive-Firewall-Cluster

  10. 点击下一步

  11. 通知和名称 部分,执行以下操作:

    1. 使用通知渠道 字段中选择一个通知渠道。我们建议您配置多个通知渠道,以实现冗余。
    2. 配置突发事件关闭通知。
    3. 将政策用户标签设置为适当的级别。此设置用于设置政策的提醒严重级别。
    4. 输入您要作为提醒的一部分发送的任何文档。
    5. 输入提醒政策的名称。

按日志类型查看注入总数

如需在 Cloud Monitoring 中按日志类型查看注入量,请执行以下操作:

  1. 设置 页面上,选择个人资料

  2. 选择您的 Cloud Monitoring 个人资料。

  3. 个人资料 页面上,在搜索栏中输入 Integrations

  4. 选择 Metrics Explorer

  5. 点击 promQL 以切换到 promQL 查询模式。

  6. 查询 字段中,复制以下内容:

    sum by (log_type) (increase(chronicle_googleapis_com:ingestion_log_bytes_count{monitored_resource="chronicle.googleapis.com/Collector"}[1h]))

  7. 可选:过滤特定日志类型,并将其包含在查询中。

    例如,如需查看日志类型 GCP_CLOUDAUDIT 的注入情况,查询应如下所示:

    sum(increase(chronicle_googleapis_com:ingestion_log_bytes_count{monitored_resource="chronicle.googleapis.com/Collector",log_type="GCP_CLOUDAUDIT"}[1h]))

  8. 结果 部分,选择表格 标签页以查看汇总数据。

  9. 可选:根据需要调整时间范围。

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。