运行环境
系统版本:CentOS Linux release 7.3.1611 (Core)
软件版本:Elasticsearch-7.1.0
硬件要求:最低2核4GB
安装过程
1、源码安装JDK
1.1、从官网下载源码包
官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html。
可能需要注册一个Oracle账号。
root@localhost:~# wget https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz?AuthParam=1555053295_8cf8b2b24ab4f6973dcc2a05d83be26d
1.2、解压源码包到安装目录
root@localhost:~# mv jdk-8u201-linux-x64.tar.gz* jdk-8u201-linux-x64.tar.gz
root@localhost:~# mkdir /usr/local/jdk
root@localhost:~# tar xzvf jdk-8u201-linux-x64.tar.gz -C /usr/local/jdk/
1.3、配置环境变量
配置环境变量,使命令在全局生效。
root@localhost:~# vim /etc/profile
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_201
export PATH=$JAVA_HOME/bin:$PATH
root@ubuntu:~# source /etc/profile
1.4、查看版本
root@localhost:~# 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)
2、系统配置
配置完成后,由于要修改用户服务可开启的最大进程数,所以需要重启服务器。
[root@localhost ~]# vim /etc/security/limits.conf
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536
[root@localhost ~]# vim /etc/security/limits.d/20-nproc.conf
* soft nproc 65536
root soft nproc unlimited
[root@localhost ~]# vim /etc/sysctl.conf
vm.max_map_count=262144
#Elasticsearch默认使用mmapfs来存储索引,mmap计数可能由于系统限制值太低了,可能会导致ES出现内存不足的一场,我们需要将其设置为更大。
[root@localhost ~]# sysctl -p
[root@localhost ~]# swapoff -a
[root@localhost ~]# reboot
3、下载Elasticsearch软件包
Elasticsearch软件包由ELK官网提供。
[root@localhost ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0-linux-x86_64.tar.gz
4、安装Elasticsearch
[root@localhost ~]# mkdir /usr/local/elk
[root@localhost ~]# tar xzvf elasticsearch-7.1.0-linux-x86_64.tar.gz -C /usr/local/elk/
5、配置Elasticsearch
我们构建一个单节点的Elasticsearch集群,单机运行。
[root@localhost ~]# vim /usr/local/elk/elasticsearch-7.1.0/config/elasticsearch.yml
cluster.name: my-application
# Elasticsearch集群名
node.name: node-1
# 该主机节点名
path.data: /data/elasticsearch/data
# 数据存储目录路径
path.logs: /data/elasticsearch/logs
# 日志存储目录路径
# bootstrap.memory_lock: true
network.host: 0.0.0.0
# 监听的主机地址
http.port: 9200
# 监听的主机端口,用于接收客户端HTTP请求的端口
transport.port: 9300
# 监听的主机端口,用于集群内主机传输通信所使用的端口
discovery.seed_hosts: ["172.16.254.129"]
# 集群内发现发送主机列表
cluster.initial_master_nodes: ["node-1"]
# 用于集群初始化所指定的master节点主机
#gateway.recover_after_nodes: 3
#action.destructive_requires_name: true
cluster.routing.allocation.disk.threshold_enabled: false
#关闭ES根据磁盘使用率分配分片(副本)数据功能,避免由于磁盘可用空间低于默认值而导致的ES自动停止。
#cluster.routing.allocation.disk.watermark.low: 10gb
#cluster.routing.allocation.disk.watermark.high: 20gb
6、创建相关存储目录
[root@localhost ~]# mkdir -p /data/elasticsearch/data
[root@localhost ~]# mkdir -p /data/elasticsearch/logs
7、创建运行用户,并授权相关目录
Elasticsearch默认不允许使用ROOT用户运行服务。
[root@localhost ~]# useradd -M elk
[root@localhost ~]# chown -R elk.elk /data/elasticsearch/
[root@localhost ~]# chown -R elk.elk /usr/local/elk/elasticsearch-7.1.0
8、启动Elasticsearch服务
[root@localhost ~]# sudo -u elk /usr/local/elk/elasticsearch-7.1.0/bin/elasticsearch -d
[root@localhost ~]# tail -n 200 -f /data/elasticsearch/logs/my-application.log
[root@localhost ~]# netstat -lnupt |grep 9200
tcp6 0 0 :::9200 :::* LISTEN 2481/java
tcp6 0 0 :::9300 :::* LISTEN 9932/java