consul v1.12.3 配置文件

https://www.consul.io/docs/agent/config/config-files

  •  connect:此对象允许设置连接功能的选项。可以使用以下子键:
  • addresses:这是一个允许设置绑定地址的嵌套对象。在 Consul 1.0 及更高版本中,这些可以设置为要绑定到的以空格分隔的地址列表,或者可以潜在地解析为多个地址的[go-sockaddr]模板。

    httphttps并且grpc都支持绑定到 Unix 域套接字。可以以 形式指定套接字unix:///path/to/socket。将在给定路径上创建一个新的域套接字。如果指定的文件路径已经存在,Consul 将尝试清除该文件并在其位置创建域套接字。套接字文件的权限可通过 unix_socketsconfig 结构进行调整。

    当针对 Unix 套接字接口运行 Consul 代理命令时,使用 -http-addr参数指定套接字的路径。您还可以将所需的值放在CONSUL_HTTP_ADDR环境变量中。

    对于 TCP 地址,环境变量值应该是 带有端口的 IP 地址。例如:10.0.0.1:8500而不是10.0.0.1。但是,ports在配置文件中定义端口时,端口会在结构中单独设置。

    以下键有效:

    • dns- DNS 服务器。默认为client_addr
    • http- HTTP API。默认为client_addr
    • https- HTTPS API。默认为client_addr
    • grpc- gRPC API。默认为client_addr
  • ports:这是一个嵌套对象,允许为以下键设置绑定端口: 
    • dns- DNS 服务器,-1 禁用。默认 8600。TCP 和 UDP。
    • http- HTTP API,-1 禁用。默认 8500。仅 TCP。
    • https- HTTPS API,-1 禁用。默认 -1(禁用)。我们建议8501https按惯例使用for ,因为某些工具会自动使用它。
    • grpc- gRPC API,-1 禁用。默认 -1(禁用)。 我们建议8502grpc按惯例使用for ,因为某些工具会自动使用它。8502当代理在-dev模式下运行时,默认设置为。目前 gRPC 仅用于向 Envoy 代理公开 Envoy xDS API。
    • serf_lan- Serf LAN 端口。默认 8301。TCP 和 UDP。相当于-serf-lan-port命令行标志
    • serf_wan- Serf WAN 端口。默认 8302。相当于-serf-wan-port命令行标志。设置为 -1 以禁用。注意:这将禁用不推荐的 WAN 联合。各种目录和 WAN 相关端点将返回错误或空结果。TCP 和 UDP。
    • server- 服务器 RPC 地址。默认 8300。仅 TCP。
    • sidecar_min_port- 包含用于自动分配的边车服务注册的最小端口号。默认 21000。设置为0禁用自动端口分配。
    • sidecar_max_port- 包含用于自动分配的边车服务注册的最大端口号。默认 21255。设置为0禁用自动端口分配。
    • expose_min_port- 用于自动分配的公开检查侦听器的包含最小端口号。默认 21500。设置为0禁用自动端口分配。
    • expose_max_port- 包含最大端口号,用于自动分配的公开检查侦听器。默认 21755。设置为0禁用自动端口分配。

界面参数

  • ui-该字段在 Consul 1.9.0 中已弃用。ui_config.enabled而是查看该字段。 等效于-ui命令行标志。

  • ui_config- 此对象允许设置多个子键,这些子键控制 UI 中可用的显示或功能。在 Consul 1.9.0 中添加了使用此节配置 UI。

    可以使用以下子键:

    • enabled- 这将启用来自该代理的 Web UI 服务。布尔值,默认为 false。在-dev模式下,这默认为 true。ui从 1.9.0 之前替换。等效于 -ui命令行标志。

    • dir- 这指定应该从外部目录而不是内置目录提供 Web UI。这允许定制或开发。ui_dir从 1.9.0 之前替换。等效于-ui-dir命令行标志。

    • content_path- 这指定了应从其提供 Web UI 的 HTTP 路径。默认为/ui/. 相当于 -ui-content-path国旗。

    • metrics_provider- 指定 UI 应用于获取服务指标的命名指标提供程序实现。默认情况下,指标被禁用。Consul 1.9.0 包含一个名为的内置提供程序prometheus,可以在此处显式启用。它还需要在 metrics_proxy下面进行配置并将查询定向到 Prometheus 实例,该实例具有数据中心中所有服务的 Envoy 指标。

    • metrics_provider_files- 代理磁盘上 JavaScript 文件的可选绝对路径数组,将作为 UI 的一部分提供。这些文件应包含指标提供程序实现和注册,以便为替代时间序列后端定制或实现 UI 指标查询。

    • metrics_provider_options_json- 这是一个可选的原始 JSON 对象,作为一个字符串,init在启动时传递给提供者实现的方法,以允许传递任意配置。

    • metrics_proxy- 此对象配置一个内部代理 API 端点,它将 GET 请求代理到指标后端,以允许在 UI 中查询指标数据。这简化了指标后端不向 UI 用户浏览器外部公开的部署。它还可以用于使用 API 凭证来增加请求,以允许向 UI 用户提供图表,而无需他们需要单独的访问令牌用于指标后端。

server 

此标志用于控制代理处于服务器模式还是客户端模式。

加密参数

  • auto_encrypt此对象允许设置功能的选项auto_encrypt

    可以使用以下子键:

    • allow_tls(默认为false)此选项 auto_encrypt在服务器上启用,并允许它们自动将证书从 Connect CA 分发到客户端。如果启用,服务器可以接受来自内置 CA 和 Connect CA 的传入连接,以及它们的证书。注意,服务器只会提供内置的 CA 和证书,客户端可以使用从auto_encrypt端点接收到的 CA 来验证它们。如果禁用,配置为的客户端auto_encrypt.tls将无法启动。

    • tls(默认为false)允许客户端向服务器请求连接 CA 和证书,以加密 RPC 通信。-join客户端将向or-retry-join 选项中列出的任何服务器发出请求。这要求每台服务器都已auto_encrypt.allow_tls启用。当使用这两个auto_encrypt选项时,它允许客户端接收在服务器上生成的证书。如果-server-port不是默认值,则也必须将其提供给客户端。通常这是通过 LAN gossip 发现的,但auto_encrypt在信息可以通过 gossip 分发之前发生。最安全的auto_encrypt设置是当客户端提供了内置 CA、verify_server_hostname打开时,以及 ACL 令牌与node.write权限已设置。也可以使用auto_encryptCA 和 ACL,但不使用verify_server_hostname,或仅启用 ACL,或仅使用 CA 和verify_server_hostname,或仅使用 CA,或者最终不使用 CA 且未启用 ACL。在任何情况下,与auto_encrypt端点的通信始终是 TLS 加密的。

      警告:启用auto_encrypt.tlsauto_config功能冲突。只能指定一个选项。

    • dns_san(默认为[])使用此选项时,auto_encrypt从服务器请求的证书将这些 dns_san设置为 DNS SAN。

    • ip_san(默认为[])使用此选项时,auto_encrypt从服务器请求的证书将这些ip_san 设置为 IP SAN。

  • encrypt相当于-encrypt命令行标志

  • encrypt_verify_incoming- 这是一个可选参数,可用于禁用对传入八卦的强制加密,以便在正在运行的集群上从未加密的八卦升级到加密的八卦。有关详细信息,请参阅本节 。默认为true。

  • encrypt_verify_outgoing- 这是一个可选参数,可用于禁用对传出八卦的强制加密,以便在正在运行的集群上从未加密的八卦升级到加密的八卦。有关详细信息,请参阅本节 。默认为true。

performance

在 Consul 0.7 及更高版本中可用,这是一个嵌套对象,允许调整 Consul 中不同子系统的性能。有关更多详细信息,请参阅服务器性能文档。以下参数可用:

  • leave_drain_time- 服务器在优雅离开期间停留的时间,以便允许对其他 Consul 服务器重试请求。在正常情况下,这可以防止客户端在执行 Consul 服务器的滚动更新时遇到“no leader”错误。这是在 Consul 1.0 中添加的。必须是持续时间值,例如 10 秒。默认为 5 秒。
  • raft_multiplier- Consul 服务器用来缩放关键 Raft 时间参数的整数乘数。省略此值或将其设置为 0 使用下面描述的默认时序。较低的值用于收紧时间并提高灵敏度,而较高的值用于放松时间并降低灵敏度。调整这会影响 Consul 检测领导者故障和执行领导者选举所需的时间,代价是需要更多的网络和 CPU 资源以获得更好的性能。

默认情况下,Consul 将使用适合最小 Consul 服务器的较低性能时序,目前相当于将其设置为值 5(此默认值可能会在未来的 Consul 版本中更改,具体取决于目标最小服务器配置文件是否更改)。将此值设置为 1 会将 Raft 配置为最高性能模式,相当于 Consul 0.7 之前的默认时间,建议用于生产 Consul 服务器

有关调整此参数的更多详细信息,请参阅有关上次接触时间的注释。最大允许值为 10。

  • rpc_hold_timeout- 客户端或服务器在领导选举期间重试内部 RPC 请求的持续时间。在正常情况下,这可以防止客户端遇到“没有领导者”的错误。这是在 Consul 1.0 中添加的。必须是持续时间值,例如 10 秒。默认为 7 秒。

ACL 参数

acl- 此对象允许设置控制 ACL 系统的多个子键。在 Consul 1.4.0 中添加了在 ACL 节中配置 ACL 系统

可以使用以下子键:

  • enabled- 启用 ACL。

  • policy_ttl- 用于控制 ACL 策略的生存时间缓存。默认情况下,这是 30 秒。此设置对性能有重大影响:减少它会导致更频繁的刷新,而增加它会减少刷新次数。但是,由于缓存没有主动失效,ACL 策略可能会过时到 TTL 值。

  • role_ttl- 用于控制 ACL 角色的生存时间缓存。默认情况下,这是 30 秒。此设置对性能有重大影响:减少它会导致更频繁的刷新,而增加它会减少刷新次数。但是,由于缓存没有主动失效,ACL 角色可能会过时到 TTL 值。

  • token_ttl- 用于控制 ACL 令牌的生存时间缓存。默认情况下,这是 30 秒。此设置对性能有重大影响:减少它会导致更频繁的刷新,而增加它会减少刷新次数。但是,由于缓存没有主动失效,ACL 令牌可能会过期到 TTL 值。

  • down_policy- “允许”、“拒绝”、“扩展缓存”或“异步缓存”;“扩展缓存”是默认设置。在无法从primary_datacenter或领导节点读取策略或令牌的情况下,应用关闭策略。在“允许”模式下,允许所有操作,“拒绝”限制所有操作,“扩展缓存”允许使用任何缓存对象,忽略缓存条目的到期时间。如果请求使用不在缓存中的 ACL,“扩展缓存”将回退到 default_policy. 值“async-cache”的作用与“extend-cache”相同,但在 ACL 存在但其 TTL 过期时异步执行更新,因此,如果主数据中心和辅助数据中心之间的延迟很差,

  • default_policy- “允许”或“拒绝”;默认为“允许”,但这将在未来的主要版本中更改。当没有匹配规则时,默认策略控制令牌的行为。在“允许”模式下,ACL 是一个拒绝列表:允许任何未明确禁止的操作。在“拒绝”模式下,ACL 是一个允许列表:任何未明确允许的操作都会被阻止。注意:这在您启用 ACL 之前不会生效。

  • enable_key_list_policy- 布尔值,默认为 false。如果为 true,list则从 KV 存储中递归读取的前缀将需要权限。无论是否启用,都会过滤前缀下的完整 KV 条目集,以删除请求的 ACL 令牌未授予至少读取权限的任何条目。此选项仅在 Consul 1.0 和更新版本中可用。

  • enable_token_replication- 默认情况下,辅助 Consul 数据中心将仅执行 ACL 策略和角色的复制。设置此配置将启用 ACL 令牌复制,并允许在连接的辅助数据中心中创建本地令牌和 身份验证方法。

    警告:在辅助数据中心启用 ACL 令牌复制时,辅助数据中心中已存在的全局令牌将丢失。对于生产环境,请考虑在初始数据中心引导过程中配置 ACL 复制。

  • enable_token_persistence- 要么 true要么false。当true使用 API 设置的令牌将持久保存到磁盘并在代理重新启动时重新加载。

  • tokens- 此对象包含所有已配置的 ACL 令牌以供代理使用。

    • initial_management- 这在 Consul 1.11 及更高版本中可用。在以前的版本中,使用acl.tokens.master.

      仅用于primary_datacenter. 如果此令牌不存在,将使用管理级别权限创建。它允许操作员使用众所周知的令牌 Secret ID 引导 ACL 系统。

      仅当initial_management服务器获得集群领导权时才会安装令牌。如果您想安装或更改它,请 initial_management在所有服务器的配置中设置新值。完成此操作后,重新启动当前领导者以强制进行领导者选举。如果initial_management 未提供令牌,则服务器不会创建初始管理令牌。当您提供一个值时,它应该是一个 UUID。为了保持向后兼容性和升级路径,此限制当前未强制执行,但将在未来的主要 Consul 版本中。

    • master 在 Consul 1.11 中重命名为 acl.tokens.initial_management.

    • default- 如果提供,该代理将在向 Consul 服务器发出请求时默认使用此令牌,而不是匿名令牌。Consul HTTP API 请求可以在其授权标头中提供替代令牌,以default根据每个请求覆盖匿名令牌,如HTTP API 身份验证中所述。

    • agent- 用于客户端和服务器执行内部操作。如果未指定,则将 default使用 。

      此令牌必须至少对将注册的节点名称具有写入权限,以便在目录中设置任何节点级信息,例如元数据或节点的标记地址。

    • agent_recovery- 这在 Consul 1.11 及更高版本中可用。在以前的版本中,使用acl.tokens.agent_master.

      用于访问需要代理读取或写入权限或节点读取权限的代理端点,即使 Consul 服务器不存在以验证任何令牌。这仅应由运营商在中断期间使用,应用程序通常应使用常规 ACL 令牌。

    • agent_master 在 Consul 1.11 中重命名为 acl.tokens.agent_recovery.

    •   replication- 用于授权辅助数据中心与主数据中心进行复制操作的 ACL 令牌。primary_datacenter启用 ACL 时以外的服务器需要此令牌。稍后可以使用每个服务器上的代理令牌 API提供此令牌。此令牌必须至少对 ACL 数据具有“读取”权限,但如果启用了 ACL 令牌复制,则它必须具有“写入”权限。这也启用了连接复制,令牌将需要操作员“写入”和意图“读取”权限来复制 CA 和意图数据。

警告:在辅助数据中心启用 ACL 令牌复制时,辅助数据中心中已存在的策略和角色将丢失。对于生产环境,请考虑在初始数据中心引导过程中配置 ACL 复制。

  •  

 

  • acl_datacenter-该字段在 Consul 1.4.0 中已弃用。primary_datacenter而是查看该字段。

    这指定了对 ACL 信息具有权威性的数据中心。必须提供它才能启用 ACL。所有服务器和数据中心必须就 ACL 数据中心达成一致。在服务器上设置它是集群级强制执行所需的全部,但是为了让 API 从客户端正确转发,它也必须在它们上设置。在 Consul 0.8 及更高版本中,这也启用了 ACL 的代理级别强制执行。请查看ACL 教程以获取更多详细信息。

  • acl_default_policy-在 Consul 1.4.0 中已弃用。acl.default_policy而是查看该字段。 “允许”或“拒绝”;默认为“允许”。当没有匹配规则时,默认策略控制令牌的行为。在“允许”模式下,ACL 是一个拒绝列表:允许任何未明确禁止的操作。在“拒绝”模式下,ACL 是一个允许列表:任何未明确允许的操作都会被阻止。注意primary_datacenter:这在您设置启用 ACL 支持之前不会生效。

  • acl_down_policy-在 Consul 1.4.0 中已弃用。acl.down_policy而是查看该字段。“允许”、“拒绝”、“扩展缓存”或“异步缓存”;“扩展缓存”是默认设置。在无法从primary_datacenter 或领导节点读取令牌策略的情况下,应用关闭策略。在“允许”模式下,允许所有操作,“拒绝”限制所有操作,“扩展缓存”允许使用任何缓存的 ACL,忽略它们的 TTL 值。如果使用非缓存 ACL,“扩展缓存”的行为类似于“拒绝”。值“async-cache”的作用与“extend-cache”相同,但在 ACL 存在但其 TTL 过期时异步执行更新,因此,如果 ACL 权威和其他数据中心之间的延迟很差,

  • acl_agent_master_token-在 Consul 1.4.0 中已弃用。acl.tokens.agent_master 而是查看该字段。用于访问需要代理读取或写入权限或节点读取权限的代理端点,即使 Consul 服务器不存在以验证任何令牌。这仅应由运营商在中断期间使用,应用程序通常应使用常规 ACL 令牌。这是在 Consul 0.7.2 中添加的,仅在acl_enforce_version_8设置为 true 时使用。

  • acl_agent_token-在 Consul 1.4.0 中已弃用。acl.tokens.agent而是查看该字段。用于客户端和服务器执行内部操作。如果未指定,则将acl_token使用 。这是在 Consul 0.7.2 中添加的。

    此令牌必须至少对将注册的节点名称具有写入权限,以便在目录中设置任何节点级信息,例如元数据或节点的标记地址。

  • acl_enforce_version_8-在 Consul 1.4.0 中弃用并在 1.8.0 中删除。用于客户端和服务器,以确定是否应该对 Consul 0.8 之前预览的新 ACL 策略执行强制。在 Consul 0.7.2 中添加,在 Consul 0.8 之前的版本中默认为 false,在 Consul 0.8 及更高版本中默认为 true。通过允许在开始实施之前实施策略,这有助于简化向新 ACL 功能的过渡。

  • acl_master_token-在 Consul 1.4.0 中已弃用。acl.tokens.master而是查看该字段。

  • acl_replication_token-在 Consul 1.4.0 中已弃用。acl.tokens.replication而是查看该字段。仅用于primary_datacenter 运行 Consul 0.7 或更高版本之外的服务器。提供后,这将启用使用此 ACL复制 的 ACL 复制,使用此令牌检索 ACL 并将其复制到非权威本地数据中心。在 Consul 0.9.1 及更高版本中,您可以使用启用 ACL 复制acl.enable_token_replication,然后稍后使用 每个服务器上的代理令牌 API设置令牌。如果acl_replication_token在配置中设置了,它将自动设置acl.enable_token_replication为 true 以实现向后兼容性。

    如果存在影响权威数据中心的分区或其他中断,并且 acl_down_policy设置为“扩展缓存”,则可以在中断期间使用复制的 ACL 集解析不在缓存中的令牌。

  • acl_token-在 Consul 1.4.0 中已弃用。acl.tokens.default而是查看该字段。

  • acl_ttl-在 Consul 1.4.0 中已弃用。acl.token_ttl而是查看该 字段。用于控制 ACL 的生存时间缓存。默认情况下,这是 30 秒。此设置对性能有重大影响:减少它会导致更频繁的刷新,而增加它会减少刷新次数。但是,由于缓存没有主动失效,ACL 策略可能会过时到 TTL 值。

  • enable_acl_replication 在 Consul 1.11 中已弃用。请改用该acl.enable_token_replication字段。 在 Consul 服务器上设置时,启用 ACL 复制,而无需通过acl_replication_token. 相反,启用 ACL 复制,然后在每台服务器上使用代理令牌 API引入令牌。有关acl_replication_token更多详细信息,请参阅。

    警告:在辅助数据中心启用 ACL 令牌复制时,辅助数据中心中已存在的策略和角色将丢失。对于生产环境,请考虑在初始数据中心引导过程中配置 ACL 复制。

 

TLS 配置参考

本部分记录了适用于代理 TLS 的所有配置设置。代理 TLS 由 HTTP API、内部 RPC 和 gRPC/xDS 接口使用。其中一些设置也可以由auto_configauto_encrypt自动应用。

安全说明:在内部 RPC 接口(显式tls.internal_rpc或隐式)上配置的证书颁发机构 (CA)tls.defaults应该是私有 CA,而不是公共 CA。我们建议使用不应与任何其他系统一起使用的专用 CA。任何由 CA 签署的证书都将被允许与集群通信,并且由 CA 签署的特制证书可用于获得对 Consul 的完全访问权限。

连接参数

日志参数

节点参数

遥测参数

  • telemetry这是一个嵌套对象,用于配置 Consul 发送其运行时遥测数据的位置,并包含以下键:

    • circonus_api_token用于创建/管理检查的有效 API 令牌。如果提供,则启用指标管理。

    • circonus_api_app与 API 令牌关联的有效应用名称。默认情况下,它设置为“consul”。

    • circonus_api_url 用于联系 Circonus API 的基本 URL。默认情况下,这设置为“ https://api.circonus.com/v2”

    • circonus_submission_interval指标提交给 Circonus 的时间间隔。默认情况下,这设置为“10s”(十秒)。

    • circonus_submission_url Check API 对象的check.config.submission_url字段,来自先前创建的 HTTPTrap 检查。

    • circonus_check_id来自先前创建的 HTTPTrap 检查 的检查 ID(不是检查包)。check._cid检查 API 对象中字段的数字部分。

    • circonus_check_force_metric_activation强制激活已经存在但当前不活动的指标。如果启用了检查管理,则默认行为是在遇到新指标时添加它们。如果检查中已经存在该指标,则它不会 被激活。此设置会覆盖该行为。默认情况下,此设置为 false。

    • circonus_check_instance_id唯一标识来自此实例的指标。它可用于在瞬态或短暂实例在基础架构内移动时保持度量连续性。默认情况下,这设置为主机名:应用程序名称(例如“host123:consul”)。

    • circonus_check_search_tag当没有提供提交 URL 或检查 ID 时,与实例 ID 结合使用的特殊标记有助于缩小搜索结果的范围。默认情况下,这设置为服务:应用程序名称(例如“服务:consul”)。

    • circonus_check_display_name指定名称以在创建时进行检查。此名称显示在 Circonus UI 检查列表中。在 Consul 0.7.2 及更高版本中可用。

    • circonus_check_tags 以逗号分隔的附加标签列表,以在创建检查时添加到检查中。在 Consul 0.7.2 及更高版本中可用。

    • circonus_broker_id 创建新支票时要使用的特定 Circonus Broker 的 ID。broker._cidBroker API 对象中字段的数字部分。如果启用了指标管理并且未提供提交 URL 或检查 ID,则将尝试使用实例 ID 和搜索标签搜索现有检查。如果没有找到,将创建一个新的 HTTPTrap 检查。默认情况下,不使用此选项并选择随机 Enterprise Broker,或默认的 Circonus Public Broker。

    • circonus_broker_select_tag当未提供经纪人 ID 时,将用于选择 Circonus 经纪人的特殊标签。最好的用途是根据该特定实例的运行位置(例如,特定的地理位置或数据中心,dc:sfo)提示应该使用哪个代理。默认情况下,这是空白且不使用。

    • disable_compat_1.9 这允许用户禁用 1.9 中已弃用的指标,以便不再发出它们,从而提高性能并减少大型部署中的存储。从 1.12 开始,这将与 1.13 中的 1.9 样式 http 指标一起默认true并将被删除。

    • disable_hostname 这控制是否使用机器的主机名预先设置运行时遥测,默认为 false。

    • dogstatsd_addr这以格式提供 DogStatsD 实例的地址host:port。DogStatsD 是一种与协议兼容的 statsd 风格,增加了用标签和事件信息装饰指标的能力。如果提供,Consul 将向该实例发送各种遥测信息以进行聚合。这可用于捕获运行时信息。

    • dogstatsd_tags这提供了一个全局标签列表,这些标签将添加到发送到 DogStatsD 的所有遥测数据包中。它是一个字符串列表,其中每个字符串看起来像“my_tag_name:my_tag_value”。

    • filter_default 这控制是否允许过滤器未指定的指标。默认为true,当没有提供过滤器时,这将允许所有指标。如果设置为false没有过滤器,则不会发送任何指标。

    • metrics_prefix 写入所有遥测数据时使用的前缀。默认情况下,它设置为“consul”。这是在 Consul 1.0 中添加的。对于以前版本的 Consul,请使用statsite_prefix相同结构中的 config 选项。这在 Consul 1.0 中被重命名,因为这个前缀适用于所有遥测提供者,而不仅仅是 statsite。

    • prefix_filter 这是一个过滤规则列表,适用于通过前缀允许/阻止指标,格式如下:

      telemetry {
        prefix_filter = ["+consul.raft.apply", "-consul.http", "+consul.http.GET"]
      }
      

      前导“ + ”将启用具有给定前缀的任何指标,而前导“ - ”将阻止它们。如果两个规则之间存在重叠,则更具体的规则将优先。如果多次列出相同的前缀,则阻止将优先

    • prometheus_retention_time如果该值大于0s(默认值),这将启用Prometheus 指标导出。持续时间可以使用持续时间语义来表示,并将聚合指定持续时间的所有计数器(它可能会影响 Consul 的内存使用)。该参数的一个好的值是至少 2 倍于 Prometheus 的抓取间隔,但您也可以设置非常高的保留时间,例如几天(例如 744 小时以启用保留到 31 天)。然后可以使用 /v1/agent/metrics?format=prometheus端点执行使用 prometheus 获取指标。该格式与 prometheus 原生兼容。在此模式下运行时,建议也启用该选项disable_hostname 避免使用带有主机名的前缀指标。Consul 不使用默认的 Prometheus 路径,因此 Prometheus 必须配置如下。请注意, ?format=prometheus在路径中使用将不起作用,因为?会被转义,因此必须将其指定为参数。

      示例 Prometheus 配置
      metrics_path: '/v1/agent/metrics'
      params:
        format: ['prometheus']
      
    • statsd_address这提供了 statsd 实例的地址,格式为host:port. 如果提供,Consul 将向该实例发送各种遥测信息以进行聚合。这可用于捕获运行时信息。这仅发送 UDP 数据包,并且可以与 statsd 或 statsite 一起使用。

    • statsite_address这提供了 statsite 实例的地址,格式为host:port. 如果提供,Consul 会将各种遥测信息流式传输到该实例以进行聚合。这可用于捕获运行时信息。这通过 TCP 流式传输,并且只能与 statsite 一起使用。

 

posted @ 2022-07-29 17:45  小吉猫  阅读(258)  评论(0编辑  收藏  举报