1、服务器环境
[root@elk ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@elk ~]# uname -r
3.10.0-327.4.5.el7.x86_64
[root@elk ~]# free -m
total used free shared buff/cache available
Mem: 3791 1435 324 8 2031 2133
Swap: 999 0 999
2、源码安装JDK
[root@elk ~]# mkdir /usr/local/java/
[root@elk ~]# tar xf jdk-8u201-linux-x64.tar.gz -C /usr/local/java/
3、配置环境变量
[root@elk ~]# cat /etc/profile
...
JAVA_HOME=/usr/local/java/jdk1.8.0_201
JRE_HOME=/usr/local/java/jdk1.8.0_201/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
[root@elk ~]# source /etc/profile
4、查看版本
[root@elk ~]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
5、下载 Elasticsearch源码包【Linux: elasticsearch-7.6.2-linux-x86_64.tar.gz】
[root@elk ~]# curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz
官网地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-install.html
6、解压源码包【注意:不能解压在/root目录下,否则权限不足不能启动】
[root@elk ~]# tar xf /root/elasticsearch-7.6.2-linux-x86_64.tar.gz -C /home
7、配置Elasticsearch
[root@elk ~]# vim /home/elasticsearch-7.6.2/config/elasticsearch.yml
cluster.name: elk
# Elasticsearch集群名
node.name: elk
# 该主机节点名
path.data: /mnt/elasticsearch/data
# 数据存储目录路径
path.logs: /mnt/elasticsearch/logs
# 日志存储目录路径
network.host: 0.0.0.0
# 监听所有地址
http.port: 9200
# 监听的主机端口,用于接收客户端HTTP请求的端口
discovery.seed_hosts: ["elk"]
# 集群内发现发送主机列表
8、创建数据存储和日志存储目录
[root@elk ~]# mkdir -p /mnt/elasticsearch/data
[root@elk ~]# mkdir -p /mnt/elasticsearch/logs
9、创建用户,并授权相关目录【注意:Elasticsearch 默认不能以root身份启动】
[root@elk ~]# useradd -M elk
[root@elk ~]# chown -R elk.elk /mnt/elasticsearch/
[root@elk ~]# chown -R elk.elk /home/elasticsearch-7.6.2/
10、系统配置【关键】
[root@elk ~]# vim /etc/security/limits.conf
...
#添加以下两行
* hard nofile 65536
* soft nofile 65536
[root@elk ~]# vim /etc/security/limits.d/20-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited
[root@elk ~]# vim /etc/sysctl.conf
vm.max_map_count=262144
#mmap计数由于系统限制值太低了,可能会导致ES出现内存不足而不能启动,我们需要将其值设大
[root@elk ~]# sysctl -p
#由于要修改用户服务可开启的最大进程数,配置完后需要重启服务器
[root@elk ~]# init 6
11、以非root身份启动Elasticsearch【注意:Elasticsearch 默认不能以root身份启动】
[root@elk ~]# sudo -u elk /home/elasticsearch-7.6.2/bin/elasticsearch -d
[root@elk ~]# tailf /mnt/elasticsearch/logs/elk.log
[root@elk ~]# ss -antulp | grep 9200
tcp LISTEN 0 128 :::9200 :::* users:(("java",pid=2451,fd=235))
12、访问验证 http://192.168.66.72:9200
1)坑一:原因是以root身份启动 解决办法:以非root身份,如笔者以elk启动
2)坑二:原因是源码包加压在了/root目录下,权限不足
解决办法:加压至非root家目录,笔者加压至/home目录下
3)坑三:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解决办法:/etc/security/limits.conf下面添加如下两行
[root@elk ~]# vim /etc/security/limits.conf
...
* hard nofile 65536
* soft nofile 65536