telemetry 配置节

telemetey 配置节设置各种 Vault 用以向上游系统公布指标(metric)信息的参数。

telemetry {
  statsite_address = "statsite.company.local:8125"
}

telemetry 参数

鉴于 telemetry 配置节可配置参数众多,本节中的参数将根据类别进行分组。

通用

下列参数适用于所有遥测配置:

  • usage_gauge_period (string: "10m") - 设置收集高基数(cardinality)使用数据的时间间隔,例如令牌总数、实体总数、机密总数等。配置为 "none" 将关闭数据收集。
  • maximum_gauge_cardinality (int: 500) - 仪表(Gauge)标签的最大基数。
  • disable_hostname (bool: false) - 设置仪表数据是否添加本地主机名作为前缀。
  • enable_hostname_label (bool: false) - 设置是否要为所有指标数据添加值为本地主机名的 host 标签。启用该功能时推荐关闭 disable_hostname
  • lease_metrics_epsilon (string: "1hr") - 设置用以预测未来到期租约的存储桶尺寸。例如,默认值为 1 小时,那么 vault.expire.leases.by_expiration 将会统计从现在开始将来 1 小时内过期的租约的总数。请注意租约会被分流后放入存储桶中。例如,如果 lease_metrics_epsilon 被设置成 1 小时,租约 A 会在 25 分钟后到期,而租约 B 会在 35 分钟后到期,那么租约 A 会被放在第一个桶内,对应 0-30 分钟,租约 B 会被放在第二个桶中,对应 31-90 分钟。
  • num_lease_metrics_buckets (int: 168) - 设置租约过期的存储桶数量。以默认值 168 举例来说,vault.expire.leases.by_expiration 指标数据会有 168 种不同的标签值,每个标签值对应了 lease_metrics_epsilon 参数切分出的一个存储桶。如果把 lease_metrics_epsilon 配置为默认值 1 小时并且配置 num_lease_metrics_buckets 使用默认值,vault.expire.leases.by_expiration 将会统计从现在开始一周内每小时会过期的租约的总数。
  • add_lease_metrics_namespace_labels (bool: false) - 如果将该参数设置为 true,那么 vault.expire.leases.by_expiration 会同时按照时间以及名字空间进行分割。该参数默认关闭因为开启该功能会导致指标基数变大。
  • filter_default (bool: true) - 该参数控制是否允许过滤器上没有设置的指标。默认为 true,在没有设置过滤器时允许接收所有指标。当设置为 false 且没有配置过滤器时,将不会发送任何指标。
  • prefix_filter (string array: []) - 这是一个过滤规则列表,适用于通过前缀允许/阻止指标,格式如下
["+vault.token", "-vault.expire", "+vault.expire.num_leases"]

前缀为"+"将允许具有给定前缀的任何指标,而前缀为"-"将阻止它们。如果两个规则之间存在重叠,则更具体的规则将优先。如果相同的前缀多次出现,则阻止规则有更高优先级。

statsite

以下参数适用于 statsite

  • statsite_address (striing: "") - 设置将指标数据转发到的 statsite 服务地址:
telemetry {
  statsite_address = "statsite.company.local:8125"
}

statsd

以下参数适用于 statsd

telemetry {
  statsd_address = "statsd.company.local:8125"
}

circonus

以下参数适用于 Circonus

  • circonus_api_token (string: "") - 设置一个用以创建、管理检查的合法的 Circonus API 令牌。如果设置该参数,将启用指标管理。
  • circonus_api_app (string: "nomad") - 设置一个与 API 令牌关联的应用名称。
  • circonus_api_url (string: "https://api.circonus.com/v2") - 设置连接 Circonus API 的基础 URL。
  • circonus_submission_interval (string: "10s") - 设置提交指标到 Circonus 的时间间隔。
  • circonus_submission_url (string: "") - 设置先前创建的 HTTPRAP 检查对象的 check.config.submission_url 字段。
  • circonus_check_id (string: "") - 设置来自先前创建的 HTTPTRAP 检查的检查 ID(不是 check bundle)。 Check API 对象中 check._cid 字段的数字部分。
  • circonus_check_force_metric_activation (bool: false) - 设置是否强制激活已经存在但当前未启用的指标。如果启用了检查管理,则默认行为是在遇到新指标时添加它们。如果检查中已经存在该指标,则它不会被激活。此参数的配置会覆盖该默认行为。
  • circonus_check_instance_id (string: "<hostname>:<application>") - 设置一个唯一标识用以区分来自此实例的指标。它可用于短暂运行的实例在基础架构内移动时保持指标的连续性。默认情况下,该参数被设置为 hostname:application name(例如"host123:nomad")。
  • circonus_check_search_tag (string: <service>:<application>) - 设置一个特殊标签,当它与实例 ID 结合使用时,可以帮助我们在拥有 Submission URL 或 Check ID 时缩小搜索结果的范围。默认情况下,该参数被设置为 service:app(例如"service:nomad")。
  • circonus_check_display_name (string: "") - 设置检查在创建时的名称。该名称将被显示在 Circonus UI Check 列表中。
  • circonus_check_tags (string: "") - 以逗号分隔的附加标签列表,以在创建检查时添加到检查中。
  • circonus_broker_id (string: "") - 设置创建新 Check 时要使用的特定 Circonus Broker 的 ID。对应 Broker API 对象中 broker._cid 字段的数字部分。如果启用了指标管理并且知晓了 Submission URL 或 Check ID,则将尝试使用 Instance ID 和 Search Tag 搜索现有 Check。如果没有找到,将创建一个新的 HTTPTRAP 检查。默认情况下,会使用随机选择的一个 Enterprise Broker,或者默认的 Circonus Public Broker。
  • circonus_broker_select_tag (string: "") - 指定一个特殊标签,当没有提供 Broker ID 时,该标签将用于选择 Circonus Broker。最好的用法是根据此特定实例的运行位置(例如,特定的地理位置或数据中心,dc:sfo)作为参考决定应该使用哪个代理

dogstatsd

以下参数适用于 DogStatsD

  • dogstatsd_addr (string: "") - 该参数设置了 DogStatsD 实例的地址。 DogStatsD 是一种兼容 statsd 风格的协议,增加了用标签和事件信息装饰(decorate)指标的能力。如果设置该参数,Vault 将向该实例发送各种遥测信息以进行聚合。这可用于捕获运行时信息。
  • dogstatsd_tags (string array: []) - 该参数设置了一个全局标签列表,这些标签将添加到发送到 DogStatsD 的所有遥测数据包中。它是一个字符串列表,其中每个字符串格式类似:"my_tag_name:my_tag_value"。

prometheus

下列 telemetry 参数适用于 prometheus

  • prometheus_retention_time (string: "24h") - 设置 Prometheus 指标在内存中驻留的时间。将该参数设置为 0 将会关闭 Prometheus 遥测。
  • disable_hostname (bool: false) - 我们推荐将该参数设置为 true 来防止为指标数据添加主机名前缀。

/v1/sys/metrics 端点只能在主节点上被访问,在备用节点上会自动被禁用。我们可以通过启用未经身份验证的用户访问来开启备用节点上的 /v1/sys/metrics 端点。

Vault 并不使用默认的 Prometheus 路径,所以 Prometheus 必须按照以下路径进行配置。请注意在路径中无法使用 ?format=prometheus 因为 "?" 会被转义,所以必须以参数的方式进行设定。

使用的 Vault 令牌需要对 /v1/sys/metrics 路径有 capabilities = ["read", "list"] 的权限。必须将 Prometheus 的 bearer_tokenbearer_token_file 参数添加到抓取作业中。

以下是一个 Prometheus 配置文件所需要的样例 job_name 配置节:

# prometheus.yml
scrape_configs:
  - job_name: 'vault'
    metrics_path: "/v1/sys/metrics"
    params:
      format: ['prometheus']
    scheme: https
    tls_config:
      ca_file: your_ca_here.pem
    bearer_token: "your_vault_token_here"
    static_configs:
    - targets: ['your_vault_server_here:8200']

Vault 的配置文件中需要添加以下样例遥测配置:

telemetry {
  prometheus_retention_time = "30s"
  disable_hostname = true
}

results matching ""

    No results matching ""