consul配置

配置文件

        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地址,需要该地址的知识,无论翻译的客户。

    以下端点转换地址:

  • 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中是新的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Consul 是一个开源的服务发现和配置中心工具,由 HashiCorp 公司开发。它可以帮助应用程序在分布式系统中进行服务发现、故障检测和配置管理。 作为一个配置中心,Consul 提供了以下功能: 1. 键值存储:Consul 提供一个分布式的键值存储,可以用来存储应用程序的配置信息。应用程序可以通过 API 或命令行工具来读取和写入配置数据。 2. 服务发现:Consul 可以监测注册在其上的服务的可用性,并提供服务发现功能。应用程序可以通过 Consul 发现和连接到其他服务,从而实现服务之间的通信。 3. 健康检查:Consul 可以定期检查服务的健康状态,并提供报警和自动修复功能。当服务出现故障时,Consul 可以自动将流量路由到健康的实例上。 4. 多数据中心支持:Consul 支持多个数据中心之间的服务发现和配置同步,可以构建全球分布式系统。 使用 Consul 配置中心可以带来许多好处,包括: 1. 集中管理配置:通过将配置信息存储在 Consul 的键值存储中,可以实现集中管理和动态更新配置,减少了手动修改配置文件的工作量。 2. 动态配置更新:Consul 提供了实时变更配置的能力,应用程序可以通过监听配置变更事件来动态更新配置,而不需要重启或重新加载应用程序。 3. 服务发现与负载均衡:Consul 提供了服务发现功能,可以帮助应用程序自动发现和连接其他服务。结合负载均衡,可以实现对服务的高可用和性能优化。 4. 故障检测和自愈能力:Consul 可以定期检查服务的健康状态,并提供故障检测和自愈能力。当服务出现故障时,可以自动切换到健康的实例,提高系统的可用性。 总之,Consul 是一个功能强大的配置中心工具,可以帮助构建可靠的分布式系统,并简化配置管理和服务发现的工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值