0

每当 GCP 机密接近其到期日期时,它都会在 Secret Manager 机密资源中创建到期日志,如此所述。它指出可以创建 基于日志的指标并使用它们为即将到期的警报创建警报。但是基于日志的指标没有为此提供过滤器。如何实现?

4

3 回答 3

1

创建基于日志的指标的最简单方法是从日志资源管理器页面。您可以使用如下查询来查找密钥将在 1 小时内到期的所有日志消息:

resource.type="secretmanager.googleapis.com/Secret"
jsonPayload.type="EXPIRES_IN_1_HOUR"

Secret Manager 过期文档中所述,您可以订阅其他事件类型,包括:

  • EXPIRES_IN_30_DAYS
  • EXPIRES_IN_7_DAYS
  • EXPIRES_IN_1_DAY
  • EXPIRES_IN_6_HOURS
  • EXPIRES_IN_1_HOUR
  • EXPIRED

然后,从“操作”菜单中,选择“创建指标”:

创建指标

指标类型应为“计数器”。您可以提供任何您想要的名称和描述。单位应该是无单位的 (1)。

您可以选择添加标签。例如,如果您想使用密钥名称标记指标,您可以添加一个名为“secret”的标签以针对该jsonPayload.name字段。如果你想获得额外的花哨,你可以projects/.../secrets使用正则表达式提取器去除前导前缀,如projects/.+/secrets/(.+).

标签提取器


创建指标后,您可以在 Monitoring -> Alerting -> Create Policy 下创建警报。选择您的指标的名称(它将是 logging.googleapis.com/user/NAME_YOU_CHOSE)。

将对齐器设置为计数,将聚合器设置为求和,然后将条件设置为大于 1。

您需要配置通知通道才能真正收到警报,但您也可以在 Web UI 中观看警报触发。

于 2021-07-20T17:29:50.810 回答
0

要查看 Secret 的过期日志,请在 Logs Explorer 中使用以下日志查询,

severity=NOTICE
jsonPayload.type: "EXPIRE"

然后我们可以在这个过滤器上创建一个用户定义的指标,按照以下步骤创建计数器类型的基于日志的指标:

  1. 转到日志记录 > 基于日志的指标页面

  2. 单击创建度量,选择度量类型为“计数器”并填写名称、描述和单位(可以留空)。

  3. 在构建过滤器列中使用以下查询,

    severity=NOTICE  
    jsonPayload.type: "EXPIRE"
    
  4. 单击创建度量。有关更多信息,请参阅创建计数器指标

创建用户定义的指标后,我们现在根据我们所需的违规规则在上述指标上创建警报,按照以下步骤在基于日志的计数器指标上创建警报策略:

  1. 转至日志记录 > 基于日志的指标页面。
  2. 找到您要探索的指标,然后在指标的更多菜单中选择从指标创建警报。条件窗格打开
  3. 在 Target 对话框中,Metric 字段会自动填充用户定义的指标,然后我们可以对每个字段进行所需的修改,然后单击 Save 并单击 Next。
  4. 在通知渠道中,我们提供了许多渠道,例如邮件、短信、Cloud Pub/Sub..等,我们可以从中选择自己喜欢的渠道。
  5. 接下来,在警报名称列中为策略命名,单击保存。有关详细信息,请参阅针对计数器指标创建警报策略

我使用我的邮件 ID 作为通知渠道实施了上述步骤,并且能够毫无问题地查看警报。

于 2021-07-20T15:15:35.397 回答
0

在@sethvargo 共享的屏幕截图的下拉菜单中,Create log alert现在可以使用它来直接创建警报策略,而无需通过Monitoring -> Alerting -> Create Policy

以下屏幕截图中的此类生成警报策略示例:

在此处输入图像描述

于 2021-07-20T17:54:19.957 回答