【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需要输入账号密码
至此安装成功!