当前位置: 首页 > news >正文

【Elasticsearch】Linux环境下安装Elasticsearch

一,前言

Elasticsearch(简称 ES)是一个基于 ​​Apache Lucene​​ 构建的开源分布式搜索与分析引擎。它支持​​实时数据处理​​,提供近实时的全文搜索能力,并通过 ​​JSON 格式的 RESTful API​​ 实现数据索引与检索。其分布式架构设计可水平扩展至数百节点,适用于​​日志分析、全文检索、大数据实时查询​​等场景,是 Elastic Stack(ELK)生态的核心组件。

二,环境准备

  • 操作系统:Centos7
  • Java 版本:java 1.8
  • Elasticsearch 版本:7.10.2

注意:如果Elasticsearch为8.x的版本,需要jdk17及以上版本

三,优化服务器参数

Elasticsearch对服务器的一些参数有限制,需要调节参数适配es

1,修改limits.conf文件

vim /etc/security/limits.conf# 在文件底部添加如下配置
* soft nofile 65536 
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

2,调整vm.max_map_count参数

执行如下命令

# 设置参数值至少为 262144
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p# 查看参数值
sysctl vm.max_map_count
# 预期输出:vm.max_map_count = 262144

四,安装Elasticsearch

1,创建es安装目录

mkdir -p /elk/elastic
cd /elk/elastic

2,下载Elasticsearch安装包并解压

方式1:本地下载再上传服务器

下载地址:Elasticsearch 7.10.2 | Elastic

方式2:使用wget命令下载

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz

解压安装包

tar -zxvf elasticsearch-7.10.2-linux-x86_64.tar.gz 

3,修改jvm内存

Elasticsearch7.X版本默认的堆内存大小是1G,8.X版本默认的堆内存大小是4G,如果服务器内存不够启动会报错,可以将堆内存设置小一点

vim /efk/elastic/elasticsearch-7.10.2/config/jvm.options# 根据服务器的内存来设置,如果服务器内存小可以将值调小一点
-Xms512m
-Xmx521m

4,创建es的用户

// 创建用户组
groupadd esgroup// 在esgroup用户组下创建es用户
useradd es -g esgroup// 赋权限
chown -R es:esgroup /efk/elastic/elasticsearch-7.10.2

5,修改es配置文件

vim /efk/elastic/elasticsearch-7.10.2/config/elasticsearch.yml内容如下:
# 集群名称
cluster.name: my-es-cluster
# 节点名称
node.name: node-1
# 运行远程访问
network.host: 0.0.0.0
http.port: 9200
# 单节点模式
discovery.type: single-node  # 跨域配置
http.cors.enabled: true  
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: X-Requested-With, Content-Type, Content-Length

6,启动es

注意:如果安装的es版本为8.x,es会默认开启安全安全配置,第一次启动es时会自动生成如下的配置代码,如果需要访问es可以关闭安全认证后再访问

xpack.security.enabled: true  #  true表示开启安全认证,开启时访问es需要数据账号密码xpack.security.enrollment.enabled: true
xpack.security.http.ssl:enabled: false # 是否启用https,默认启用,手动关闭,如果为true,服务es需要使用 httpskeystore.path: certs/elastic-certificates.p12truststore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl:enabled: trueverification_mode: certificatekeystore.path: certs/elastic-certificates.p12truststore.path: certs/elastic-certificates.p12
后台启动es
sudo -u es bin/elasticsearch -d

浏览器访问ip+端口(9200)结果如下表示安装成功

7,将es配置到systemd中

创建 elasticsearch.service 文件

// 创建service文件
vim /etc/systemd/system/elasticsearch.service内容如下:
[Unit]
Description=Elasticsearch Service
After=network.target[Service]
Type=simple
User=es         # es用户
Group=esgroup   # es用户组
LimitNOFILE=100000
LimitNPROC=100000
ExecStart=/efk/elastic/elasticsearch-8.17.0/bin/elasticsearch  # es安装路径
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
PrivateTmp=true[Install]
WantedBy=multi-user.target

刷新配置

systemctl daemon-reload

基础命令 

systemctl status elasticsearch.service   # 查看状态
systemctl start elasticsearch.service    # 启动
systemctl stop elasticsearch.service     # 关闭
systemctl restart elasticsearch.service  # 重启

8,开启安全认证

开启认证前需要先删除 /data 和 /logs 下的所有数据

[root@ali-kafka-vm1 elasticsearch-7.10.2]# rm -rf ./data/*
[root@ali-kafka-vm1 elasticsearch-7.10.2]# rm -rf ./logs/*

1,编辑es配置文件

vim /efk/elastic/elasticsearch-7.10.2/config/elasticsearch.yml添加如下配置
xpack.security.enabled: true

2,重启es

systemctl restart elasticsearch.service  

3,设置用户密码

Elasticsearch7.x版本设置密码

该命令会为所有内置用户设置密码,不能跳过

./bin/elasticsearch-setup-passwords interactive

Elasticsearch8.x版本设置密码

8.x版本可以指定设置内置用户 elastic 的密码

bin/elasticsearch-reset-password --username elastic -i

4,设置密码后访问es需要输入账号密码

至此安装成功!

http://www.xdnf.cn/news/1071055.html

相关文章:

  • 论特定领域软件架构
  • 《Opto-Electronic Advances》热点论文速览(2025)
  • 汽车涂胶车间的“通信桥梁”:PROFIBUS DP转ETHERNET/IP网关的应用实践
  • word中如何保存高清图片,并保存为高质量的pdf文件(图像不失真)
  • 多张图片生成PDF每张图片生成pdf的一页
  • lxd 容器内的深度学习服务器环境配置
  • sql server 将nvarchar长度设置成max有什么隐患
  • VSCode中创建和生成动态库项目
  • 时序数据库全面解析与对比
  • TCP/IP协议简要概述
  • 小型软件开发的三重境界:从混沌编码到结构化设计
  • Stable Diffusion入门-ControlNet 深入理解 第二课:ControlNet模型揭秘与使用技巧
  • 基于残差神经网络的垃圾分类
  • Maven生命周期与阶段扩展深度解析
  • 嵌入式项目:基于QT与Hi3861的物联网智能大棚集成控制系统
  • jenkins中执行python脚本导入路径错误
  • Chrome浏览器访问https提示“您的连接不是私密连接”问题解决方案
  • 【C++特殊工具与技术】固有的不可移植的特性(3)::extern“C“
  • 力扣第455场周赛
  • MATLAB 4D作图
  • Hyperledger Fabric 入门笔记(二十)Fabric V2.5 测试网络进阶之Tape性能测试
  • OpenCV模版匹配方法的衡量指标比较
  • 修复opensuse 风滚草rabbitmq的Error: :plugins_dir_does_not_exist问题
  • 【STM32】外部中断
  • 【Linux】基础开发工具(2)
  • java枚举enum的使用示例
  • 大厂测开实习和小厂开发实习怎么选
  • Java设计模式->责任链模式的介绍
  • [AI]从0到1通过神经网络训练模型
  • python+requests接口自动化测试