0x00 背景
1. 系统 CentOS6.9
2. ElasticSearch v6.0
0x01 开始搭建
1. 将ElasticSearch从官网下载zip包,地址:https://www.elastic.co/downloads/elasticsearch
2. 创建ElasticSearch相关目录,并解压
mkdir /home/${user}/soft/elasticsearch
mkdir /data
mkdir /data/elasticsearch
mkdir /data/elasticsearch/data
mkdir /data/elasticsearch/log
mkdir /opt/elasticsearch
将ZIP包传输到/home/${user}/soft/elasticsearch 目录下
cd /home/${user}/soft/elasticsearch
unzip elasticsearch-6.0.0.zip 解压压缩包,名称可变
3. 将ElasticSearch程序保存到自定义安装目录下
cp -R /home/${user}/soft/elasticsearch/elasticsearch-6.0.0/* /opt/elasticsearch/
rm -rf /home/${user}/soft/elasticsearch/elasticsearch-6.0.0
4. 修改ElasticSearch配置文件 /opt/elasticsearch/config/elasticsearch.yml
# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
# Before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: elasticsearch
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: master-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /data/elasticsearch/data
#
# Path to log files:
#
path.logs: /data/elasticsearch/log
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 192.168.1.211
#
# Set a custom port for HTTP:
#
#http.port: 9200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
#discovery.zen.ping.unicast.hosts: ["host1", "host2"]
discovery.zen.ping.unicast.hosts: ["192.168.1.211"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
#
discovery.zen.minimum_master_nodes: 2
#
# For more information, consult the zen discovery module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true
5. 创建ElasticSearch的相关用户与组
groupadd elsearch 新建组
useradd -g elsearch elsearch 新建用户,赋予组
passwd elsearch 设置用户新密码
chown -R elsearch:elsearch /opt/elasticsearch/
chown -R elsearch:elsearch /opt/elasticsearch/ 将目录权限赋给用户
6. 运行ElasticSearch
su elsearch 切换用户
/opt/elasticsearch/bin/elasticsearch
若报错,则处理完报错问题之后重新运行
报错信息:
1). Unable to lock JVM Memory: error=12, reason=Cannot allocate memory
This can result in part of the JVM being swapped out.
Increase RLIMIT_MEMLOCK, soft limit: 65536, hard limit: 65536
解决方法: 使用Root用户在文件/etc/security/limits.confg添加配置
elsearch soft memlock unlimited
elsearch hard memlock unlimited
2). max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解决方法: 使用Root用户在文件/etc/security/limits.confg添加配置
* soft nofile 65536
* hard nofile 131072
3). max number of threads [1024] for user [elsearch] is too low, increase to at least [4096]
解决方法:使用Root用户在文件/etc/security/limits.confg添加配置
* soft nproc 2048
* hard nproc 4096
使用Root用户修改文件/etc/security/limits.d/90-nproc.conf 配置
* soft nproc 1024
修改为:
* soft nproc 4096
4). max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方法: 使用Root用户在文件 /etc/sysctl.conf 添加配置
vm.max_map_count=655360
执行命令,使配置生效
sysctl -p