1. 程式人生 > 其它 >Elasticsearch 7 生產環境配置說明

Elasticsearch 7 生產環境配置說明

配置檔案及目錄說明

/etc/elasticsearch/log4j2.properties
/etc/elasticsearch/elasticsearch.yml
/etc/elasticsearch/jvm.options
/etc/default/elasticsearch
/usr/lib/sysctl.d/elasticsearch.conf

/usr/lib/systemd/system/elasticsearch.service

/var/log/elasticsearch
/var/lib/elasticsearch
/usr/share/elasticsearch/plugins

重要的系統配置

systemd配置

# mkdir -p /etc/systemd/system/elasticsearch.service.d

# vim /etc/systemd/system/elasticsearch.service.d/override.conf
...
[Service]
LimitMEMLOCK=infinity
...

# systemctl daemon-reload

禁用swapping

# swapoff -a

# vim /etc/fstab
...
#/swapfile                                 none            swap    sw              0       0
...

# vim /etc/sysctl.conf
...
vm.swappiness=0
...

檔案描述符

官方RPM和Debian包已經配置預設檔案描述符的最大數量為65535,不需要進一步配置。

vm.max_map_count

官方RPM和Debian包將自動配置此設定。無需進行其他配置。

# cat /usr/lib/sysctl.d/elasticsearch.conf
vm.max_map_count=262144

執行緒數

當在systemd下作為服務執行時,包分發將自動配置Elasticsearch程序的執行緒數。不需要額外的配置。

重要的elasticsearch配置

配置檔案:/etc/elasticsearch/elasticsearch.yml

path.data和path.logs

path.data: /var/lib/elasticsearch  ## 資料儲存目錄路徑(多個路徑使用逗號分隔)
path.logs: /var/log/elasticsearch

注意:可以將path.data設定為多個路徑,在這種情況下,所有路徑都將用於儲存資料(屬於單個分片的檔案將全部儲存在同一資料路徑上)。

path.data: /mnt/elasticsearch_1,/mnt/elasticsearch_2,/mnt/elasticsearch_3

cluster.name

cluster.name: logging-prod

node.name

node.name: prod-data-2

network.host

network.host: 192.168.1.10

發現和叢集配置

discovery.seed_hosts:
   - 192.168.1.10:9300
   - 192.168.1.11 
   - seeds.mydomain.com 
cluster.initial_master_nodes: 
   - master-node-a
   - master-node-b
   - master-node-c

JVM堆大小配置

## /etc/elasticsearch/jvm.options
-Xms1g
-Xmx1g
或:
## /etc/default/elasticsearch
ES_JAVA_OPTS="-Xms2g -Xmx2g"
或:
ES_JAVA_OPTS="-Xms4000m -Xmx4000m"

好的經驗法則是:
將最小堆大小(Xms)和最大堆大小(Xmx)設定為彼此相等。
Elasticsearch可用的堆越多,它可用於快取的記憶體就越多。但請注意,過多的堆可能會使您陷入長時間的垃圾收集暫停。
將Xmx設定為不超過物理RAM的50%,以確保有足夠的物理RAM留給核心檔案系統快取。
不要將Xmx設定為JVM用於壓縮物件指標(壓縮oops)的截止值以上;確切的截止值變化但接近32GB。

JVM堆轉儲路徑

預設情況下,Elasticsearch將JVM配置為將[記憶體不足異常中的堆]轉儲到預設資料目錄(對於RPM和Debian軟體包分發版,此目錄為/var/lib/elasticsearch;對於tar和zip存檔發行版,該目錄位於Elasticsearch安裝目錄的根目錄下)。

如果此路徑不適合接收堆轉儲,則應修改jvm.options中的條目-XX:HeapDumpPath=...。如果指定目錄,那麼JVM將基於正在執行的例項的PID為堆轉儲生成檔名。

如果指定固定檔名而不是目錄,則當JVM需要在記憶體不足異常時執行堆轉儲時,該檔案必須不存在,否則堆轉儲將失敗。

GC日誌

預設情況下,Elasticsearch啟用GC日誌。這些是在jvm.options中配置的,並且預設位於與Elasticsearch日誌相同的預設位置。預設配置每64 MB輪換一次日誌,最多可消耗2 GB磁碟空間。

臨時目錄

預設情況下,Elasticsearch使用啟動指令碼在系統臨時目錄下立即建立的私有臨時目錄。

在某些Linux發行版中,如果最近沒有訪問過,則系統實用程式將從/tmp中清除檔案和目錄。如果長時間不使用需要使用臨時目錄的功能,這可能會導致在執行Elasticsearch時刪除私有臨時目錄。如果隨後使用需要臨時目錄的功能,則將導致問題。

如果使用.deb或.rpm軟體包安裝Elasticsearch並在systemd下執行,則定期清理中將排除Elasticsearch使用的私有臨時目錄。

JVM致命錯誤日誌

預設情況下,Elasticsearch將JVM配置為將致命錯誤日誌寫入預設的日誌目錄(對於RPM和Debian軟體包發行版,這是/var/log/elasticsearch;對於tar和zip,在Elasticsearch安裝根目錄下的logs目錄)。
這些是JVM在遇到致命錯誤(例如分段錯誤)時生成的日誌。如果此路徑不適合接收日誌,則應將jvm.options中的條目-XX:ErrorFile = ...修改為備用路徑。

作者:Varden 出處:http://www.cnblogs.com/varden/ 本文內容如有雷同,請聯絡作者! 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。