天天看點

Elasticsearch-6.4.0配置解析

來源:elastic search官網翻譯而來!

1. ../config/elasticsearch.yml

# ======================== Elasticsearch Configuration =========================

#

# NOTE: Elasticsearch comes with reasonable defaults for most settings.

#       Before you set out to tweak and tune the configuration, make sure you

#       understand what are you trying to accomplish and the consequences.

#

# The primary way of configuring a node is via this file. This template lists

# the most important settings you may want to configure for a production cluster.

#

# Please consult the documentation for further information on configuration options:

# https://www.elastic.co/guide/en/elasticsearch/reference/index.html

正題

# ---------------------------------- Cluster -----------------------------------

#

# 節點隻能cluster.name在與群集中的所有其他節點共享群集時才能加入群集。

# 預設名稱是elasticsearch,但您應将其更改為适當的名稱,該名稱描述了群集的用途。

# 確定不要在不同的環境中重用相同的群集名稱,否則最終會導緻節點加入錯誤的群集。

#

cluster.name: logging-prod

#設定一個節點的并發數量,有兩種情況,一種是在初始複蘇過程中: 

cluster.routing.allocation.node_initial_primaries_recoveries: 4 

#另一種是在添加、删除節點及調整時: 

cluster.routing.allocation.node_concurrent_recoveries: 2

#

# ------------------------------------ Node ------------------------------------

#

# 預設情況下,Elasticsearch将使用随機生成的UUID的前七個字元作為節點ID。

# 請注意,節點ID是持久的,并且在節點重新啟動時不會更改,是以預設節點名稱也不會更改。

# 值得配置一個更有意義的名稱,它還具有在重新啟動節點後保持持久性的優點:

# 該node.name如下,也可以設定為伺服器的主機名:node.name: $ {HOSTNAME}

#

node.name: prod-data-2

#是否允許作為主節點,預設值為true: 

node.master: true

#是否存儲資料,即存儲索引片段,預設值為true: 

node.data: true

#注意: 

#master和data同時配置會産生一些奇異的效果: 

#當master為false,而data為true時,會對該節點産生嚴重負荷;

#當master為true,而data為false時,該節點作為一個協調者;

#當master為false,data也為false時,該節點就變成了一個負載均衡器。 

#你可以通過連接配接http://localhost:9200/_cluster/health或者http://localhost:9200/_cluster/nodes,或者使用插件http://github.com/lukas-vlcek/bigdesk或http://mobz.github.com/elasticsearch-head來檢視叢集狀态。

#節點自定義屬性,可用于後期叢集進行碎片配置設定時的過濾: 

node.attr.rack: r1

#

# ----------------------------------- Paths ------------------------------------

#

#

# 如果您使用.zip或.tar.gz存檔,則data和logs 目錄是子檔案夾$ES_HOME。

# 如果這些重要檔案夾保留在其預設位置,則在将Elasticsearch更新到新版本時,存在删除它們的高風險。

# 在生産使用中,您幾乎肯定會想要更改資料和日志檔案夾的位置:

# 路徑:

#  logs:/ var / log / elasticsearch

#  data:/ var / data / elasticsearch

# 該RPM和Debian發行版已經使用自定義路徑,data和logs。

# 該path.data設定可以被設定為多條路徑,在這種情況下,

# 所有的路徑将被用于存儲資料(雖然屬于單個碎片檔案将全部存儲相同的資料路徑上):

# 路徑:

#   資料:

#    -  / mnt / elasticsearch_1

#    -  / mnt / elasticsearch_2

#    -  / mnt / elasticsearch_3

#

#索引資料

path.data: /path/to/data

#日志檔案

path.logs: /path/to/logs

#可以選擇多個位置,這樣在建立時就有更多的自由路徑,如: 

#path.data: /path/to/data1,/path/to/data2

#配置檔案所在的位置,即elasticsearch.yml和logging.yml所在的位置: (沒有搞懂怎麼用,參考)

#path.conf: /path/to/conf

#臨時檔案位置:(沒有搞懂怎麼用,參考)

#path.work: /path/to/work

#插件安裝位置: (沒有搞懂怎麼用,參考)

#path.plugins: /path/to/plugins

#插件托管位置,若清單中的某一個插件未安裝,則節點無法啟動: (沒有搞懂怎麼用,參考)

#plugin.mandatory: mapper-attachments,lang-groovy

#

# ----------------------------------- Memory -----------------------------------

#

# 啟動時鎖定記憶體

bootstrap.memory_lock: true

# 確定堆大小設定為系統中可用記憶體的一半左右,并允許程序的所有者使用此限制

# 當系統交換記憶體時,Elasticsearch的性能很差

#

# ---------------------------------- Network -----------------------------------

# 預設情況下,Elasticsearch僅綁定到環回位址 - 例如127.0.0.1 和[::1]。

# 這足以在伺服器上運作單個開發節點。

#

# 實際上,可以從$ES_HOME 單個節點上的相同位置啟動多個節點。

# 這對于測試Elasticsearch形成叢集的能力非常有用,但它不是推薦用于生産的配置。

#

# 為了在其他伺服器上形成包含節點的叢集,您的節點将需要綁定到非環回位址。

# 雖然有許多 network settings,但通常您需要配置的是 network.host:

#

# 該network.host設定也了解一些特殊的值, 比如 _local_,_site_,_global_和

# modifiers like:ip4和:ip6,其中的細節中可以找到的特殊值network.host編輯。

#

# 隻要您提供自定義設定network.host,Elasticsearch就會假定您正在從開發模式

# 轉移到生産模式,并将許多系統啟動檢查從警告更新到異常。有關詳細資訊,

# 請參閱開發模式與生産模式編輯。

#

# network.host:有一下幾種結果,出現error參考下一章或許對你有幫助

#_[networkInterface]_ :   網絡接口的位址 _en0_.

#_local_ :   本機 127.0.0.1

#_site_  :  本地位址 192.168.0.1

#_global_  :  所有ip都可通路 0.0.0.0

# 預設127.0.0.1,建議指定為内網ip,不要偷懶設定0.0.0.0

network.host: 192.168.0.1

# 可以定制該節點與其他節點互動的端口: (沒有搞懂怎麼用,參考)

#transport.tcp.port: 9300

節點間互動時,可以設定是否壓縮,轉為為不壓縮: 

transport.tcp.compress: true

可以為Http傳輸監聽定制端口: 預設9200

http.port: 9200

設定内容的最大長度: 

http.max_content_length: 100mb

禁止HTTP: 

http.enabled: false

#

# --------------------------------- Discovery ----------------------------------

# 設定ping其他節點時的逾時時間,網絡比較慢時可将該值設大: (沒有搞懂怎麼用,參考)

#discovery.zen.ping.timeout: 3s 

# 禁止目前節點發現多個叢集節點,預設值為true: (沒有搞懂怎麼用,參考)

#discovery.zen.ping.multicast.enabled: false

#

# Pass an initial list of hosts to perform discovery when new node is started:

# The default list of hosts is ["127.0.0.1", "[::1]"]

# Elasticsearch使用名為“Zen Discovery”的自定義發現實作進行節點到節點的群集和主選舉。

# 在投入生産之前,應該配置兩個重要的發現設定。

# 開箱即用,沒有任何網絡配置,Elasticsearch将綁定到可用的環回位址,

# 并将掃描端口9300到9305以嘗試連接配接到在同一伺服器上運作的其他節點。

# 這提供了自動群集體驗,無需進行任何配置。

# 當需要在其他伺服器上形成具有節點的群集時,您必須提供群集中可能是實時且可聯系的其他節點的種子清單。

# 這可以指定如下:

# discovery.zen.ping.unicast.hosts:

#   -  192.168.1.10:9300

#   -  192.168.1.11 #如果未指定 ,端口将預設為transport.profiles.default.port和回退 transport.tcp.port。

#   -  seeds.mydomain.com #解析為多個IP位址的主機名将嘗試所有已解析的位址。

(沒有搞懂怎麼用,參考)預設: ["127.0.0.1", "[::1]"]

#discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]

#

# Prevent the "split brain" by configuring the majority of nodes

# (total number of master-eligible nodes / 2 + 1):

# 為防止資料丢失,必須配置 discovery.zen.minimum_master_nodes設定,

# 以便每個符合主節點的節點都知道必須可見的最大主節點數,才能形成叢集。

# 如果沒有此設定,遭受網絡故障的群集可能會将群集拆分為兩個獨立的群集 - 分裂的大腦 - 這将導緻資料丢失。

# 在通過minimum_master_nodes編輯避免裂腦的過程中提供了更詳細的解釋 。

# 為避免分裂大腦,應将此設定設定為符合條件的主節點的法定數量:

(master_eligible_nodes / 2)+ 1

# 換句話說,如果有三個符合主節點的節點,則應将最小主節點設定為(3 / 2) + 1或2:

discovery.zen.minimum_master_nodes: 2

# 注意:叢集中主節點數,且在可選舉主節點的範圍内,寫多了會報Not enough master nodes discovered during pinging

#

# ---------------------------------- Gateway -----------------------------------

#

# 網關允許在所有叢集重新開機後持有叢集狀态,叢集狀态的變更都會被儲存下來,當第一次啟用叢集時,可以從網關中讀取到狀态,預設網關類型(也是推薦的)是local:(沒有搞懂怎麼用,參考)

#gateway.type: local

# 允許在N個節點啟動後恢複過程: 

gateway.recover_after_nodes: 1

# 設定初始化恢複過程的逾時時間: 

gateway.recover_after_time: 5m

# 設定該叢集中可存在的節點上限: 

gateway.expected_nodes: 2

# ----------------------------------Indices--------------------------------------

設定複蘇時的吞吐量,預設情況下是無限的: (沒有搞懂怎麼用,參考)

#indices.recovery.max_size_per_sec: 0

設定從對等節點恢複片段時打開的流的數量上限: (沒有搞懂怎麼用,參考)

#indices.recovery.concurrent_streams: 5

#

# ---------------------------------- Various -----------------------------------

#

# 在一個系統上禁用啟動多個節點: 

node.max_local_storage_nodes: 1

# 在删除索引時,是否需要明确指定名稱,該值為false時,将可以通過正則或_all進行是以 删除: 

action.destructive_requires_name: true

插件:plugin.mandatory: mapper-attachments,lang-groovy,沒有找到安裝的辦法是以先注釋掉了;

僅供參考!

繼續閱讀