盡管ES要求很少的配置,但投入生産環境前仍有許多需要考慮的配置。
-
path.data和path.logs
位置:./config/elasticsearch.yml中參數,如果使用的.zip(對應于wins系統)或.tar.gz(對應linux系統)解壓安裝ES的方式,data和logs是ES安裝目錄的子目錄,若在生産環境中使用預設路徑存放data(es資料)、logs(日志),則在ES更新時會有被删除的風險。可以通過./config/elasticsearch.yml修改data及logs存放路徑,要修改的屬性參數為:
path.data: /path/to/data
path.logs: /path/to/logs
-
cluster.name
位置:./config/elasticsearch.yml中參數。一個節點隻能加入一個叢集,cluster.name相同的節點屬于同一叢集,確定不要在不同的環境中重複使用叢集名字,以免節點加入錯誤叢集,要修改的參數為:
cluster.name: elasticsearch #預設值
-
node.name
位置:./config/elasticsearch.yml中參數,node.name是每個ES執行個體的辨別,預設為ES啟動時機器的主機名,要修改的參數為:
node.name: node-1
-
network.host
位置:./config/elasticsearch.yml中參數,預設為:127.0.0.1,但僅限本地主機節點能通路,為了使其他主機節點也能通路,可以修改為:0.0.0.0
network.host: 0.0.0.0 #通路es形式:主機ip:端口
一旦自定義了該參數值,ES就假設你正從開發模式過渡到生産模式,會将系統啟動檢查警告更新為異常。
在投入生産環境之前,發現和形成叢集需要配置兩個重要的參數:discovery.seed_hosts及cluster.initial_master_nodes,以便叢集中的節點能發現彼此并選出一個主節點。
-
discovery.seed_hosts
開箱即用,ES綁定127.0.0.1并掃描端口9300~9305,試着連接配接同一伺服器上的其他節點,以上會自動進行。但若想和其他主機上的節點組成叢集,必須使用discovery.seed_hosts參數提供叢集中的其他系列節點,這些節點是有資格成為叢集主節點的節點(設定了node-master:true),其形式為:
discovery.seed_hosts: ["host1IP:port","host2"] #port預設使用transport.profiles.default.port
-
cluster.initial_master_nodes
首次啟動全新的Elasticsearch叢集時,會出現一個叢集引導步驟,該步驟确定了在第一次選舉中便對其票數進行計數的有資格成為叢集中主節點的節點的集合(投票的目的是選出叢集的主節點)。在開發模式中,叢集引導步驟由節點們自動引導,但在生産環境中這種自動引導的方式不安全,cluster.initial_master_nodes參數提供一個清單,清單中是全新叢集啟動時,有資格成為叢集主節點的節點(這些節點要被投票決定誰成為叢集主節點),它在叢集重新開機或添加新節點到叢集時時不起作用的,其形式為:
cluster.initial_master_nodes: ["node1-name","node2-name"] #node1-name是節點名字,各節點名字預設是所在的主機名,清單中也可以是:ip:port 形式