Linux 安装 Elasticsearch 并注册服务
环境
Linux(Fedora/Centos)
Elasticsearch 7.17.3
一、下载并安装
1、去官网下载安装包
选择合适的版本,尤其是项目中要注意各种依赖的版本适配问题。下载地址如下:https://www.elastic.co/cn/downloads/elasticsearch
选择Linux X86_64
2、下载完成后,解压到本地。
命令如下:
# tar -xvzf elasticsearch-7.17.3-linux-x86_64.tar.gz -C /opt/
3、安装
(1)创建运行 ES 的用户
以 root 身份运行时会出错,需要创建一个运行账户,或者使用已有的其他账户也可以。
创建新的用户,如:
$ adduser elasticsearch
设置用户密码
$ passwd elasticsearch
授权给新建用户es文件夹的权限
$ chown -R elasticsearch /opt/elasticsearch-7.17.3
切换用户
$ su elasticsearch
(2)修改ElasticSearch配置文件
$ cd /usr/local/elasticsearch-7.17.3/config
$ vim elasticsearch.yml
# 集群名称。
cluster.name: bp-elasticsearch
# 节点名称。
node.name: node-1
# 绑定服务到指定IP
network.host: 172.28.168.187
# 提供服务的网口
http.port: 9200
# 节点主机的初始列表
discovery.seed_hosts: ["127.0.0.1"]
# 集群主节点信息
cluster.initial_master_nodes: ["node-1"]
(3) 配置JDK
如果系统没安装JDK或者JDK版本不匹配的情况下,elasticsearch 会使用自带 JDK。也可以自行配置 JDk,如下面配制为使用自带的 JDK11。进入 ES 的 bin 目录,修改 elasticsearch 文件
$ vim /usr/local/elasticsearch-7.17.3/bin/elasticsearch
#配置为指定的JDK
export JAVA_HOME=/usr/local/elasticsearch-7.17.3/jdk
export PATH=$JAVA_HOME/bin:$PATH
#添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/usr/local/elasticsearch-7.17.3/jdk/bin/java"
else
JAVA=`which java`
fi
二、相关配置
在 Linux 下启动时,可能会报一些错,根据错误提示,需要进行一些相关的配置。
1、 修改 /etc/sysctl.conf 配置
$ vim /etc/sysctl.conf
加入以下内容
vm.max_map_count=262144
保存后执行 sysctl -p 命令刷新生效
2、修改 /etc/systemd/system.conf 配置文件配置
这里需要重启系统,也可以在注册服务的配置文件中配置,配置后可忽略此项
$ vim /etc/systemd/system.conf
加入以下内容
DefaultLimitNOFILE=100000
DefaultLimitNPROC=65535
3、注册服务
创建配置文件
$ vim /usr/lib/systemd/system/elasticsearch.service
编辑以下内容:
[Unit]
Description=elasticsearch
After=network.target
[Service]
Type=forking
User=elasticsearch
ExecStart=/opt/elasticsearch-7.17.3/bin/elasticsearch -d
PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65535
# 指定此进程可以打开的最大进程数
LimitNPROC=65535
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
使用systemctl daemon-reload命令可以刷新elasticsearch.service配置信息
4、设置开机启动
$ systemctl enable elasticsearch.service
注册服务成功后,会返回类似如下的信息:
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
5、防火墙设置
# 查看防火墙状态
$ systemctl status firewalld
# 开启防火墙
$ systemctl start firewalld
# 关闭防火墙
$ systemctl stop firewalld
# 打开9200端口
$ firewall-cmd --permanent --zone=public --add-port=9200/tcp
# 重启防火墙
$ systemctl reload firewalld
6、服务相关命令
# 启动服务
$ systemctl start elasticsearch.service
# 重启服务
$ systemctl restart elasticsearch.service
# 停止服务
$ systemctl stop elasticsearch.service
# 禁止开机启动
$ systemctl disable elasticsearch.service
# 启用开机启动
$ systemctl enable elasticsearch.service