【Elasticsearch】Linux环境下安装Elasticsearch

发布于:2025-06-29 ⋅ 阅读:(16) ⋅ 点赞:(0)

一,前言

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需要使用 https
  keystore.path: certs/elastic-certificates.p12
  truststore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/elastic-certificates.p12
  truststore.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需要输入账号密码

至此安装成功!


网站公告

今日签到

点亮在社区的每一天
去签到