2
elasticsearch概念解释参照: https://segmentfault.com/a/11...

环境准备

1台centos6操作系统主机,关闭selinux及iptables
官方下载elasticsearch6.0软件包:https://artifacts.elastic.co/...
官方下载java1.8软件包:http://www.oracle.com/technet...

系统配置

创建elasticsearch账户用于启动elasticsearch服务
[root@elasticsearch ~]# useradd elasticsearch
修改系统ulimit并重启
[root@elasticsearch ~]# cat /etc/security/limits.d/90-nproc.conf 

# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     1024
root       soft    nproc     unlimited
elasticsearch   soft    nofile  655360
elasticsearch   hard    nofile  655360
elasticsearch   soft    nproc   655360
elasticsearch   hard    nproc   655360
修改内核参数配置
[root@elasticsearch ~]# echo 'vm.max_map_count = 655360' >> /etc/sysctl.conf
[root@elasticsearch ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
vm.max_map_count = 655360
[root@elasticsearch ~]# 
安装java并配置环境变量,jdk版本以实际下载的版本为准
[elasticsearch@elasticsearch software]$ ls
elasticsearch-6.0.0.tar.gz  jdk-8u121-linux-x64.tar.gz  x-pack-6.0.0.zip
[elasticsearch@elasticsearch software]$ pwd
/home/elasticsearch/software
[elasticsearch@elasticsearch software]$ tar -xf jdk-8u121-linux-x64.tar.gz
[elasticsearch@elasticsearch software]$ ls
elasticsearch-6.0.0.tar.gz  jdk1.8.0_121  jdk-8u121-linux-x64.tar.gz  x-pack-6.0.0.zip
[elasticsearch@elasticsearch software]$ cat ~/.bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions

JAVA_HOME='/home/elasticsearch/software/jdk1.8.0_121'
JRE_HOME="$JAVA_HOME/jre"
CLASSPATH=".:$JAVA_HOME/lib/:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/tools.jar"
PATH="$JAVA_HOME/bin:$JRE_HOME/bin:$PATH"
export JAVA_HOME JRE_HOME PATH CLASSPATH

[elasticsearch@elasticsearch software]$ source ~/.bashrc
[elasticsearch@elasticsearch software]$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
[elasticsearch@elasticsearch software]$ 

安装elasticsearch

安装相关软件包
[elasticsearch@elasticsearch software]$ tar -xf elasticsearch-6.0.0.tar.gz 
[elasticsearch@elasticsearch software]$ ls
elasticsearch-6.0.0  elasticsearch-6.0.0.tar.gz  jdk1.8.0_121  jdk-8u121-linux-x64.tar.gz  x-pack-6.0.0.zip
[elasticsearch@elasticsearch software]$ cd elasticsearch-6.0.0
[elasticsearch@elasticsearch elasticsearch-6.0.0]$ ls
bin  config  lib  LICENSE.txt  modules  NOTICE.txt  plugins  README.textile
[elasticsearch@elasticsearch elasticsearch-6.0.0]$ echo 'network.host: 0.0.0.0' >> config/elasticsearch.yml
[elasticsearch@elasticsearch elasticsearch-6.0.0]$ echo 'bootstrap.system_call_filter: false' >> config/elasticsearch.yml
[elasticsearch@elasticsearch elasticsearch-6.0.0]$ tail config/elasticsearch.yml
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true
network.host: 0.0.0.0
bootstrap.system_call_filter: false
[elasticsearch@elasticsearch elasticsearch-6.0.0]$
启动服务
[elasticsearch@elasticsearch elasticsearch-6.0.0]$ ./bin/elasticsearch -d
[elasticsearch@elasticsearch elasticsearch-6.0.0]$ ps -ef | grep elastic
503       1583     1 99 18:41 pts/0    00:00:13 /home/elasticsearch/software/jdk1.8.0_121/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -server -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -XX:+HeapDumpOnOutOfMemoryError -Des.path.home=/home/elasticsearch/software/elasticsearch-6.0.0 -Des.path.conf=/home/elasticsearch/software/elasticsearch-6.0.0/config -cp /home/elasticsearch/software/elasticsearch-6.0.0/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
503       1626  1532  0 18:41 pts/0    00:00:00 grep elastic
[elasticsearch@elasticsearch elasticsearch-6.0.0]$ 
查看集群状态信息
[elasticsearch@elasticsearch elasticsearch-6.0.0]$ curl 'http://localhost:9200/_cat/health?v'
epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1515581011 18:43:31  elasticsearch green           1         1      0   0    0    0        0             0                  -                100.0%

常见报错

disable system call filters at your own risk
[2018-01-10T18:06:35,482][WARN ][o.e.b.BootstrapChecks    ] [fzP4t-4] system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

添加 bootstrap.system_call_filter: false 至ES_HOME/config/elasticsearch.yml即可

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

修改系统ulimit并重启即可,详细配置如下

[root@elasticsearch ~]# cat /etc/security/limits.d/90-nproc.conf 

# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     1024
root       soft    nproc     unlimited
elasticsearch   soft    nofile  655360
elasticsearch   hard    nofile  655360
elasticsearch   soft    nproc   655360
elasticsearch   hard    nproc   655360

[root@elasticsearch ~]# reboot
vm.max_map_count [65530] is too low
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

修改内核参数配置

[root@elasticsearch ~]# echo 'vm.max_map_count = 655360' >> /etc/sysctl.conf
[root@elasticsearch ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
vm.max_map_count = 655360
[root@elasticsearch ~]# 

参考文档

elasticsearch官方文档:https://www.elastic.co/guide/...


已注销
73 声望14 粉丝

运维工程师