Linux搭建elasticsearch
下载ES安装包
注意:本服务器已经关闭了防火墙,请你确保你的端口9200已经打开,这里对于端口开放和防火墙关闭不做过多的阐述。
# 开放端口 firewall-cmd --add-port=6379/tcp --permanent # 关闭防火墙 systemctl stop firewalld.service #永久关闭防火墙 systemctl disable firewalld.service
选择一个版本点击去之后查看Linux系统
![]()
下载符合条件的aarch64位的安装包
然后上传到你的服务器,你可以使用SFTP上传到你的服务器,具体如何上传这里不做过多的阐述。
解压&安装
# 创建文件夹 mkdir elasticsearch-8.8.1 # 解压压缩包(不会显示解压明细) tar -xzf elasticsearch-8.8.1-linux-aarch64.tar.gz
创建es用户
ES比较特殊不能使用root用户运行,所以我们需要创建一个es的用户确保可以正常的运行改程序
# 创建es用户,密码为es(我的是本地服务器密码很简单无所谓)
sudo useradd es
sudo passwd elasticsearch
![image-20240625102826416](https://img-blog.csdnimg.cn/img_convert/5d63dced66e459b8bf3826af6ad40baa.png)
# 更新文件权限,递交给es用户
sudo chown -R es:es /elasticsearch-8.8.1/elasticsearch-8.8.1
![image-20240625103249563](https://img-blog.csdnimg.cn/img_convert/a2dc2aeb83ce99a4f2edd20ac3107de1.png)
修改配置
注意:Elasticsearch 8.x 版本已经内置了 OpenJDK,所以你不需要单独安装 Java 环境。你只需要解压 Elasticsearch 包并启动即可。
# 进入文件夹
cd elasticsearch-8.8.1
# 修改配置
vi config/elasticsearch.yml
常见的配置
节点和集群名称
node.name: node-1 cluster.name: my-cluster
网络
network.host: 0.0.0.0 http.port: 9200 # 禁用https启用http xpack.security.http.ssl.enabled: false
数据和日志目录
path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch
内存设置(注意:内存设置不在elasticsearch.yal中)
# 内存打开jvm.options设置 -Xms1g -Xmx1g
![image-20240624160852865](https://img-blog.csdnimg.cn/img_convert/31fea54fe7c78b4319e72ba0174612ec.png)
# 修改了为0.0.0.0 network.host: 0.0.0.0 # 注释掉了 http.port: 9200
修改了禁止https启用http
xpack.security.http.ssl.enabled: false
使用Esc关闭并且使用(:wq)保存并退出
设置系统文件描述符和虚拟内存区域最大数量
切换到root用户
su root
编辑limits.conf设置文件描述符最大值
vi /etc/security/limits.conf # 设置文件描述符最大数量 es soft nofile 65535 es hard nofile 65535
![image-20240625104023290](https://img-blog.csdnimg.cn/img_convert/d94a87162b700833afd34ce6fb7de13a.png)
编辑sysctl.conf文件设置虚拟内存最大值
# 编辑系统文件 sudo vi /etc/sysctl.conf # 设置虚拟内存最大值(es最小为262144) vm.max_map_count=262144
最后刷新配置文件
sudo sysctl -p
![image-20240625104521567](https://img-blog.csdnimg.cn/img_convert/68fa75f2bf1decd83edca3d93a7a8b2b.png)
验证配置是否生效
# 切换回es用户
su es
# 输入之后你应该看到65535
ulimit -n
# 输入之后你应该看到262144。
sysctl vm.max_map_count
创建ES账号和密码
因为默认es是开启安全验证的
![]()
# 你可以选择关闭,这样不用创建ES账号和密码也可以访问到ES vi config/elasticsearch.yml xpack.security.enabled: false
或者选择创建一个ES用户
# 确保你还在解压的es文件夹中(创建用户密码不得少于6位) bin/elasticsearch-users useradd es -p esroot -r superuser
如果创建错了想要删除
#直接输入用户名称即可删除 bin/elasticsearch-users userdel es
启动ES以及配置后台启动和开机启动
我们可以使用简单的方法让ES进行后台的启动
# 切换到es用户 su es # 后台启动程序 nohup ./bin/elasticsearch > elasticsearch.log 2>&1 &
然后Linux服务器本机发送命令查看是否启动成功(携带刚刚创建的账号和密码请求)
curl -u es:esroot -X GET "localhost:9200/"
![image-20240625153645947](https://img-blog.csdnimg.cn/img_convert/94e362b9c87e387badc0183d006d67dd.png)
然后使用软件请求
- 选择GET
- 输入地址和请求的端口号
- 选择认证选择
Basic auth
- 输入刚刚创建好的账号和密码
![]()
设置开机启动并且托管给systemctl
# 切换到root用户
su root
# 创建服务器单元(这样当你启动的时候需要使用elasticsearch名称)
vi /etc/systemd/system/elasticsearch.service
![image-20240625161124650](https://img-blog.csdnimg.cn/img_convert/779f6e01ba0e97d2947f0217becaf57c.png)
红框,框起来的都是需要你根据你的信息进行修改的,别的不修改不影响程序运行
[Unit]
Description=Elasticsearch
Wants=network-online.target
After=network-online.target
[Service]
Environment=ES_HOME=/elasticsearch-8.8.1/elasticsearch-8.8.1
Environment=PID_DIR=/var/run/elasticsearch
EnvironmentFile=-/etc/default/elasticsearch
WorkingDirectory=/elasticsearch-8.8.1/elasticsearch-8.8.1
User=es
Group=es
ExecStart=/elasticsearch-8.8.1/elasticsearch-8.8.1/bin/elasticsearch
StandardOutput=journal
StandardError=inherit
LimitNOFILE=65536
TimeoutStopSec=20
KillMode=process
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
理解每个配置项的作用可以帮助你更好地配置和管理Elasticsearch服务。以下是对每个配置项的解释:
- Description:
- 描述服务的简短说明,通常用于描述服务的功能或用途。
- Documentation:
- 提供服务的官方文档链接,方便查阅相关文档。
- Wants 和 After:
Wants
指定服务依赖的目标(target),在这里是network-online.target
,表示服务依赖于网络在线状态。After
指定服务应在哪些目标之后启动,确保在网络在线后才启动Elasticsearch服务。- Environment 和 EnvironmentFile:
Environment
设置环境变量,例如ES_HOME
和PID_DIR
,用于指定Elasticsearch的安装路径和PID文件存放路径。EnvironmentFile
允许从文件中加载环境变量设置,这里/etc/default/elasticsearch
是一个可能的环境变量文件路径。- WorkingDirectory:
- 指定服务的工作目录,即Elasticsearch执行命令的当前工作目录。
- User 和 Group:
User
和Group
指定运行Elasticsearch服务的用户和用户组。建议创建一个专用的elasticsearch
用户来运行服务,以增强安全性。- ExecStart:
- 指定启动Elasticsearch服务的命令路径和参数,这里是
/elasticsearch-8.8.1/elasticsearch-8.8.1/bin/elasticsearch
。- StandardOutput 和 StandardError:
StandardOutput
指定服务的标准输出日志方式,这里配置为输出到journal(Systemd的日志系统)。StandardError
指定服务的标准错误日志方式,配置为继承父进程的标准错误输出。- LimitNOFILE:
- 设置服务允许打开的最大文件描述符数量,这对于Elasticsearch来说是重要的性能调优参数之一。
- TimeoutStopSec:
- 设置停止服务的超时时间,单位是秒。在这里配置为20秒,超过这个时间后将强制终止服务进程。
- KillMode:
- 指定服务停止时如何发送信号给服务进程,这里配置为
process
,表示直接发送信号给进程。- Restart 和 RestartSec:
Restart
配置服务在发生故障时重新启动的策略,这里配置为on-failure
,即仅在发生失败时重新启动。RestartSec
配置在服务重新启动之前等待的时间间隔,这里配置为5秒。- Install:
- 指定服务的安装信息,
WantedBy=multi-user.target
表示当多用户环境启动时,需要启动这个服务。这些配置项共同作用于Systemd服务单元文件,用于定义Elasticsearch服务的运行环境。
查看ES进程,杀死进程切换系统管理启动
# 查看进程id ps -ef | grep elasticsearch # 杀死进程(不建议,但是很方便) kill -9 xxxxxx
# 刷新配置
sudo systemctl daemon-reload
# 启动es
sudo systemctl start elasticsearch
# 查看es状态
sudo systemctl status elasticsearch
# 设置开机启动
sudo systemctl enable elasticsearch
# 停止es
sudo systemctl stop elasticsearch
# 停止es开机启动
sudo systemctl disable elasticsearch
# 重启es服务
sudo systemctl restart elasticsearch
成功运行elasticsearch!!!至此已经会搭建elasticsearch了。
转载自CSDN-专业IT技术社区
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_41250229/article/details/139963071