安装环境
Linux Centos 7
Java 1.8环境
Elasticsearch 7.5.0
安装 JAVA 运行环境
Elasticsearch 是用JAVA实现的,必须要有JDK支持,所以必须先安装JDK。 如何安装JDK就不在这里赘述了,网上有很多教程。
安装 Elasticsearch
下载安装包
Elasticsearch 去官网直接下载,本人使用的是 7.5.0 版本;
[root@localhost ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.0-linux-x86_64.tar.gz
解压安装包
[root@localhost software]# tar -zxvf elasticsearch-7.5.0-linux-x86_64.tar.gz -C /usr/local/
创建es用户
从5.0开始 elasticsearch 安全级别提高了 不允许采用root帐号启动 所以我们要添加一个用户用来启动 elasticsearch,创建es用户并给elasticsearch安装目录赋予权限。
[root@localhost ~]# useradd es
[root@localhost ~]# chown -R es:es /usr/local/elasticsearch-7.5.0/
修改配置文件
切换到es用户,修改 elasticsearch.yml 配置文件:
[root@localhost ~]# su es
[root@localhost ~]# vi /usr/local/elasticsearch-7.5.0/config/elasticsearch.yml
配置文件修改参考:
#集群的名称
cluster.name: logs-app
#节点名称,其余两个节点分别为node-1 和node-3
node.name: node-1
#指定该节点是否有资格被选举成为master节点,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master
node.master: true
#允许该节点存储数据(默认开启)
node.data: true
#设置为true来锁住内存。因为内存交换到磁盘对服务器性能来说是致命的,当jvm开始swapping时es的效率会降低,所以要保证它不swap
bootstrap.memory_lock: true
#绑定的ip地址
network.host: 0.0.0.0
#设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
#Elasticsearch将绑定到可用的环回地址,并将扫描端口9300到9305以尝试连接到运行在同一台服务器上的其他节点。
启动 Elasticsearch
接下来切换到es用户启动 elasticsearch
[root@localhost ~]# su es
[es@localhost root]# sh/usr/local/elasticsearch-7.5.0/bin/elasticsearch -d //加-d就是启动后台进程
[es@localhost root]# ps -ef|grep elasticsearch
验证下服务是否正常运行 curl http://127.0.0.1:9200
安装常见问题
在启动ES时可能会出现几种错误情况
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
修改/etc/security/limits.conf文件,
[es@localhost root]# su root
[root@localhost ~]# vi /etc/security/limits.conf
在文件末尾添加如下:
* hard nofile 65536
* soft nofile 65536
max number of threads [3818] for user [es] is too low, increase to at least [4096]
修改/etc/security/limits.d/20-nproc.conf文件,
[es@localhost root]# su root
[root@localhost ~]# vi /etc/security/limits.d/20-nproc.conf
修改内容如下:
* soft nproc 4096
* hard nproc 4096
root soft nproc unlimited
memory locking requested for elasticsearch process but memory is not locked
修改/etc/security/limits.conf文件,
[es@localhost root]# su root
[root@localhost ~]# vi /etc/security/limits.conf
在文件末尾添加如下:
* hard memlock unlimited
* soft memlock unlimited
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
/etc/sysctl.conf文件末尾添加 vm.max_map_count = 262144
[es@localhost root]# su root
[root@localhost ~]# vi /etc/sysctl.conf
# 立即生效
[root@localhost ~]# sudo sysctl -p /etc/sysctl.conf
修改内容如下:
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
vm.max_map_count = 262144
the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
修改 elasticsearch.yml,取消注释保留一个节点
cluster.initial_master_nodes: ["node-1"]
这个设置,这里的node-1是上面一个默认的记得打开就可以了
重启ES