consul配置參數大全、詳解、總結

命令行選項

如下選項所有在命令行中指定。javascript

  • -advertise - 通告地址用於更改咱們通告給集羣中其餘節點的地址。默認狀況下,-bind地址是通告的。可是,在某些狀況下,可能存在沒法綁定的可路由地址。這個標誌使閒聊不一樣的地址來支持這一點。若是此地址不可路由,則節點將處於持續振盪狀態,由於其餘節點會將非可路由性視爲故障。在Consul 1.0和更高版本中,這能夠設置爲 go-sockaddr 模板。html

  • -advertise-wan - 廣告WAN地址用於更改咱們向經過WAN加入的服務器節點發布的地址。這也能夠在與translate_wan_addrs配置選項結合使用時在客戶端代理上設置。默認狀況下,-advertise地址是通告的。可是,在某些狀況下,全部數據中心的全部成員都不能位於同一個物理或虛擬網絡上,尤爲是混合雲和專用數據中心的混合設置。該標誌使服務器節點可以經過WAN的公共網絡閒聊,同時使用專用VLAN來相互閒聊以及彼此的客戶端代理,而且若是遠程數據中心是遠程數據中心,則容許客戶端代理在從遠程數據中心訪問時訪問此地址配置translate_wan_addrs。在Consul 1.0和更高版本中,這能夠設置爲 go-sockaddr 模板java

  • -bootstrap - 該標誌用於控制服務器是否處於「引導」模式。每一個數據中心最多隻能運行一個服務器,這一點很重要。從技術上講,一個處於引導模式的服務器能夠自我選擇爲Raft領導者。只有一個節點處於這種模式很是重要; 不然,一致性不能保證,由於多個節點可以自我選擇。不建議在引導羣集後使用此標誌。node

  • -bootstrap-expect - 此標誌提供數據中心中預期服務器的數量。不該該提供此值,或者該值必須與羣集中的其餘服務器一致。提供時,Consul會等待指定數量的服務器可用,而後引導羣集。這容許初始領導者自動選舉。這不能與遺留-bootstrap標誌結合使用。該標誌須要-server模式。git

  • -bind - 應爲內部集羣通訊綁定的地址。這是集羣中全部其餘節點都應該能夠訪問的IP地址。默認狀況下,這是「0.0.0.0」,這意味着Consul將綁定到本地計算機上的全部地址,並將 第一個可用的私有IPv4地址通告給羣集的其他部分。若是有多個私有IPv4地址可用,Consul將在啓動時退出並出現錯誤。若是你指定「[::]」,領事將 作廣告第一個可用的公共IPv6地址。若是有多個公共IPv6地址可用,則Consul將在啓動時退出並出現錯誤。Consul同時使用TCP和UDP以及相同的端口。若是您有任何防火牆,請確保同時容許這兩種協議。在Consul 1.0和更高版本中,能夠將其設置爲要綁定到的空間分隔的地址列表,或者可能會解析爲多個地址的 go-sockaddr模板。github

  • -serf-wan-bind - 應該被綁定到Serf WAN八卦通訊的地址。默認狀況下,該值遵循與-bind命令行標誌相同的規則,若是未指定該值,-bind則使用該選項。這在Consul 0.7.1及更高版本中可用。在Consul 1.0和更高版本中,這能夠設置爲 go-sockaddr 模板算法

  • -serf-lan-bind - Serf LAN八卦通訊應該綁定的地址。這是羣集中全部其餘LAN節點應可訪問的IP地址。默認狀況下,該值遵循與-bind命令行標誌相同的規則,若是未指定該值,-bind則使用該選項。這在Consul 0.7.1及更高版本中可用。在Consul 1.0和更高版本中,這能夠設置爲 go-sockaddr模板docker

  • -client - Consul將綁定客戶端接口的地址,包括HTTP和DNS服務器。默認狀況下,這是「127.0.0.1」,只容許回送鏈接。在Consul 1.0和更高版本中,能夠將其設置爲要綁定到的空間分隔的地址列表,或者 可能會解析爲多個地址的 go-sockaddr模板。shell

  • -config-file - 要加載的配置文件。有關此文件格式的更多信息,請閱讀配置文件部分。該選項能夠屢次指定以加載多個配置文件。若是指定了屢次,稍後加載的配置文件將與先前加載的配置文件合併。在配置合併期間,單值鍵(string,int,bool)將簡單地將它們的值替換,而列表類型將被附加在一塊兒。json

  • -config-dir - 要加載的配置文件的目錄。Consul將加載後綴爲「.json」的全部文件。加載順序是按字母順序排列的,並使用與上述config-file選項相同的合併例程 。能夠屢次指定此選項以加載多個目錄。不加載config目錄的子目錄。有關配置文件格式的更多信息,請參閱 配置文件部分。

  • -config-format - 要加載的配置文件的格式。一般,Consul會從「.json」或「.hcl」擴展名檢測配置文件的格式。將此選項設置爲「json」或「hcl」強制Consul解釋任何帶或不帶擴展名的文件,以該格式解釋。

  • -data-dir - 此標誌爲代理存儲狀態提供了一個數據目錄。這對全部代理都是必需的。該目錄在從新啓動時應該是持久的。這對於在服務器模式下運行的代理尤爲重要,由於它們必須可以保持羣集狀態。此外,該目錄必須支持使用文件系統鎖定,這意味着某些類型的已裝入文件夾(例如VirtualBox共享文件夾)可能不合適。注意:服務器和非服務器代理均可以在此目錄中的狀態下存儲ACL令牌,所以讀取訪問權限能夠授予對服務器上的任何令牌的訪問權限,並容許訪問非服務器上的服務註冊期間使用的任何令牌。在基於Unix的平臺上,這些文件使用0600權限編寫,所以您應確保只有受信任的進程能夠與Consul同樣的用戶身份執行。在Windows上,您應確保該目錄具備適當的權限配置,由於這些權限將被繼承。

  • -datacenter - 此標誌控制運行代理程序的數據中心。若是未提供,則默認爲「dc1」。Consul對多個數據中心擁有一流的支持,但它依賴於正確的配置。同一個數據中心內的節點應該位於單個局域網中。

  • -dev - 啓用開發服務器模式。這對於在關閉全部持久性選項的狀況下快速啓動Consul代理很是有用,從而啓用可用於快​​速原型開發或針對API進行開發的內存服務器。此模式適合生產使用,由於它不會將任何數據寫入磁盤。

  • -disable-host-node-id - 將此設置爲true將阻止Consul使用來自主機的信息生成肯定性節點標識,並將生成隨機節點標識,該標識將保留在數據目錄中。在同一臺主機上運行多個Consul代理進行測試時,這很是有用。Consul在版本0.8.5和0.8.5以前缺省爲false,所以您必須選擇加入基於主機的ID。基於主機的ID是使用https://github.com/shirou/gopsutil/tree/master/host生成的,與HashiCorp的Nomad共享 ,所以若是您選擇加入基於主機的ID,則Consul和Nomad將使用信息在主機上在兩個系統中自動分配相同的ID。

  • -disable-keyring-file - 若是設置,密鑰環不會被保存到文件中。任何已安裝的密鑰在關機時將丟失,只有在給定的 -encrypt密鑰在啓動時可用。這默認爲false。

  • -dns-port - 偵聽的DNS端口。這將覆蓋默認端口8600.這在Consul 0.7和更高版本中可用。

  • -domain - 默認狀況下,Consul響應「consul」中的DNS查詢。域。該標誌可用於更改該域。該域中的全部查詢都假定由Consul處理,不會遞歸解決。

  • -enable-script-checks這將控制是否在此代理上啓用執行腳本的運行情況檢查,而且默認爲false運營商必須選擇容許這些腳本。若是啓用,建議啓用ACL以控制容許哪些用戶註冊新的檢查以執行腳本。這是在Consul 0.9.0中添加的。

  • -encrypt - 指定用於加密Consul網絡流量的密鑰。該密鑰必須是Base64編碼的16字節。建立加密密鑰的最簡單方法是使用 consul keygen。羣集中的全部節點必須共享相同的加密密鑰才能進行通訊。提供的密鑰會自動保留到數據目錄並在代理程序從新啓動時自動加載。這意味着爲了加密Consul的閒話協議,這個選項只須要在每一個代理的初始啓動序列中提供一次。若是Consul在使用加密密鑰初始化後提供,則忽略提供的密鑰並顯示警告。

  • -hcl - HCL配置片斷。此HCL配置片斷將附加到配置中,並容許在命令行上指定配置文件的所有選項。該選項能夠屢次指定。這是在Consul 1.0中添加的。

  • -http-port - 要監聽的HTTP API端口。這覆蓋了默認端口8500.當將Consul部署到經過環境傳遞HTTP端口的環境時,此選項很是有用,例如像CloudFoundry這樣的PaaS,容許您經過Procfile直接設置端口。

  • -join - 啓動時加入的另外一位代理的地址。這能夠指定屢次以指定多個代理加入。若是Consul沒法加入任何指定的地址,代理啓動將失敗。默認狀況下,代理在啓動時不會加入任何節點。請注意,retry_join在自動執行Consul集羣部署時,使用 可能更適合幫助緩解節點啓動競爭條件。

    在Consul 1.1.0和更高版本中,這能夠設置爲 go-sockaddr 模板

  • -retry-join- 相似於-join第一次嘗試失敗時容許重試鏈接。這對於知道地址最終可用的狀況頗有用。該列表能夠包含IPv4,IPv6或DNS地址。在Consul 1.1.0和更高版本中,這能夠設置爲 go-sockaddr 模板。若是Consul正在非默認的Serf LAN端口上運行,則必須指定。IPv6必須使用「括號」語法。若是給出多個值,則按照列出的順序嘗試並重試它們,直到第一個成功爲止。這裏有些例子:

    # Using a DNS entry $ consul agent -retry-join "consul.domain.internal" 
    # Using IPv4 $ consul agent -retry-join "10.0.4.67" 
    # Using IPv6 $ consul agent -retry-join "[::1]:8301" 

    »雲端自動加入

    從Consul 0.9.1開始,retry-join使用go-discover庫接受使用雲元數據進行自動集羣加入的統一接口 。有關更多信息,請參閱雲端自動加入頁面

    # Using Cloud Auto-Joining $ consul agent -retry-join "provider=aws tag_key=..." 
  • -retry-interval - 加入嘗試之間的等待時間。默認爲30秒。

  • -retry-max-join在退出代碼1以前嘗試執行的最大嘗試次數。默認狀況下,它設置爲0,將其解釋爲無限次重試。

  • -join-wan - 啓動時加入的另外一個WAN代理的地址。能夠指定屢次以指定要加入的多個WAN代理。若是Consul沒法加入任何指定的地址,代理啓動將失敗。默認狀況下,代理-join-wan啓動時不會有任何節點。

    在Consul 1.1.0和更高版本中,這能夠設置爲 go-sockaddr 模板。

  • -retry-join-wan- 與retry-join第一次嘗試失敗時容許重試wan鏈接相似。這對於咱們知道地址最終可用的狀況頗有用。截至領事0.9.3 支持自動加入

    在Consul 1.1.0和更高版本中,這能夠設置爲 go-sockaddr 模板

  • -retry-interval-wan- 兩次-join-wan嘗試之間的等待時間。默認爲30秒。

  • -retry-max-wan-join-wan在退出代碼1以前嘗試執行的最大嘗試次數。默認狀況下,它設置爲0,將其解釋爲無限次重試。

  • -log-level - Consul代理啓動後顯示的日誌級別。這默認爲「信息」。可用的日誌級別是「跟蹤」,「調試」,「信息」,「警告」和「錯誤」。您始終能夠經過consul monitor並使用任何日誌級別鏈接到代理。另外,日誌級別能夠在配置重載期間更改。

  • -node - 集羣中此節點的名稱。這在集羣內必須是惟一的。默認狀況下,這是機器的主機名。

  • -node-id - 在Consul 0.7.3及更高版本中可用,即便節點或地址的名稱發生更改,該節點仍然是該節點的惟一標識符。這必須採用十六進制字符串的形式,長度爲36個字符,例如 adf4238a-882b-9ddc-4a9d-5b6758e4159e。若是未提供(最多見的狀況),那麼代理將在啓動時生成一個標識符,並將其保存在數據目錄中, 以便在代理從新啓動時保持相同。若是可能,主機的信息將用於生成肯定性節點ID,除非-disable-host-node-id設置爲true。

  • -node-meta- 在Consul 0.7.3及更高版本中可用,這指定了一個任意的元數據鍵/值對,與表單的節點相關聯key:value。這能夠指定屢次。節點元數據對具備如下限制:

    • 每一個節點最多可註冊64個鍵/值對。
    • 元數據密鑰的長度必須介於1到128個字符(含)之間
    • 元數據鍵只能包含字母數字-,和_字符。
    • 元數據密鑰不能以consul-前綴開頭; 這是保留供內部使用的領事。
    • 元數據值的長度必須介於0到512(含)之間。
    • 開頭的密鑰的元數據值rfc1035-在DNS TXT請求中逐字編碼,不然元數據kv對將根據RFC1464進行編碼。
  • -pid-file - 此標誌爲代理存儲其PID提供文件路徑。這對發送信號頗有用(例如,SIGINT 關閉代理或SIGHUP更新檢查肯定

  • -protocol - 要使用的Consul協議版本。這默認爲最新版本。這應該只在升級時設置。您能夠經過運行查看Consul支持的協議版本consul -v

  • -raft-protocol - 它控制用於服務器通訊的內部版本的Raft一致性協議。必須將其設置爲3才能訪問自動駕駛儀功能,但不包括cleanup_dead_servers。Consul 1.0.0及更高版本默認爲3(之前默認爲2)。有關 詳細信息,請參閱 Raft協議版本兼容性

  • -raft-snapshot-threshold - 這將控制保存到磁盤的快照之間的最小數量的木筏提交條目。這是一個不多須要更改的低級參數。遇到磁盤IO過多的很是繁忙的羣集可能會增長此值以減小磁盤IO,並最大限度地減小全部服務器同時進行快照的機會。因爲日誌會變得更大而且raft.db文件中的空間直到下一個快照才能被回收,因此增長這一點會使磁盤空間與磁盤IO之間的交易關閉。若是因爲須要重播更多日誌而致使服務器崩潰或故障切換時間延長,服務器可能須要更長時間才能恢復。在Consul 1.1.0和更高版本中,這個默認值爲16384,在以前的版本中它被設置爲8192。

  • -raft-snapshot-interval - 控制服務器檢查是否須要將快照保存到磁盤的頻率。他是一個不多須要改變的低級參數。遇到磁盤IO過多的很是繁忙的羣集可能會增長此值以減小磁盤IO,並最大限度地減小全部服務器同時進行快照的機會。因爲日誌會變得更大而且raft.db文件中的空間直到下一個快照才能被回收,因此增長這一點會使磁盤空間與磁盤IO之間的交易關閉。若是因爲須要重播更多日誌而致使服務器崩潰或故障切換時間延長,服務器可能須要更長時間才能恢復。在Consul 1.1.0及更高版本中,這個默認設置爲30s,而且在以前的版本中設置爲5s

  • -recursor - 指定上游DNS服務器的地址。該選項能夠提供屢次,功能上與recursors配置選項等效。

  • -rejoin - 提供時,領事將忽略先前的休假,並在開始時嘗試從新加入集羣。默認狀況下,Consul將休假視爲永久意圖,而且在啓動時不會再嘗試加入集羣。該標誌容許先前的狀態用於從新加入羣集。

  • -segment - (僅限企業)此標誌用於設置代理所屬網段的名稱。代理只能加入其網段內的其餘代理並與其通訊。有關更多詳細信息,請參閱網絡細分指南。默認狀況下,這是一個空字符串,它是默認的網段。

  • -server - 此標誌用於控制代理是否處於服務器或客戶端模式。提供時,代理將充當領事服務器。每一個Consul集羣必須至少有一個服務器,理想狀況下每一個數據中心不超過5個。全部服務器都參與Raft一致性算法,以確保事務以一致的,可線性化的方式進行。事務修改全部服務器節點上維護的集羣狀態,以確保節點發生故障時的可用性。服務器節點還參與其餘數據中心中服務器節點的WAN八卦池。服務器充當其餘數據中心的網關,並根據須要轉發流量。

  • -non-voting-server - (僅限企業)此標誌用於使服務器不參與Raft仲裁,並使其僅接收數據複製流。在須要大量讀取服務器的狀況下,這可用於將讀取可伸縮性添加到羣集。

  • -syslog - 該標誌啓用記錄到系統日誌。這僅在Linux和OSX上受支持。若是在Windows上提供,將會致使錯誤。

  • -ui - 啓用內置的Web UI服務器和所需的HTTP路由。這消除了將Consul Web UI文件與二進制文件分開維護的須要。

  • -ui-dir - 此標誌提供包含Consul的Web UI資源的目錄。這將自動啓用Web UI。目錄必須對代理可讀。從Consul版本0.7.0及更高版本開始,Web UI資產包含在二進制文件中,所以再也不須要此標誌; 僅指定-ui標誌就足以啓用Web UI。指定'-ui'和'-ui-dir'標誌將致使錯誤。

»配置文件

除了命令行選項以外,配置還能夠放入文件中。在某些狀況下,這可能更容易,例如使用配置管理系統配置Consul時。

配置文件是JSON格式的,使得它們易於被人類和計算機讀取和編輯。該配置被格式化爲一個單獨的JSON對象,並在其中進行配置。

配置文件不只用於設置代理,還用於提供檢查和服務定義。這些用於向其餘羣集宣佈系統服務器的可用性。它們分別在檢查配置和 服務配置下分別記錄。服務和檢查定義支持在從新加載期間進行更新。

»示例配置文件

{ "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 } 

除非https已爲端口分配了端口號,不然Consul將不會爲HTTP API啓用TLS > 0

»配置密鑰參考

  • 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。默認狀況下,它被設置爲「 https://api.circonus.com/v2 」。
    • 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中是新的。

  • watches - Watches是手錶規範的列表,容許在更新特定數據視圖時自動調用外部進程。有關更多詳情,請參閱 手錶文檔。手錶能夠在配置從新加載時修改。

»使用的端口

Consul最多須要6個不一樣的端口才能正常工做,有些使用TCP,UDP或兩種協議。下面咱們記錄每一個端口的要求。

  • 服務器RPC(默認8300)。這由服務器用來處理來自其餘代理的傳入請求。僅限TCP。

  • Serf LAN(默認8301)。這是用來處理局域網中的八卦。全部代理都須要。TCP和UDP。

  • Serf WAN(默認8302)。這被服務器用來在WAN上閒聊到其餘服務器。TCP和UDP。從Consul 0.8開始,建議經過端口8302在LAN接口上爲TCP和UDP啓用服務器之間的鏈接,以及WAN加入氾濫功能。另見: Consul 0.8.0 CHANGELOGGH-3058

  • HTTP API(默認8500)。這被客戶用來與HTTP API交談。僅限TCP。

  • DNS接口(默認8600)。用於解析DNS查詢。TCP和UDP。

»可從新加載配置

從新加載配置不會從新加載全部配置項目。從新加載的項目包括:

相關文章
相關標籤/搜索