当前位置: 首页 > 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.lqws.cn/news/547039.html

相关文章:

  • git rebase -i 详解
  • 微服务中解决高并发问题的不同方法!
  • 未来蓝图:引领能源数字化新浪潮
  • html制作一个简单的表单
  • 每天一个前端小知识 Day 14 - 前端状态管理深入实践
  • [1-01-01].第27节:常用类 - 包装类
  • 26考研|数学分析:隐函数定理及其应用
  • 官方App Store,直链下载macOS ,无需Apple ID,macOS10.10以上.
  • php flush实时输出线上环境好使,本地环境等待一段时间后一次性输出结果的原因
  • 跨芯片 AI 算子库 FlagGems 正式加入PyTorch 基金会生态项目体系
  • MyBatis中的SQL理解
  • uniappx 安卓app项目本地打包运行,腾讯地图报错:‘鉴权失败,请检查你的key‘
  • Unity性能优化-渲染模块(1)-CPU侧(1)-优化方向
  • 基于springboot的火锅店点餐系统
  • 分布式存储架构的优势
  • 河北对口计算机高考C#笔记(2026高考适用)---完结版~~~~
  • GPS不只是导航,实时定位追踪系统如何玩转智能时代?
  • 深度学习框架入门指南:PyTorch 核心实战
  • 第N5周:Pytorch文本分类入门
  • 使用GDAL库统计不同分区内的灾害点分布情况,计算灾害相对密度等统计指标
  • Spring Boot 3.2.11 Swagger版本推荐
  • Python 数据分析与可视化 Day 9 - 缺失值与异常值处理技巧
  • 从0到100:房产中介小程序开发笔记(中)
  • css去掉换行小工具 去掉css换行 style样式去掉换行
  • flink同步kafka到paimon,doris加速查询
  • 大数据赋能智能家居:打造你贴心的“数字管家”
  • 飞往大厂梦之算法提升-day09
  • ssh -T git@github.com失败后解决方案
  • Google机器学习实践指南(逻辑回归损失函数)
  • RabitQ 量化:既省内存又提性能