linux之elasticsearch环境安装与配置
## 1. elasticsearch 7.14 安装
进入 elasticsearch官网 下载,目前官网最新版本是 7.14.1 (2021/9/2 发布),如果使用其他版本,就去 历史版本 找自己所需的版本,目前小编就安装官方最新版 7.14.1
下载好后,上传到 linux 系统上
# 来到 /usr/local/ 下,解压
[root@hua local]# tar -zxvf elasticsearch-7.14.1-linux-x86_64.tar.gz
# 重命名 个人习惯
[root@hua local]# mv elasticsearch-7.14.1 elasticsearch
# 进入到 elasticsearch 的 config 里
[root@hua local]# cd elasticsearch/config
编辑 jvm.options 文件
# 修改 jvm.options,elasticsearch 基于 lucene,lucene 底层是 java 实现
[root@hua config]# vim jvm.options
修改如下
-Xms512m
-Xmx512m
编辑 elasticsearch.yml 文件
# 编辑 elasticsearch.yml 文件
[root@hua config]# vim elasticsearch.yml
修改如下
属性名 | 说明 |
---|---|
cluster.name | 配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称。 |
node.name | 节点名,es会默认随机指定一个名字,建议指定一个有意义的名称,方便管理 |
path.conf | 设置配置文件的存储路径,tar或zip包安装默认在es根目录下的config文件夹,rpm安装默认在/etc/ elasticsearch |
path.data | 设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开 |
path.logs | 设置日志文件的存储路径,默认是es根目录下的logs文件夹 |
path.plugins | 设置插件的存放路径,默认是es根目录下的plugins文件夹 |
bootstrap.memory_lock | 设置为true可以锁住ES使用的内存,避免内存进行swap |
network.host | 设置bind_host和publish_host,设置为0.0.0.0允许外网访问 |
http.port | 设置对外服务的http端口,默认为9200。 |
transport.tcp.port | 集群结点之间通信端口 |
discovery.zen.ping.timeout | 设置ES自动发现节点连接超时的时间,默认为3秒,如果网络延迟高可设置大些 |
discovery.zen.minimum_master_nodes | 主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这里要设置为2 |
修改 etc/security/limits.conf 文件
# 在文件最后添加上,注意加上 * 号,有就不要添加
* soft nofile 65536
* hard nofile 65536
修改 /etc/sysctl.conf 文件
# 在文件最后一行加上
vm.max_map_count=655360
# 保存后,输入以下命令
[root@hua config]# sysctl -p
添加用户,elasticsearch 不能直接使用 root 开启服务,所以添加一个新的用户,见名知意用户名 es / esuser 等
# 添加用户
[root@hua config]# useradd es
# 将 elasticsearch 文件都设置成 es 下
[root@hua config]# chgrp -R es /usr/local/elasticsearch
[root@hua config]# chown -R es /usr/local/elasticsearch
# 设置 elasticsearch 文件权限
[root@hua config]# chmod 777 /usr/local/elasticsearch
启动 elasticsearch 服务
# 先切换 es 用户
[root@hua config]# su es
# 当前在 config 下,先出去
[es@hua config]# cd ..
# 查看 bin 文件夹,启动服务,关掉页面就断掉连接
[es@hua config]# ./bin/elasticsearch
# 后台运行 elastivsearch 服务
[es@hua config]# ./bin/elasticsearch -d
# 后台服务关闭,查看端口占用线程、
# 查看当前所有端口情况
[es@hua config]# sudo netstat -antup
# 查询 elasticsearch 的 PID
[es@hua config]# ps -ef | grep elasticsearch
es 1570 1 1 16:51 pts/0 00:00:59 /usr/local/java/jdk1.8.0_291/bin/java
# 查看当前 PID 对应的端口开放情况
[es@hua config]# sudo netstat -antup | grep PID
# 第一个显示的就是 PID 也就是 1570, 将其杀死
[es@hua config]# kill -9 1570
页面效果 (端口 :9200)
无响应
# 可能是防火墙拦截问题
# 查看防火墙状态,以下表示运行中,以下二选一
[es@hua config]# firewall-cmd --state
running
# 解决方案
# 1. 永久开放掉 9200 端口,前提防火墙是开启状态
[es@hua config]# firewall-cmd --add-port=9200/tcp --permanent
# 刷新防火墙的配置
[es@hua config]# firewall-cmd --reload
# 2. 直接关掉防火墙
[es@hua config]# systemctl stop firewalld.service
# 关闭防火墙开机自启
[es@hua config]# systemctl disable firewalld.service
从入门到崩溃