consul v1.12.3 配置文件
https://www.consul.io/docs/agent/config/config-files
- connect:此对象允许设置连接功能的选项。可以使用以下子键:
-
enabled: 控制是否在此代理上启用 Connect 功能。应在集群中的所有服务器上启用,以便 Connect 正常运行。默认为false。
-
enable_mesh_gateway_wan_federation
控制服务器之间的跨数据中心联合流量是否通过网状网关汇集。默认为假。这是在 Consul 1.8.0 中添加的。 -
enable_serverless_plugin
确定是否启用了无服务器插件。无服务器插件支持AWS Lambda。有关从网格服务调用 Lambda 函数的更多信息,请参阅Lambda 文档。 -
ca_provider
控制用于 Connect 的 CA 的 CA 提供者。目前仅支持aws-pca
、consul
和vault
提供程序。这仅在最初引导集群时使用。对于现有集群,请使用更新 CA 配置端点。 -
ca_config
允许根据所选 CA 提供程序设置不同配置选项的对象。这仅在最初引导集群时使用。
-
-
addresses:这是一个允许设置绑定地址的嵌套对象。在 Consul 1.0 及更高版本中,这些可以设置为要绑定到的以空格分隔的地址列表,或者可以潜在地解析为多个地址的[go-sockaddr]模板。
http
,https
并且grpc
都支持绑定到 Unix 域套接字。可以以 形式指定套接字unix:///path/to/socket
。将在给定路径上创建一个新的域套接字。如果指定的文件路径已经存在,Consul 将尝试清除该文件并在其位置创建域套接字。套接字文件的权限可通过unix_sockets
config 结构进行调整。当针对 Unix 套接字接口运行 Consul 代理命令时,使用
-http-addr
参数指定套接字的路径。您还可以将所需的值放在CONSUL_HTTP_ADDR
环境变量中。对于 TCP 地址,环境变量值应该是 带有端口的 IP 地址。例如:
10.0.0.1:8500
而不是10.0.0.1
。但是,ports
在配置文件中定义端口时,端口会在结构中单独设置。以下键有效:
- ports:这是一个嵌套对象,允许为以下键设置绑定端口:
dns
- DNS 服务器,-1 禁用。默认 8600。TCP 和 UDP。http
- HTTP API,-1 禁用。默认 8500。仅 TCP。https
- HTTPS API,-1 禁用。默认 -1(禁用)。我们建议8501
https
按惯例使用for ,因为某些工具会自动使用它。grpc
- gRPC API,-1 禁用。默认 -1(禁用)。 我们建议8502
grpc
按惯例使用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_encrypt
CA 和 ACL,但不使用verify_server_hostname
,或仅启用 ACL,或仅使用 CA 和verify_server_hostname
,或仅使用 CA,或者最终不使用 CA 且未启用 ACL。在任何情况下,与auto_encrypt
端点的通信始终是 TLS 加密的。警告:启用
auto_encrypt.tls
与auto_config
功能冲突。只能指定一个选项。 -
dns_san
(默认为[]
)使用此选项时,auto_encrypt
从服务器请求的证书将这些dns_san
设置为 DNS SAN。 -
ip_san
(默认为[]
)使用此选项时,auto_encrypt
从服务器请求的证书将这些ip_san
设置为 IP SAN。
-
-
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_config或auto_encrypt自动应用。
安全说明:在内部 RPC 接口(显式tls.internal_rpc
或隐式)上配置的证书颁发机构 (CA)tls.defaults
应该是私有 CA,而不是公共 CA。我们建议使用不应与任何其他系统一起使用的专用 CA。任何由 CA 签署的证书都将被允许与集群通信,并且由 CA 签署的特制证书可用于获得对 Consul 的完全访问权限。
-
tls
在 Consul 1.12 中添加,对于以前的版本,请参阅 Deprecated Options。-
defaults
提供将应用于每个接口的默认设置,除非被 、 或 显tls.grpc
式tls.https
覆盖tls.internal_rpc
。-
ca_file
这提供了 PEM 编码的证书颁发机构的文件路径。证书颁发机构用于使用适当的verify_incoming
或verify_outgoing
标志检查客户端和服务器连接的真实性。 -
ca_path
这提供了 PEM 编码的证书颁发机构文件目录的路径。这些证书颁发机构用于使用适当的verify_incoming
或verify_outgoing
标志检查客户端和服务器连接的真实性。 -
cert_file
这提供了 PEM 编码证书的文件路径。该证书提供给客户端或服务器以验证代理的真实性。它必须与key_file
. -
key_file
这提供了 PEM 编码私钥的文件路径。密钥与证书一起用于验证代理的真实性。这必须与cert_file
. -
tls_min_version
这指定了支持的最低 TLS 版本。接受以下值:警告:TLS 1.1 及更低版本通常被认为不太安全,如果可能,不应使用。
以下值也是有效的,但仅在使用 已弃用的顶级
tls_min_version
配置时有效,并且将在未来的版本中删除:如果指定了不推荐使用的值,则会出现警告消息。
-
tls_cipher_suites
这将支持的密码套件列表指定为逗号分隔列表。仅适用于 TLS 1.2 及更低版本。可通过此搜索获得所有受支持密码套件的列表。注意:从 Consul 1.11 起,密码套件的顺序将不再得到保证。有关详细信息,请参阅此帖子 。
-
verify_incoming
- 如果设置为 true,Consul 要求所有传入连接都使用 TLS,并且客户端提供由证书颁发机构从ca_file
or签名的证书ca_path
。默认情况下,这是 false,Consul 不会强制使用 TLS 或验证客户端的真实性。 -
verify_outgoing
- ((#tls defaults_verify_outgoing)) 如果设置为 true,Consul 要求来自此代理的所有传出连接都使用 TLS,并且服务器提供由证书颁发机构从ca_file
or 签名的证书ca_path
。默认情况下,这是错误的,Consul 不会使用 TLS 进行传出连接。这适用于客户端和服务器,因为两者都会进行传出连接。此设置_不适 用于 gRPC 接口,因为 Consul 在此接口上不进行传出连接。
-
-
grpc
提供 gRPC/xDS 接口的设置。要启用 gRPC 接口,您必须通过ports.grpc
. 要在 gRPC 接口上启用 TLS,您还必须通过ports.https
. -
https
提供 HTTPS 接口的设置。要启用 HTTPS 接口,您必须通过 定义端口ports.https
。 -
internal_rpc
为由 配置的内部“服务器”RPC 接口提供设置ports.server
。-
verify_incoming
- 覆盖tls.defaults.verify_incoming
。安全说明:
verify_incoming
必须设置为 true 以防止任何有权访问内部 RPC 端口的人获得对 Consul 集群的完全访问权限。 -
verify_outgoing
覆盖tls.defaults.verify_outgoing
。安全说明:指定的服务器
verify_outgoing = true
将始终通过 TLS 与其他服务器通信,但它们仍接受非 TLS 连接以允许所有客户端转换为 TLS。目前,强制没有客户端可以与未加密的服务器通信的唯一方法是启用verify_incoming
也需要客户端证书。 -
verify_server_hostname
((#tls internal_rpc_verify_server_hostname)) 当设置为 true 时,Consul 验证服务器提供的 TLS 证书与主机名匹配server.<datacenter>.<domain>
。默认情况下这是错误的,Consul 不验证证书的主机名,只验证它是由受信任的 CA 签名的。必须启用此设置以防止受感染的客户端获得对所有集群数据(包括所有 ACL 令牌和 Connect CA 根密钥)的完全读写访问权限。
-
-
server_name
提供时,它会覆盖node_name
TLS 证书。它可用于确保证书名称与我们声明的主机名匹配。
连接参数
-
retry_join
- 相当于-retry-join
命令行标志。 -
retry_join_wan
相当于-retry-join-wan
命令行标志。获取地址列表以尝试加入 WAN,retry_interval_wan
直到至少有一个加入工作。 -
retry_interval_wan
Equivalent to the-retry-interval-wan
command-line flag. -
start_join
一个字符串数组,指定-join
启动时节点的地址。请注意,retry_join
在自动化 Consul 集群部署时,使用可能更适合帮助缓解节点启动竞争条件。 -
start_join_wan
一个字符串数组,指定-join-wan
启动时 WAN 节点的地址。
日志参数
-
syslog_facility
提供时enable_syslog
,它控制向哪些设施消息发送。默认情况下,LOCAL0
将使用。
节点参数
-
node_meta
在 Consul 0.7.3 及更高版本中可用,此对象允许将任意元数据键/值对与本地节点相关联,然后可用于过滤来自某些目录端点的结果。
遥测参数
-
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._cid
Broker 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 一起使用。
-