consul配置

2023-05-16

配置文件

        1、除了命令行选项之外,配置还可以放入文件中。在某些情况下,这可能更容易,例如使用配置管理系统配置Consul时。

        2、配置文件是JSON格式。

        3、配置文件不仅用于设置代理,还用于提供检查和服务定义。这些用于向其他群集宣布系统服务器的可用性。它们分别在检查配置和 服务配置下分别记录。服务和检查定义支持在重新加载期间进行更新。

»示例配置文件

{ "datacenter": "east-aws", "data_dir": "/opt/consul", "log_level": "INFO", "node_name": "foobar", "server": true, "watches": [ { "type": "checks", "handler": "/usr/bin/health-check-handler.sh" } ], "telemetry": { "statsite_address": "127.0.0.1:2180" } } 

»示例配置文件,带有TLS

{ "datacenter": "east-aws", "data_dir": "/opt/consul", "log_level": "INFO", "node_name": "foobar", "server": true, "addresses": { "https": "0.0.0.0" }, "ports": { "https": 8080 }, "key_file": "/etc/pki/tls/private/my.key", "cert_file": "/etc/pki/tls/certs/my.crt", "ca_file": "/etc/pki/tls/certs/ca-bundle.crt" } 

ports设置:

"ports": { "https": 8080 } 

»配置详解

  • acl_datacenter - 这指定了对ACL信息具有权威性的数据中心。必须提供它才能启用ACL。所有服务器和数据中心必须就ACL数据中心达成一致。将它设置在服务器上是集群级别强制执行所需的全部功能,但是为了使API正确地从客户端转发,它必须在其上进行设置。在Consul 0.8和更高版本中,这也可以实现ACL的代理级执行。有关更多详细信息,请参阅ACL指南。

  • acl_default_policy - “允许”或“否认”; 默认为“允许”。默认策略在没有匹配规则时控制令牌的行为。在“允许”模式下,ACL是一个黑名单:允许任何未被明确禁止的操作。在“拒绝”模式下,ACL是白名单:任何未明确允许的操作都会被阻止。注意:在您设置acl_datacenter 为启用ACL支持之前,这不会生效。

  • acl_down_policy - “允许”,“拒绝”或“扩展缓存”; “扩展缓存”是默认值。如果无法从令牌acl_datacenter或领导者节点读取令牌策略,则应用停机策略。在“允许”模式下,允许所有操作,“拒绝”限制所有操作,“扩展缓存”允许使用任何缓存ACL,忽略其TTL值。如果使用非缓存ACL,“extend-cache”就像“拒绝”一样。

  • acl_agent_master_token- 用于访问需要代理读取或写入权限的代理端点或节点读取权限,即使Consul服务器不存在以验证任何令牌。这应该只在运行中断时使用,应用程序通常会使用常规ACL令牌。这是在Consul 0.7.2中添加的,只有在acl_enforce_version_8设置为true 时才会使用 。有关更多详细信息,请参阅 ACL Agent Master Token。

  • acl_agent_token - 用于客户端和服务器执行内部操作。如果没有指定,那么 acl_token将被使用。这是在领事0.7.2中添加的。

    该令牌至少必须具有对其将注册的节点名称的写入访问权限,以便设置目录中的任何节点级别信息,例如元数据或节点的标记地址。还有其他地方使用了这个令牌,请参阅ACL代理令牌 了解更多详情。

  • acl_enforce_version_8 - 用于客户端和服务器,以确定在Consul 0.8之前预览新ACL策略是否应该执行。在Consul 0.7.2中添加,Consul版本在0.8之前默认为false,在Consul 0.8和更高版本中默认为true。这有助于在执行开始前允许策略就位,从而轻松过渡到新的ACL功能。有关更多详细信息,请参阅ACL指南。

  • acl_master_token- 仅用于服务器acl_datacenter。如果该令牌不存在,将使用管理级权限创建该令牌。它允许运营商使用众所周知的令牌ID引导ACL系统。

    acl_master_token当服务器获取集群领导只安装。如果您想要安装或更改acl_master_token,请acl_master_token 在所有服务器的配置中设置新值。一旦完成,重新启动当前领导者以强制领导人选举。如果acl_master_token未提供,则服务器不会创建主令牌。当你提供一个值时,它可以是任何字符串值。使用UUID将确保它看起来与其他标记相同,但并非绝对必要。

  • acl_replication_token- 仅用于acl_datacenter运行Consul 0.7或更高版本以外的服务器。如果提供,这将启用使用此令牌的ACL复制来检索ACL并将其复制到非权威本地数据中心。在Consul 0.9.1及更高版本中,您可以启用ACL复制enable_acl_replication ,然后使用每台服务器上的代理令牌API设置令牌。如果acl_replication_token在配置中设置,它将自动设置enable_acl_replication为true以实现向后兼容。

    如果存在影响授权数据中心的分区或其他中断,并且 acl_down_policy设置为“extend-cache”,则可以使用复制的ACL集在中断期间解析不在缓存中的令牌。有关更多详细信息,请参阅 ACL指南复制部分。

  • acl_token - 提供时,代理向Consul服务器发出请求时将使用此令牌。通过提供“?token”查询参数,客户端可以基于每个请求重写此令牌。如果未提供,则会使用映射到“匿名”ACL策略的空令牌。

  • acl_ttl - 用于控制ACL的生存时间缓存。默认情况下,这是30秒。此设置会对性能产生重大影响:减少刷新次数会增加刷新次数,同时减少刷新次数。但是,由于缓存不会主动失效,所以ACL策略可能会过时到TTL值。

  • addresses - 这是一个允许设置绑定地址的嵌套对象。在Consul 1.0和更高版本中,这些可以设置为要绑定的空间分隔的地址列表 ,也可以将可以解析为多个地址的go-sockaddr模板设置为空格分隔列表。

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

    在Unix套接字接口上运行Consul agent命令时,使用 -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
  • advertise_addr等同于-advertise命令行标志。

  • serf_wan等同于-serf-wan-bind命令行标志。

  • serf_lan等同于-serf-lan-bind命令行标志。

  • advertise_addr_wan等同于-advertise-wan命令行标志。

  • autopilot在Consul 0.8中增加的这个对象允许设置多个子键,这些子键可以为Consul服务器配置操作友好的设置。有关自动驾驶仪的更多信息,请参阅自动驾驶仪指南。

    以下子键可用:

    • cleanup_dead_servers - 这可以控制定期和每当将新服务器添加到群集时自动删除已死的服务器节点。默认为true
    • last_contact_threshold - 在被认为不健康之前,控制服务器在没有与领导联系的情况下可以走的最长时间。必须是持续时间值,例如10s。默认为200ms
    • max_trailing_logs - 控制服务器在被认为不健康之前可以跟踪领导者的最大日志条目数。默认为250。
    • server_stabilization_time - 在添加到集群之前,控制服务器在“健康”状态下必须稳定的最短时间。只有当所有服务器运行Raft协议版本3或更高时才会生效。必须是持续时间值,例如30s。默认为10s
    • redundancy_zone_tag- (仅限企业)-node-meta当Autopilot将服务器分为多个区域进行冗余时,这将控制使用的密钥。每个区域中只有一台服务器可以同时成为投票成员。如果留空(默认),则此功能将被禁用。
    • disable_upgrade_migration- (仅限企业)如果设置为true,此设置将禁用Consul Enterprise中的Autopilot升级迁移策略,等待足够的新版本服务器添加到群集,然后再将其中的任何一个升级为选民。默认为false
  • bootstrap等同于 -bootstrap命令行标志。

  • bootstrap_expect等同于-bootstrap-expect命令行标志。

  • bind_addr等同于 -bind命令行标志。

  • ca_file这为PEM编码的证书颁发机构提供了一个文件路径。证书颁发机构用于使用适当的verify_incoming或 verify_outgoing标志检查客户端和服务器连接的真实性。

  • ca_path这提供了PEM编码证书颁发机构文件目录的路径。这些证书颁发机构用于检查具有适当verify_incoming或 verify_outgoing标志的客户端和服务器连接的真实性。

  • cert_file这提供了一个PEM编码证书的文件路径。证书提供给客户或服务器来验证代理的真实性。它必须随同提供key_file。

  • check_update_interval 此间隔控制检查稳定状态检查的输出与服务器同步的频率。默认情况下,它被设置为5分钟(“5米”)。许多处于稳定状态的检查会导致每次运行的输出略有不同(时间戳等),从而导致不断的写入。该配置允许推迟检查输出的同步,以减少给定时间间隔的写入压力。如果支票更改状态,则新状态和相关输出立即同步。要禁用此行为,请将该值设置为“0s”。

  • client_addr等同于 -client命令行标志。

  • datacenter等同于 -datacenter命令行标志。

  • data_dir等同于 -data-dir命令行标志。

  • disable_anonymous_signature禁止使用更新检查提供匿名签名以进行重复数据删除。看disable_update_check。

  • disable_host_node_id 等同于-disable-host-node-id命令行标志。

  • disable_remote_exec 禁用对远程执行的支持。设置为true时,代理将忽略任何传入的远程exec请求。在0.8版之前的Consul版本中,这个默认为false。在Consul 0.8中,默认值更改为true,以使远程exec选择加入而不是选择退出。

  • disable_update_check 禁用自动检查安全公告和新版本发布。这在Consul Enterprise中被禁用。

  • discard_check_output 在存储之前丢弃健康检查的输出。这减少了健康检查具有易失性输出(如时间戳,进程ID,...)的环境中Consul raft日志的写入次数。

    • discovery_max_stale - 为所有服务发现HTTP端点启用陈旧请求。这相当于max_staleDNS请求的 配置。如果此值为零(默认值),则将所有服务发现HTTP端点转发给领导者。如果此值大于零,则任何Consul服务器都可以处理服务发现请求。如果领队服务器超过领导者discovery_max_stale,则将对领导者重新评估该查询以获得更多最新结果。Consul代理还会添加一个新的 X-Consul-Effective-Consistency响应标头,用于指示代理是否执行了陈旧的读取。discover-max-stale 在Consul 1.0.7中引入,作为Consul操作员在代理级别强制来自客户端的陈旧请求的方式,默认值为0,与先前Consul版本中的默认一致性行为相匹配。
  • dns_config此对象允许设置多个可以调节DNS查询服务的子密钥。有关更多详细信息,请参阅DNS缓存指南 。

    以下子键可用:

    • allow_stale - 启用DNS信息的陈旧查询。这允许任何Consul服务器而不仅仅是领导者来服务请求。这样做的好处是您可以通过Consul服务器获得线性读取可扩展性。在0.7之前的Consul版本中,默认为false,意味着所有请求都由领导者提供服务,从而提供更强的一致性,但吞吐量更低,延迟更高。在Consul 0.7及更高版本中,为了更好地利用可用服务器,默认为true。
    • max_stale- 什么时候allow_stale 被指定,这是用来限制陈旧结果被允许的。如果领队服务器超过领导者max_stale,则将对领导者重新评估该查询以获得更多最新结果。在领事0.7.1之前,这默认为5秒; 在Consul 0.7.1和更高版本中,默认为10年(“87600h”),这有效地允许任何服务器回答DNS查询,不管它多么陈旧。实际上,服务器通常只比领导者短几毫秒,所以这可以让Consul在没有领导者可以选举的长时间停工场景中继续提供请求。
    • node_ttl - 默认情况下,这是“0”,因此所有节点查找均以0 TTL值提供服务。通过设置此值可以启用节点查找的DNS缓存。这应该用“s”后缀表示第二个或“m”表示分钟。
    • service_ttl - 这是一个允许使用每项服务策略设置TTL服务查找的子对象。当没有特定的服务可用于服务时,可以使用“*”通配符服务。默认情况下,所有服务均以0 TTL值提供服务。通过设置此值可启用服务查找的DNS缓存。
    • enable_truncate - 如果设置为true,则将返回超过3条记录或超过适合有效UDP响应的UDP DNS查询将设置截断标志,指示客户端应使用TCP重新查询以获得满载记录集。
    • only_passing - 如果设置为true,任何健康检查警告或严重的节点将被排除在DNS结果之外。如果为false,则默认情况下,只有健康检查失败的节点将被排除。对于服务查找,会考虑节点自身的运行状况检查以及特定于服务的检查。例如,如果某个节点的健康状况检查非常重要,则该节点上的所有服务都将被排除,因为它们也被视为关键。
    • recursor_timeout - Consul在递归查询上游DNS服务器时使用的超时。查看recursors 更多细节。缺省值是2s。这在Consul 0.7和更高版本中可用。
    • disable_compression - 如果设置为true,则不会压缩DNS响应。Consul 0.7中默认添加并启用了压缩。
    • udp_answer_limit - 限制包含在基于UDP的DNS响应的答案部分中的资源记录数。此参数仅适用于小于512字节的UDP DNS查询。此设置已弃用,并由Consul 1.0.7替换a_record_limit。
    • a_record_limit - 限制A,AAAA或ANY DNS响应(包括TCP和UDP)答案部分中包含的资源记录数。在回答问题时,Consul将使用匹配主机的完整列表,随机随机洗牌,然后限制答案的数量a_record_limit(默认:无限制)。此限制不适用于SRV记录。

    在实施和实施RFC 3484第6节规则9的环境中(即DNS答案总是被排序并因此决不是随机的),客户端可能需要设置该值1以保留预期的随机分配行为(注意: RFC 3484已被过时 RFC 6724,因此它应该越来越不常见,需要用现代的解析器来改变这个值)。

  • domain等同于 -domain命令行标志。

  • enable_acl_replication在Consul服务器上设置时,启用ACL复制而不必通过设置复制令牌acl_replication_token。相反,启用ACL复制,然后在每台服务器上使用代理令牌API引入令牌。查看acl_replication_token更多细节。

  • enable_agent_tls_for_checks 当设置时,使用代理人的TLS配置的一个子集(key_filecert_fileca_fileca_path,和 server_name),以建立HTTP客户端的HTTP健康检查。这允许使用代理的凭证检查需要双向TLS的服务。这是在Consul 1.0.1中添加的,默认为false。

  • enable_debug设置后,启用一些额外的调试功能。目前,这仅用于设置运行时概要分析HTTP端点。

  • enable_script_checks等同于 -enable-script-checks命令行标志。

  • enable_syslog等同于-syslog命令行标志。

  • encrypt等同于 -encrypt命令行标志。

  • encrypt_verify_incoming - 这是一个可选参数,可用于禁用对输入八卦执行加密,以便在正在运行的群集上从未加密的文件升级到加密的八卦。有关更多信息,请参阅此部分。默认为true。

  • encrypt_verify_outgoing - 这是一个可选参数,可用于禁用强制执行传出八卦的加密,以便在正在运行的群集上从未加密的文件转换为加密的八卦文件。有关更多信息,请参阅此部分。默认为true。

  • disable_keyring_file- 相当于 -disable-keyring-file命令行标志。

  • key_file这提供了一个PEM编码私钥的文件路径。密钥与证书一起用于验证代理的真实性。这必须随同提供cert_file。

  • http_config 该对象允许为HTTP API设置选项。

    以下子键可用:

    • block_endpoints 此对象是要在代理程序上阻止的HTTP API端点前缀的列表,默认为空列表,表示所有端点都已启用。与此列表中的一个条目具有共同前缀的任何端点将被阻止,并且在访问时将返回403响应代码。例如,为了阻断所有V1 ACL端点,此设定为 ["/v1/acl"],这将阻止/v1/acl/create/v1/acl/update以及与开始其它ACL端点/v1/acl。这只适用于API端点,而不是,/ui或者 /debug必须禁用它们各自的配置选项。任何使用禁用端点的CLI命令都将不再起作用。对于更通用的访问控制,Consul的ACL系统应该被使用,但是这个选项对于完全去除对HTTP API端点的访问是有用的,或者对特定的代理来说是非常有用的。这在Consul 0.9.0及更高版本中可用。
    • response_headers 该对象允许向HTTP API响应添加标题。例如,可以使用以下配置在HTTP API端点上启用 CORS:

          { "http_config": { "response_headers": { "Access-Control-Allow-Origin": "*" } } } 
  • leave_on_terminate如果启用,当代理收到TERM信号时,它将向Leave群集的其余部分发送消息并正常离开。此功能的默认行为根据代理是否作为客户端或服务器运行而不同(在Consul 0.7之前默认值被无条件设置为false)。在客户端模式下的代理程序中,默认为true 服务器模式的代理程序,对于服务器模式中的代理程序,缺省为false

  • limits在Consul 0.9.3及更高版本中可用,这是一个嵌套对象,用于配置代理执行的限制。目前,这只适用于客户端模式的代理,而不是Consul服务器。以下参数可用:

    • rpc_rate - 通过将此代理允许为Consul服务器发出的RPC请求的最大请求速率设置为每秒请求数,配置RPC速率限制器。默认为无限,这会禁用速率限制。
    • rpc_max_burst - 用于对RPC速率限制器进行再充电的令牌桶的大小。默认为1000个令牌,并且每个令牌都适用于对Consul服务器的单个RPC调用。有关 令牌桶速率限制器如何操作的更多详细信息,请参阅https://en.wikipedia.org/wiki/Token_bucket。
  • log_level等同于 -log-level命令行标志。

  • node_id等同于 -node-id命令行标志。

  • node_name等同于 -node命令行标志。

  • node_meta可用于Consul 0.7.3及更高版本,此对象允许将任意元数据键/值对与本地节点相关联,然后可用于过滤某些目录端点的结果。有关更多信息,请参阅 -node-meta命令行标志。

      { "node_meta": { "instance_type": "t2.medium" } } 
  • performance在Consul 0.7和更高版本中可用,这是一个嵌套对象,允许调整Consul中不同子系统的性能。请参阅服务器性能指南获取更多详细信息 以下参数可用:

    • leave_drain_time - 服务器在优雅休假期间居住的时间,以便允许对其他Consul服务器重试请求。在正常情况下,这可以防止客户在执行Consul服务器滚动更新时遇到“无领导者”错误。这是在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秒。

  • ports 这是一个嵌套对象,允许为以下键设置绑定端口:

    • dns - DNS服务器,-1禁用。默认8600。
    • http - HTTP API,-1禁用。默认8500。
    • https - HTTPS API,-1禁用。默认-1(禁用)。
    • serf_lan - Serf LAN端口。默认8301。
    • serf_wan - Serf WAN端口。默认8302.设置为-1以禁用。注意:这将禁用不推荐的WAN联合。各种目录和广域网相关端点将返回错误或空的结果。
    • server - 服务器RPC地址。默认8300。
  • protocol等同于 -protocol命令行标志。

  • raft_protocol等同于 -raft-protocol命令行标志。

  • raft_snapshot_threshold等同于 -raft-snapshot-threshold命令行标志。

  • raft_snapshot_interval等同于 -raft-snapshot-interval命令行标志。

  • reap这将控制Consul的子进程自动收集,如果Consul在Docker容器中以PID 1的形式运行,这将非常有用。如果没有指定,则Consul会自动收集子进程,如果它检测到它正在以PID 1运行。如果设置为true或false,则无论Consul的PID如何,它都会控制收割(强制分别开启或关闭) 。Consul 0.7.1中删除了该选项。对于Consul的更高版本,您将需要使用包装器收获流程,请参阅 Consul Docker图像入口点脚本 以获取示例。如果您使用的是Docker 1.13.0或更高版本,则可以使用该命令的新--init选项,docker run并且docker将启用PID 1的初始化进程,以便为容器收集子进程。有关Docker文档的更多信息。

  • reconnect_timeout这将控制从集群中彻底删除发生故障的节点需要多长时间。默认值为72小时,建议将其设置为至少为节点或网络分区的预期可恢复的最大停机时间的两倍。警告:将此时间设置得太低可能会导致Consul服务器在扩展节点故障或分区过程中从法定数中删除,这可能会使群集恢复复杂化。该值是一个带单位后缀的时间,可以是秒,分钟或小时的“s”,“m”,“h”。该值必须> = 8小时。

  • reconnect_timeout_wan这是reconnect_timeout参数的WAN等效项,用于控制从WAN池中完全删除发生故障的服务器所需的时间。这也默认为72小时,并且必须> 8小时。

  • recursors此标志提供用于递归解析查询(如果它们不在Consul的服务域内)的上游DNS服务器的地址。例如,节点可以直接使用Consul作为DNS服务器,并且如果该记录不在“领事”范围内。域,查询将在上游解决。从Consul 1.0.1开始,递归可以作为IP地址或go-sockaddr模板提供。IP地址按顺序解析,重复项被忽略。

  • rejoin_after_leave等同于-rejoin命令行标志。

  • retry_join- 相当于-retry-join命令行标志。

  • retry_interval等同于 -retry-interval命令行标志。

  • retry_join_wan等同于 -retry-join-wan命令行标志。每次尝试加入广域网地址列表,retry_interval_wan直到至少有一个加入工作。

  • retry_interval_wan等同于 -retry-interval-wan命令行标志。

  • segment(仅限企业)等同于 -segment命令行标志。

  • segments(仅限企业)这是一个嵌套对象列表,它允许设置网段的绑定/通告信息。这只能在服务器上设置。有关更多详细信息,请参阅 网络细分指南。

    • name - 细分受众群的名称。必须是长度介于1到64个字符之间的字符串。
    • bind - 用于分组的八卦图层的绑定地址。-bind如果未提供,则缺省为该值。
    • port - 用于细分的八卦图层的端口(必需)。
    • advertise - 用于分组的八卦图层的广告地址。-advertise如果未提供,则缺省为该值。
    • rpc_listener- 如果为true,则会-bind在rpc端口上的该段地址上启动单独的RPC侦听器。只有段的绑定地址与地址不同时才有效 -bind。默认为false。
  • server等同于 -server命令行标志。

  • non_voting_server- 相当于 -non-voting-server命令行标志。

  • server_name提供时,将覆盖node_nameTLS证书。它可以用来确保证书名称与我们声明的主机名相匹配。

  • session_ttl_min 允许的最小会话TTL。这确保会话不会在TTL小于指定的限制时创建。建议将此限制保持在默认值以上,以鼓励客户发送频繁的心跳。默认为10秒。

  • skip_leave_on_interrupt这类似于leave_on_terminate但仅影响中断处理。当Consul收到一个中断信号(比如在终端上打Control-C)时,Consul会优雅地离开集群。将其设置为true禁用该行为。此功能的默认行为根据代理是否作为客户端或服务器运行而不同(在Consul 0.7之前默认值被无条件设置为false)。在客户端模式下的代理上,默认为false服务器模式下的代理,并且默认为true (即服务器上的Ctrl-C将服务器保留在群集中,因此是仲裁,并且客户端上的Ctrl-C将优雅地离开)。

  • start_join-join启动时指定节点地址的字符串数组。请注意,retry_join在自动执行Consul集群部署时,使用 可能更适合帮助缓解节点启动竞争条件。

  • start_join_wan-join-wan启动时指定WAN节点地址的字符串数组。

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

    • circonus_api_token 用于创建/管理支票的有效API令牌。如果提供,则启用度量标准管理。
    • circonus_api_app 与API令牌关联的有效应用名称。默认情况下,它被设置为“consul”。
    • circonus_api_url 用于联系Circonus API的基本URL。默认情况下,它被设置为“ API Guide - https://docs.circonus.com/ ”。
    • circonus_submission_interval 指标提交给Circonus的时间间隔。默认情况下,它被设置为“10s”(十秒)。
    • circonus_submission_urlcheck.config.submission_url来自先前创建的HTTPTRAP检查的Check API对象 的字段。
    • circonus_check_id从先前创建的HTTPTRAP检查中 检查ID(不检查包)。check._cidCheck API对象中字段的数字部分。
    • circonus_check_force_metric_activation 强制激活已存在且当前未激活的度量标准。如果启用了支票管理,则默认行为是在遇到新的指标时添加新指标。如果该指标已经存在于支票中,则不会被激活。此设置将覆盖该行为。默认情况下,它被设置为false。
    • circonus_check_instance_id 唯一标识来自此实例的度量标准。当它们在基础架构内移动时,它可用于维护度量连续性,即瞬态或短暂实例。默认情况下,它被设置为主机名:应用程序名称(例如“host123:consul”)。
    • circonus_check_search_tag 一个特殊的标签,当与实例ID结合使用时,有助于在未提供提交URL或检查ID时缩小搜索结果的范围。默认情况下,它被设置为service:application name(例如“service:consul”)。
    • circonus_check_display_name 指定一个名称以在创建时进行检查。该名称显示在Circonus UI Checks列表中。可用于Consul 0.7.2及更高版本。
    • circonus_check_tags 用逗号分隔的附加标签列表在创建时添加到支票中。可用于Consul 0.7.2及更高版本。
    • circonus_broker_id 创建新支票时使用的特定Circonus Broker的ID。broker._cidBroker API对象中字段的数字部分。如果启用指标管理并且未提供提交URL和检查ID,则将尝试使用实例ID和搜索标记搜索现有检查。如果找不到,则会创建一个新的HTTPTRAP检查。默认情况下,不会使用此选项,并选择随机企业代理或默认的Circonus Public Broker。
    • circonus_broker_select_tag 当未提供经纪人代码时,将使用特殊标签选择Circonus经纪人。这个最好的用途是作为代理应该基于针对所使用的提示,其中该特定的实例正在运行(例如一个特定的地理位置或数据中心,DC:SFO)。默认情况下,这是留空,不使用。
    • disable_hostname 这将控制是否在计算机主机名的前面加上运行时间遥测,默认为false。
    • dogstatsd_addr这提供了格式中DogStatsD实例的地址host:port。DogStatsD是statsd协议兼容的风格,增加了用标签和事件信息修饰指标的功能。如果提供,领事将发送各种遥测信息到该实例进行聚合。这可以用来捕获运行时信息。
    • dogstatsd_tags这提供了将被添加到发送到DogStatsD的所有遥测包的全局标签列表。它是一个字符串列表,其中每个字符串看起来像“my_tag_name:my_tag_value”。
    • filter_default 这将控制是否允许过滤器未指定的度量标准。默认为true,这将允许在没有提供过滤器时的所有指标。如果设置为false不使用过滤器,则不会发送指标。
    • metrics_prefix 写入所有遥测数据时使用的前缀。默认情况下,它被设置为“consul”。这是在Consul 1.0中添加的。对于之前版本的Consul,使用statsite_prefix相同结构中的配置选项。由于此前缀适用于所有遥测提供商,因此它已重新命名为Consul 1.0,而不仅仅是statsite。
    • prefix_filter 这是一个过滤规则列表,适用于通过前缀允许/屏蔽指标,格式如下:

      [ "+consul.raft.apply", "-consul.http", "+consul.http.GET" ] 

      前导的“ + ”将使用给定前缀的任何度量标准,并且前导“ - ”将阻止它们。如果两个规则之间有重叠,则更具体的规则优先。如果多次列出相同的前缀,则阻塞将优先。

    • prometheus_retention_time 如果该值大于0s(缺省值),则可以使Prometheus导出度量标准。持续时间可以使用持续时间语义来表示,并将在指定的时间内汇总所有计数器(这可能会影响Consul的内存使用情况)。此参数的价值至少是普罗米修斯刮擦间隔的2倍,但您也可能需要很长的保留时间,例如几天(例如744h才能保留至31天)。使用prometheus获取指标然后可以使用/v1/agent/metrics?format=prometheusURL 执行,或者通过发送值为Accept的Accept头来text/plain; version=0.0.4; charset=utf-8 执行/v1/agent/metrics(如普罗米修斯所做的那样)。格式与普罗米修斯本身兼容。在此模式下运行时,建议启用此选项disable_hostname以避免使用主机名的前缀度量标准。

    • statsd_address这以格式提供statsd实例的地址host:port。如果提供,领事将发送各种遥测信息到该实例进行聚合。这可以用来捕获运行时信息。这仅发送UDP数据包,可以与statsd或statsite一起使用。

    • statsite_address这提供了格式中的一个statsite实例的地址host:port。如果提供,领事将汇集各种遥测信息到该实例。这可以用来捕获运行时信息。这通过TCP流,只能用于statsite。

  • syslog_facility何时 enable_syslog提供,这将控制向哪个设施发送消息。默认情况下,LOCAL0将被使用。

  • tls_min_version在Consul 0.7.4中添加,它指定了TLS的最低支持版本。接受的值是“tls10”,“tls11”或“tls12”。这默认为“tls10”。警告:TLS 1.1及更低版本通常被认为不太安全; 避免使用这些如果可能。这将在Consul 0.8.0中更改为默认值“tls12”。

  • tls_cipher_suites在Consul 0.8.2中添加,它将支持的密码组列表指定为逗号分隔列表。源代码中提供了所有支持的密码套件列表。

  • tls_prefer_server_cipher_suites 在Consul 0.8.2中添加,这将导致Consul更喜欢服务器的密码套件而不是客户端密码套件。

  • translate_wan_addrs如果设置为true,Consul 在为远程数据中心中的节点提供DNS和HTTP请求时,会优先使用配置的WAN地址。这允许使用其本地地址在其自己的数据中心内访问该节点,并使用其WAN地址从其他数据中心到达该节点,这在混合网络的混合设置中很有用。这是默认禁用的。

    从Consul 0.7和更高版本开始,响应HTTP请求的节点地址在查询远程数据中心中的节点时也将优选节点配置的WAN地址。一个X-Consul-Translate-Addresses当翻译被启用,以帮助客户知道地址可以被翻译标题将出现在所有响应。在TaggedAddresses响应中域也有一个lan地址,需要该地址的知识,无论翻译的客户。

    以下端点转换地址:

    • /v1/catalog/nodes
    • /v1/catalog/node/<node>
    • /v1/catalog/service/<service>
    • /v1/health/service/<service>
    • /v1/query/<query or name>/execute
  • ui- 相当于-ui 命令行标志。

  • ui_dir- 相当于 -ui-dir命令行标志。从Consul版本0.7.0及更高版本开始,此配置密钥不是必需的。指定此配置键将启用Web UI。没有必要指定ui-dir和ui。指定两者都会导致错误。

  • unix_sockets - 这可以调整Consul创建的Unix域套接字文件的所有权和权限。只有在HTTP地址配置了unix://前缀时才使用域套接字。

    需要注意的是,这个选项可能对不同的操作系统有不同的影响。Linux通常会观察套接字文件权限,而许多BSD变体会忽略套接字文件本身的权限。在特定的发行版上测试此功能非常重要。此功能目前在Windows主机上无法使用。

    以下选项在此构造内有效,并全面应用于Consul创建的所有套接字:

    • user - 将拥有套接字文件的用户的名称或ID。
    • group - 套接字文件的组ID标识。该选项目前仅支持数字ID。
    • mode - 在文件上设置的权限位。
  • verify_incoming- 如果设置为true,Consul要求所有传入连接都使用TLS,并且客户端提供证书颁发机构从ca_fileor中签名的证书ca_path。这适用于服务器RPC和HTTPS API。默认情况下,这是错误的,Consul不会强制使用TLS或验证客户的真实性。

  • verify_incoming_rpc- 如果设置为true,Consul要求所有传入的RPC连接都使用TLS,并且客户端提供由证书颁发机构从ca_fileor中签名的证书ca_path。默认情况下,这是错误的,Consul不会强制使用TLS或验证客户的真实性。

  • verify_incoming_https- 如果设置为true,则Consul要求所有传入的HTTPS连接都使用TLS,并且客户端提供由证书颁发机构从ca_fileor中签名的证书ca_path。默认情况下,这是错误的,Consul不会强制使用TLS或验证客户的真实性。要启用HTTPS API,您必须通过ports配置定义HTTPS端口。默认情况下,HTTPS被禁用。

  • verify_outgoing- 如果设置为true,则Consul要求所有传出连接都使用TLS,并且服务器提供由证书颁发机构从ca_fileor中签名的证书ca_path。默认情况下,这是错误的,Consul不会使用TLS进行传出连接。这适用于客户端和服务器,因为两者都会建立传出连接。

  • verify_server_hostname - 如果设置为true,则Consul会验证所有传出连接,即服务器提供的TLS证书与“server。<datacenter>。<domain>”主机名匹配。这意味着verify_outgoing。默认情况下,这是错误的,并且Consul不验证证书的主机名,只验证它是由受信任的CA签署的。此设置对于防止受损客户端作为服务器重新启动很重要,从而能够执行MITM攻击或添加为Raft对等设备。这在0.5.1中是新的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

consul配置 的相关文章

  • go-zero使用consul作为注册中心

    目录 在rpc服务中添加配置 导入包 xff1a 在rpc服务中添加配置 xff1a 引入 Consul config 配置项 user yml 文件 修改 user go 将 rpc注册到consul rpc的发现 在api服务中添加配置
  • docker-compose搭建consul集群环境

    目录 consul基本概念 server模式启动的命令行参数 使用docker compose来搭建如下的consul集群环境 编辑docker compose yml文件 启动服务 常用命令 注册配置中心例子 yml KV访问的例子 co
  • consul配置ACL

    1 consul配置文件目录下新增配置文件acl json 内容如下 xff08 实际使用时 xff0c 将注释删除才可使用 xff09 34 acl datacenter 34 34 dc1 34 需要acl配置的数据中心 一般默认是dc
  • spring cloud - consul 之 网关(3)

    spring cloud consul 之 网关 xff08 3 xff09 1 添加maven 依赖 lt dependency gt lt groupId gt org springframework boot lt groupId g
  • SpringCloud - consul 服务注册生产(2)

    SpringCloud consul 服务注册生产 xff08 2 xff09 1 添加maven 依赖 lt dependency gt lt groupId gt org springframework boot lt groupId
  • 微服务 - 搭建Consul集群服务,Consul配置中心

    传统配置文件的弊端 静态化配置 例如env文件 配置文件无法区分环境 配置文件过于分散 历史版本无法查看 配置中心如何解决的呢 配置中心的思路是把项目中的配置参数全部放在一个集中的地方来管理 并提供一套标准的接口 当各个服务需要获取配置的时
  • Consul注册中心显示红叉 (All service checks failing)

    Consul注册中心显示红叉 All service checks failing 错误原因 心跳机制没有打开 所以健康检查总是报红 解决方法 在 application properties 添加以下配置 打开心跳机制 spring cl
  • consul安装

    consul安装 1 什么是consul 2 安装过程 2 1 下载 2 2 解压 使用unzip命令解压 在linux上这个时候就代表已经安装成功了 2 3 启动consul 2 4 访问consul的后台管理页面 其端口默认是8500
  • 你与高薪offer的距离是否还差这一份985页Java面经?

    前言 现在已经九月底 金九银十也已经过去了一大半 很明显今年的面试季明显不如往年火热 对于求职者来说 也更难了一些 马上迎来国庆节 假期一过 十月份又过去了三分之一 综合来看今年确实不是面试的最佳时期 不过趁今年所剩的时间来好好准备 明年的
  • springcloud整合consul

    搭建consul环境 linux安装consul 搭建生产者 1 建module provider payment8006 2 写pom
  • 可以同情弱者,别同情弱势!

    大家好 我是北妈 0 最近北妈在重刷 天道 里面提到了一个强势文化 弱势文化的概念 我觉得对生活和职场 感情都有些指导作用 我看影评和各种文章讨论这个的概念比较多 毕竟大家都喜欢谈格局 强弱 今天讨论下如何成为强者 强者是不是应该鄙视弱者
  • 如何引导机器?如何面临人机结合?《​人工智能与人类未来》

    微信公众号 乐生活与爱 公众号曾转载过蔡恒进教授的奇文 意识如何演化 机器何时有自我意识 附着与隧通 心智的工作模式 值得反复也读 我上周听了由北京大学博古睿研究中心 中国人民大学哲学院 中国人民大学哲学与认知科学交叉平台 服务器艺术联合主
  • 程序员都要学学任正非的坚强!这个老头,在逆境中崛起!

    点赞再看 养成习惯 微信搜一搜 findyi 关注这个喜欢写情怀的程序员 回复 1 获得程序员职场晋升PPT一份 2019年的最后一天 罗胖在跨年演讲中引用了何帆老师的一句话 用一个人的长期主义 对冲世界的不确定性 那时候 谁也无法想到 世
  • consul学习与常用命令和使用教程

    目录 consul是什么 常用命令 API 实例1 新建服务API 注册服务 查询服务 consul是什么 Consul是分布式的 高可用的 可横向扩展的用于实现分布式系统的服务发现与配置 consul就是提供服务发现的工具 做服务发现的框
  • 加入位于不同 Docker 容器中的 serf 节点时出现问题

    上下文 主机是 AWS EC2 Ubuntu 14 04 5 带有 Docker 版本 17 05 0 ce 容器是根据公开可用的存储库映像构建的cbhihe serf alpine bash 所有容器都位于同一个 EC2 实例上 并与网络
  • docker引擎swarm模式需要服务发现

    我对 docker swarm 感到困惑 据我所知 在 docker 引擎为 swarm 模式提供本机支持之前 运行 swarm 的旧方法是在容器中运行管理器和工作人员 旧的容器化 Swarm 的文档解释了如何使用 consul etcd
  • Docker swarm:如何手动设置节点名称?

    有关我的环境的一些背景 我有 docker swarm 在 3 个 ubuntu 14 04 vagrant 盒子上运行 swarm master 在一台机器上运行 带有 consul 另外 2 台机器正在运行加入到 master 的 Sw
  • 如何使用 Consul 中定义的默认值在 Terraform 中定义可选变量

    我有一个 Terraform 脚本 其中包含一些从 Consul 填充的变量 我想在两种不同的场景中使用这个脚本 场景 1 使用 Consul 的默认值一切正常 场景 2 我需要覆盖一些变量 我检查了 Terraform 文档 发现我无法使
  • 领事注销“失败”服务

    我有 Consul 在 Consul v0 5 2 版本上运行 服务在 Mesos 中运行 服务不断从一台服务器转移到另一台服务器 有没有办法取消领事中处于 失败 状态的服务 我可以使用此curl 获取处于失败状态的服务列表 curl ht
  • Consul 检查 HTTPS 自签名

    我使用 Consul 注册 Web 应用程序 Web应用程序使用Java Consul客户端来注册检查 我可以使用自签名 CA 激活 TLS 和加密 以加密领事代理之间以及我的 web 应用程序和领事代理之间的交换 但我无法使用自签名 CA

随机推荐

  • zeal工具的安装与使用(离线api文档浏览器)

    本来想下载一个dash来用一下 xff0c 结果它只有mac版本 xff0c 没有windows版 xff0c 遂使用zeal zeal官网 xff1a https zealdocs org 文档地址 xff1a http kapeli c
  • Kubernetes部署SpringBoot连接外部数据库使用svc模式

    这篇文章主要讲解Kubernetes部署SpringBoot的过程 xff0c 其中主要的难点是用svc名称动态获取数据库IP 网上有一部分文档有说 xff0c 但是不进行讲解 xff0c 我在最初部署的时候测试不成功 xff0c 后来发现
  • Python进行 sftp上传下载

    1 Python进行 sftp上传下载 span class token comment 下载SFTP代码内容 pip install paramiko span span class token keyword import span p
  • VS远程调试方法

    远程调试步骤 一 远程调试前置条件 1 调试的机器上安装了 Microsoft Visual Studio 2 被调试机器上有远程调试的程序 xff0c 这个程序可以在VS安装路径下拷贝 xff0c 如果是默认安装 xff0c 那么所在的文
  • Qt 信号-槽的同步与异步处理

    通常使用的connect xff0c 实际上最后一个参数使用的是Qt AutoConnection类型 xff1a Qt支持6种连接方式 xff0c 其中3中最主要 1 Qt DirectConnection xff08 直连方式 xff0
  • Qt 线程同步与异步处理

    一 线程分析 1 继承QThread类 平时我们使用线程的时候一般是继承QThread类 xff0c 实现它的run 函数 xff0c 将需要在线程中执行的代码放在run 里进行执行 需要注意的事项 xff1a 如果是while循环 xff
  • 通过UltraEdit(UE)转化\r\n(回车换行)与\n(换行)

    r n 回车换行 是window上的换行符 xff0c n 换行 是linux上的换行符 xff0c 下面介绍通过UltraEdit UE 在windows上实现相互转化 1 r n 回车换行 转化为 n 换行 用UE打开对应的文本文件 x
  • Android多媒体篇

    多媒体接口和娱乐 游戏等业务密切相关 xff0c 灵活地采用多媒体接口 xff0c 可以使应用具备更强的吸引力 1 音频处理 作为多媒体处理的最基本的组成部分 xff0c 音频处理在移动终端上十分复杂 音频的播放 记录 以及多种场景 xff
  • Java基础教程

    一 Java语法 1 java主要特性 Java语言是简单的 xff1a Java语言的语法与C语言和C 43 43 语言很接近 xff0c 使得大多数程序员很容易学习和使用 另一方面 xff0c Java丢弃了C 43 43 中很少使用的
  • JSP基础教程

    xfeff xfeff JSP技术是以Java语言作为脚本语言的 xff0c JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序 1 Java简介 1 xff09 为什么使用JSP xff1f JSP程序与CG
  • 系统设计概论

    1 分层系统软件体系结构 1 xff09 简介 层次系统风格将对软件结构组织成一个层次结构 xff0c 一个分层系统组织的 xff0c 每层对上层提供服务 xff0c 同时对下层来讲也是一个服务的对象 在一些分层系统中 xff0c 内部的层
  • python监控windows的cpu,内存,磁盘

    span class hljs comment user bin env python3 span span class hljs comment coding utf 8 span span class hljs keyword impo
  • Java问题_直接运行jar文件,系统没有反应

    问题 xff1a 直接运行jar文件 xff0c 系统没有反应 问题分析 xff1a 我比较好奇为什么安装了Java就可以直接运行 jar文件 https blog csdn net walkingmanc article details
  • 虚拟机安装archlinux的简单步骤

    这篇文章是我在虚拟机安装archlinux之后的一点心得 xff0c 参考了archwiki关于安装arch的一些内容https wiki archlinux org index php Beginners 27 guide 准备工作 选择
  • 服务器远程连接经常连接不上的解决方法

    我们大家在使用服务器的时候或多或少都会有碰上服务器突然远程不上的情况这边给大家分享的服务器远程不上解决办法 xff01 第一步 xff1a 机器如果不通看下是不是被牵引或者内网牵引 xff0c 打开kvm查看系统是否正常运行 1 远程端口通
  • webservice的基础知识以及入门案例1

    一 webService 1 1 webservcie webservice是一种跨操作系统和跨语言的数据调用 数据交换的一种服务技术 用于网络通信 xff0c 多台机器之间的数据交互 最大优点 xff1a webservice最大的好处是
  • 解决docker容器中文乱码,修改docker容器编码格式

    原文链接 http www cnblogs com z belief p 6148463 html 前台上传文件到服务器后 xff0c 服务器返回给前台的文件列表中出现中文乱码 xff0c 所有的中文文件名全部变成 xff1f xff0c
  • Debug: django model querysets-> pandas.Dataframe

    问题描述 在使用Django 的ORM model时 xff0c 有时需要将数据导出并转变成pandas DataFrame 正常的流程应该是 xff1a span class hljs keyword import span pandas
  • mysql数据导出与导入

    只导出表结构 不导出数据 mysqldump opt d stat uroot pxxxx gt stat struct sql linux下 一 导出数据库用mysqldump命令 xff08 注意mysql的安装路径 xff0c 即此命
  • consul配置

    配置文件 1 除了命令行选项之外 xff0c 配置还可以放入文件中 在某些情况下 xff0c 这可能更容易 xff0c 例如使用配置管理系统配置Consul时 2 配置文件是JSON格式 3 配置文件不仅用于设置代理 xff0c 还用于提供