【问题标题】:Vault Telemetry to CloudWatchVault 遥测到 CloudWatch
【发布时间】:2020-07-29 13:50:42
【问题描述】:

我正在尝试通过 Cloudwatch 代理的 StatsD 接口将 Vault 遥测数据流式传输到 CW 指标中,但是,仪表指标值带有基于实例 ID 和标签的前缀,这使得指标无法针对 IaC 托管Cloudwatch 警报。

例如,vault.core.unsealed 遥测事件以 vault_CLOUDWATCH_AGENT_HOSTNAME_core_unsealed_INSTANCE_NAME 而不是我所期待的 vault_core_unsealed 通过。

使用 Terraform 管理这些指标的警报是不可能的,因为它们将具有动态名称,并且基于我们无法控制的集群中被确定为当前领导者的任何实例。

在 Vault 配置 HCL 文件中,我有:

telemetry {
  statsd_address        = "127.0.0.1:8125"
  disable_hostname      = true
  enable_hostname_label = true
}

连同其他几种主机名配置值组合,它们似乎都产生相同的输出。是否有我遗漏的解决方案,或者只是决定将 Cloudwatch 与 StatsD 一起使用来捕获遥测数据时存在缺陷?

【问题讨论】:

    标签: amazon-cloudwatch hashicorp-vault statsd telemetry


    【解决方案1】:

    似乎已经通过一些不明显的配置更改使仪表值名称达到了可用点。

    1. 在 Vault 遥测节中,仅添加带有 StatsD 地址的 disable_hostname = true 属性。另外添加标签只会将主机名移动到指标名称中的不同位置。

    2. Cloudwatch 代理配置有一个省略主机名的选项,可以通过附加设置新配置来切换:

    {
      "agent": {
        "omit_hostname": true
      }
    }
    

    这将阻止 CloudWatch 代理将自己的标签和后缀添加到仪表指标名称并清理生成的一些命名

    1. (可选) 调整 CloudWatch 代理配置中的附加维度。默认情况下,代理将附加实例 ID、映像 ID、自动缩放组名称和实例类型。这可能是您想要保留的内容,但是,如果您想要执行诸如 IaC 创建的指标警报之类的操作,您可能需要删除一些维度以使指标名称可定位(可以通过直接匹配找到)。如果您想调整哪些维度会自动附加到传入的遥测数据,可以将以下内容添加到将替换默认 CloudWatch 代理配置的自定义配置中。
    {
      "metrics": {
        "append_dimensions": {
          "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
        }
      }
    }
    

    只要您知道实例所针对的自动扩展组的名称,来自 Vault 遥测的仪表指标名称将被命名为足够模糊,足以将它们用于 IaC 目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 2016-08-23
      • 1970-01-01
      • 2022-09-25
      相关资源
      最近更新 更多