一 安装jdk
elasticsearch7.2 要求JDK版本是jdk11 ,我一不小心装JDK8,最后发现不装JDK也可以 。 elasticsearch7.2中包含JDK,只要做一些配置就可以 。详见下边 三
二、Elasticsearch安装配置
(1)Elasticsearch安装
Elasticsearch的下载地址为https://www.elastic.co/cn/downloads/elasticsearch,选择Linux版本,然后上传至CentOS服务器,进入压缩文件所在的目录,这里选择放在了/opt目录下,进入/opt目录,安装解压命令如下。
# tar -zxvf elasticsearch-7.2.0-linux-86_64.tar.gz
同样为了后续使用方面将解压后的目录文件重命名为elasticsearch,重命名命令如下。
# mv elasticsearch-7.2.0 elasticsearch
(2)修改系统参数
修改系统参数的目的是确保系统有足够的资源启动Elasticsearch。
a)设置内核参数
# vi /etc/sysctl.conf
增加以下参数
vm.max_map_count=655360
b)执行以下命令确保配置生效。
# sysctl -p
c)设置资源参数
# vi /etc/security/limits.conf
# 修改如下
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
d)设置用户资源参数
# vi /etc/security/limits.d/20-nproc.conf
# 设置elk用户参数
elk soft nproc 65536
(3)添加启动用户,设置权限
因为启动Elasticsearch5.0版本及以上需要使用非root用户,需要新建一个用户来启动Elasticsearch,命令如下所示。
useradd elk #创建用户elk
groupadd elk #创建组elk
useradd elk -g elk #将用户添加到组
mkdir -pv /opt/elk/{data,logs} # 创建数据和日志目录
# 修改文件所有者
chown -R elk:elk /opt/elk/
chown -R elk:elk /opt/elasticsearch/ (4)Elasticsearch配置
修改Elasticsearch的配置文件/opt/elasticsearch/elasticsearch.yml。以下配置仅供参考。
注意,设置参数的时候:后面要有空格!
(5)使用elk用户启动Elasticsearch服务,命令如下所示。
# /opt/elasticsearch/bin/elasticsearch
如果要让Elasticsearch服务一直运行需要在上面命令后加&符号如下所示。
# /opt/elasticsearch/bin/elasticsearch &
关闭Elasticsearch服务需要查看一下这个服务所占用的进程号,然后使用kill命令杀死这个进程。
然后可以通过浏览器访问到Elasticsearch,如下图所示,通过浏览器访问时需要将CentOS防火墙关闭或者在防火墙开启9200端口。
(6)集群配置
只需配置的cluster.name保持一致,elasticsearch节点即可自动形成集群。
另外添加集群内节点的所有IP,便于发现集群内的节点,如下:
discovery.seed_hosts:[“10.10.2.221”,“10.10.2.222“]
cluster_initial_master_nodes:[“10.10.2.221”,“10.10.2.222“]
如果该节点可以作为主节点:
node.master:true
否则
node.master:false
如果该节点作为数据采集节点,配置
node.data:false
否则
node.data:true
(7)常用操作
查看索引 curl '10.10.2.221:9200/_cat/indices?v'
删除索引 curl -XDELETE 10.10.2.221:9200/apache*
三 启动可能的报错
future versions of Elasticsearch will require Java 11; your Java version from [/opt/jdk1.8.0_211/jre] does not meet this 。
- 原因:说明这个版本对应的jdk应该是java11。我们环境中的jdk是java8。其实新版的es是自带了jdk的。但是和我们环境变量的冲突了。
解决方案:修改启动文件,添加如下修改
vi bin/elasticsearch
# 指定jdk11
export JAVA_HOME=/opt/software/jdk/jdk-11.0.1
export PATH=$JAVA_HOME/bin:$PATH
# 添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/opt/software/jdk/jdk-11.0.1/bin/java"
else
JAVA=`which java`
fi