elasticsearch(三) 之 elasticsearch目錄介紹和配置文件詳解


elasticsearch 配置

目錄詳情

  • bin 二進制腳本,包含啟動命令和安裝插件命令等
  • config 配置文件目錄
  • lib 依賴包目錄
  • logs 日志文件目錄
  • modules 模塊庫
  • plugins 插件目錄
  • data 數據儲存目錄

(config) 配置文件

  • elasticsearch.yml elasticearch 配置文件
  • jvm.options elasticsearch jvm 配置文件
  • log4j2.properties elasticsearch 日志配置文件
    注意配置文件的文件格式為 YAML

elasticsearch.yml

配置集群名稱(cluster.name)

cluster.name 默認值是 elasticsearch
在同一個環境中,我們不要使用相同的集群名,因為這樣會導致節點加入錯誤的集群,我們要配置集群名稱為有含義且唯一的集群名,而不要使用通用的集群名。

配置節點名稱(node.name)

默認情況下,Elasticsearch將使用隨機生成的UUID的前七個字符作為節點ID。請注意,節點ID是持久的,並且在節點重新啟動時不會更改,因此默認節點名稱也不會更改。
配置一個具有意義的名稱
node.name:haha-elk-1
也可以使用系統變量
node.name: ${HOSTNAME}

配置 network.host

默認情況,elasticsearch 綁定回環地址 127.0.0.1.
如果是單節點,我們綁定回環地址就可以了,但是如果我們是集群的話,我們就需要綁定到我們的內網ip或者是公網IP.

只要您提供自定義設置network.host,Elasticsearch就會假定您從開發模式轉為生產模式,並將許多系統啟動檢查從警告升級到異常。

更改數據和儲存路徑

在33行的位置
#path.data: /path/to/data
#path.logs: /path/to/logs
我們需要把# 去除,然后更改存儲的路徑。

對於
path.data:  我們可以配置多個路徑
path:
  data:
    - /mnt/elasticsearch_1
    - /mnt/elasticsearch_2
    - /mnt/elasticsearch_3
但是我們同一個分片的數據會放在同一個路徑

節點網絡和名稱配置

我們可以引用系統的環境變量值來指定我們的配置,例如下面的結點名稱使用主機名稱,網絡地址使用 ES_NETWORK_HOST 變量的值

node.name:    ${HOSTNAME}
network.host: ${ES_NETWORK_HOST}

發現設置

# 配置節點
discovery.zen.ping.unicast.hosts: ["host1", "host2"]
# 配置最大主節點數
discovery.zen.minimum_master_nodes 
如果沒有此設置,遭受網絡故障的群集可能會將群集拆分為兩個獨立的群集 - 腦裂(所謂腦裂,就是同一個集群中的不同節點,對集群的狀態有不一致的理解。) - 這將導致數據丟失

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

jvm.options

官方文檔寫到

You should rarely need to change Java Virtual Machine (JVM) options. If you do, the most likely change is setting the heap size. The remainder of this document explains in detail how to set JVM options.

意思是 :我們需要更改jvm配置的次數應該非常少,就算是修改也是修改 heap size

heap size 配置

大約在 jvm.options 21行

一般在運行elasticsearch 的時候最小需要是內存是1G,少於1G我們會經常啟動不了。
-Xms1g  # 最小值為1G
-Xmx1g  # 最大值為1G
對於這個值的設置,官方為了適應不同的java版本,特做了一些適應配置
-Xms1g   不受版本影響,默認
8:-Xmx2g   只適應java8版本
8-:-Xmx2g  適應java8及以上版本
8-9:-Xmx2g  適應java8-java-9版本

官方文檔寫到:以往經驗得出,
1. 最大值和最小值設置為一樣的值,否則在系統使用的時候會因jvm值變化而導致服務暫停
2. 過多的內存,會導致用於緩存的內存越多,最終導致回收內存的時間也加長
3. 設置的內存不要超過物理內存的50%,以保證有足夠的內存留給操作系統
4. 不要將內存設置超過32GB

GC 日志

默認情況下是開啟GC日志的,也就是記錄java的內存回收
默認儲存位置在/logs/下 ,默認配置每64MB轉換一次日志 ,最大占用2g磁盤空間。

log4j2.properties 配置

elasticsearch 使用log4j2 進行日志記錄
需要具體配置日志文件的請看官方文檔:https://www.elastic.co/guide/en/elasticsearch/reference/6.3/logging.html
由於默認日志配置已經滿足我們的日常需求,所以這里不提及。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM