elasticsearch啓動錯誤整理

1、elasticsearch錯誤復現

(一)、環境

配置環境   OS:CentOS 7.4 64bit   elasticsearch版本:5.4.1
  hostname:elk-1-1   ip:10.18.43.170 java版本:java -version "1.8.0_181"

(二)、錯誤復現

  首先要獲取必須的軟件包java

wget -P /var/ftp/ https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.tar.gz

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz"

環境配置node

sed -ri '/^SELINUX/cSELINUX=disabled' /etc/selinux/config setenforce 0 firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --permanent --add-port=9200/tcp firewall-cmd --permanent --add-port=9300/tcp firewall-cmd --reload

JDK配置linux

[root@elk-1-1 ~]# tar xf jdk-8u181-linux-x64.tar.gz -C /usr/local/ [root@elk-1-1 ~]# ln -s /usr/local/jdk1.8.0_181 /usr/local/java [root@elk-1-1 ~]# cat /etc/profile.d/java.sh JAVA_HOME=/usr/local/java PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME PATH [root@elk-1-1 ~]# source /etc/profile [root@elk-1-1 ~]# env | grep JAVA JAVA_HOME=/usr/local/java [root@elk-1-1 ~]# java -version java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

elasticsearch配置bootstrap

useradd elk su - elk mv /tmp/elasticsearch-5.4.1.tar.gz /home/elk tar xf elasticsearch-5.4.1.tar.gz

配置文件elasticsearch-5.4.1/config/elasticsearch.ymlcookie

[elk@elk-1-1 ~]$ egrep "^[^#$]" elasticsearch-5.4.1/config/elasticsearch.yml cluster.name: my-elk node.name: elk1 path.data: /tmp/data path.logs: /tmp/logs bootstrap.memory_lock: false network.host: 0.0.0.0 http.port: 9200

elasticsearch不容許root用啓動,我使用給他專門建立的用戶elk用來啓動它oracle

[elk@elk-1-1 ~]$ elasticsearch-5.4.1/bin/elasticsearch -d

(三)、日誌輸出

[2018-07-27T19:19:16,089][ERROR][o.e.b.Bootstrap ] [elk1] node validation exception [3] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] [2]: memory locking requested for elasticsearch process but memory is not locked [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

2、解決方法

錯誤一:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

解決方法:less

  打開/etc/security/limits.conf文件,在末尾添加如下兩行並保存:jvm

* soft nofile 65536     //*表示任意用戶,這裏是elasticsearch報的錯,也能夠直接填運行elk的用戶;
* hard nofile 131072

錯誤二:

[2]: memory locking requested for elasticsearch process but memory is not locked

解決方法:elasticsearch

  修改elasticsearch.yml文件tcp

bootstrap.memory_lock : false

錯誤三:

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決方法:

  修改內核配置/etc/sysctl.d/99-sysctl.conf添加vm.max_map_count=262144

sysctl -w vm.max_map_count=262144 sysctl -p

錯誤四:

os::commit_memory(0x00000001006cd000, 77824, 0) failed; error=’Cannot allocate memory’ (errno=12)

解決方法:

  提供內存不足,增大主機內存或者減少elasticsearch的內存大小

[elk@elk-1-1 ~]$ grep -v "^#" elasticsearch-5.4.1/config/jvm.options |grep -v "^$"
-Xms2g -Xmx2g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -server -Xss1m -Djava.awt.headless=true
-Dfile.encoding=UTF-8
-Djna.nosys=true
-Djdk.io.permissionsUseCanonicalPath=true
-Dio.netty.noUnsafe=true
-Dio.netty.noKeySetOptimization=true
-Dio.netty.recycler.maxCapacityPerThread=0
-Dlog4j.shutdownHookEnabled=false
-Dlog4j2.disable.jmx=true
-Dlog4j.skipJansi=true
-XX:+HeapDumpOnOutOfMemoryError

  修改完成以後,建議退出當前登陸用戶,在從新登陸,而後在從新啓動elasticsearch,就能夠一了,(:tar包和unzip包,都是不容許elasticsearch程序讓root用戶來運行的,咱們必須提早建立一個用戶!)

相關文章
相關標籤/搜索