1. 程式人生 > >ElasticSearch:設定外網訪問遇到的坑

ElasticSearch:設定外網訪問遇到的坑

設定外網訪問

  • 更改elasticsearch.yml檔案
network.host: 0.0.0.0
http.port: 9200

重新啟動結果報錯:

ERROR: [2] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2]: system call filters failed to install; check the logs and fix your configuration or disable system call
filters at your own risk

問題1.max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決方法:切換到root使用者修改配置sysctl.conf

vi /etc/sysctl.conf 

新增下面配置(如果沒修改過會是一個空檔案,直接新增就行):

vm.max_map_count=655360

並執行命令:

sysctl -p

問題2.system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

問題原因:因為Centos6不支援SecComp,而ES5.2.1預設bootstrap.system_call_filter為true進行檢測,所以導致檢測失敗,失敗後直接導致ES不能啟動。詳見 :https://github.com/elastic/elasticsearch/issues/22899

解決方法:在elasticsearch.yml中配置bootstrap.system_call_filter為false,注意要在Memory下面:

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

除此之外其他問題也可能需要修改:

問題3.Caused by: java.lang.RuntimeException: can not run elasticsearch as root

問題4.max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

問題5.max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]

解決方法:切換到root使用者,編輯limits.conf新增類似如下內容

vi /etc/security/limits.conf 

新增如下內容:

soft nofile 65536
hard nofile 131072
soft nproc 2048
hard nproc 4096

問題6.max number of threads [1024] for user [lish] likely too low, increase to at least [2048]

解決方法:切換到root使用者,進入limits.d目錄下修改配置檔案。

vi /etc/security/limits.d/90-nproc.conf 

修改如下內容:

soft nproc 1024

修改為:

soft nproc 2048