学而实习之 不亦乐乎

Linux 安装 Elasticsearch 并注册服务

2024-02-25 20:40:55

环境
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