五、Elasticsearch在Linux的安装部署
文章目录
- 五、Elasticsearch在Linux的安装部署
-
- 1.Elasticsearch的作用
- 2.安装
-
- [0. 安装前准备](#0. 安装前准备)
- 1.使用包管理器安装(推荐,自动服务化)
-
- [Ubuntu / Debian](#Ubuntu / Debian)
- [RHEL / CentOS / Rocky / Alma](#RHEL / CentOS / Rocky / Alma)
- [2. 使用 tar.gz 安装(灵活可控)](#2. 使用 tar.gz 安装(灵活可控))
- [3.Docker 安装(最快)](#3.Docker 安装(最快))
- [4. 配置文件(重要)](#4. 配置文件(重要))
- 5.验证安装
- [6.常见问题 & 解决](#6.常见问题 & 解决)
- 7.Kibana(可选)
- 3.快速一次性安装(finalshell中直接复制)
1.Elasticsearch的作用
Elasticsearch 是一个 分布式搜索与分析引擎 ,底层基于 Lucene 。它的核心价值是能在海量数据中进行高效、复杂的搜索与实时分析。
主要特点:
- 全文搜索:支持自然语言全文检索、模糊匹配、短语搜索、高亮等
- 结构化搜索:对结构化字段(数值、日期、地理位置等)快速过滤与排序
- 实时分析:能在秒级时间内统计、聚合和可视化数据
- 分布式:可以水平扩展到多个节点,存储和处理 PB 级数据
- 多类型数据:支持文本、数字、时间、地理位置、JSON 文档等
2.安装
0. 安装前准备
- Java 环境:8.x 自带内置 JDK(不需要单独安装)
- 内存:建议 4GB 以上(默认 JVM 占 1GB)
- 用户权限 :不要用 root 直接运行 ES(会被拒绝),建议创建
elasticsearch
用户 - 网络端口 :
- 9200:HTTP API
- 9300:集群节点间通信
- 文件描述符:至少 65535,否则可能报错
1.使用包管理器安装(推荐,自动服务化)
Ubuntu / Debian
# 1. 导入签名
sudo apt update
sudo apt -y install apt-transport-https curl gnupg
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
# 2. 添加仓库
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" \
| sudo tee /etc/apt/sources.list.d/elasticsearch-8.x.list
# 3. 安装
sudo apt update
sudo apt install -y elasticsearch
# 4. 开机自启 + 启动
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
RHEL / CentOS / Rocky / Alma
# 1. 导入签名
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
# 2. 添加 yum 仓库
sudo tee /etc/yum.repos.d/elasticsearch.repo >/dev/null <<'EOF'
[elasticsearch-8.x]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
# 3. 安装
sudo dnf install -y elasticsearch || sudo yum install -y elasticsearch
# 4. 开机自启 + 启动
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
2. 使用 tar.gz 安装(灵活可控)
# 1. 下载(以 8.14.1 为例)
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.14.1-linux-x86_64.tar.gz
# 2. 解压
tar -xzf elasticsearch-8.14.1-linux-x86_64.tar.gz
mv elasticsearch-8.14.1 /opt/elasticsearch
# 3. 创建运行用户
sudo useradd -r -s /bin/false elasticsearch
sudo chown -R elasticsearch:elasticsearch /opt/elasticsearch
# 4. 切换用户运行
sudo -u elasticsearch /opt/elasticsearch/bin/elasticsearch
首次运行会在控制台输出:
- 生成的 elastic 用户密码
- CA 证书
- HTTP 证书位置
3.Docker 安装(最快)
docker network create elastic
docker run -d --name es01 --net elastic \
-p 9200:9200 -p 9300:9300 \
-e ELASTIC_PASSWORD=StrongPass123 \
docker.elastic.co/elasticsearch/elasticsearch:8.14.1
访问 http://localhost:9200
,使用 elastic / StrongPass123
登录。
4. 配置文件(重要)
配置文件位置:
- 包管理器安装:
/etc/elasticsearch/elasticsearch.yml
- tar 包安装:
config/elasticsearch.yml
常用配置:
cluster.name: my-cluster
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
# 生产环境必须至少两个节点才能关闭 bootstrap 检查
discovery.type: single-node
修改后重启:
sudo systemctl restart elasticsearch
5.验证安装
curl -k -u elastic:<密码> https://localhost:9200
输出中应包含:
{
"name" : "node-1",
"cluster_name" : "my-cluster",
"cluster_uuid" : "...",
"version" : {
"number" : "8.14.1",
...
},
"tagline" : "You Know, for Search"
}
6.常见问题 & 解决
-
max virtual memory areas vm.max_map_count [65530] is too low
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
2.root 用户运行报错
- 切换到非 root 用户:
sudo -u elasticsearch ...
- 无法远程访问
-
network.host: 0.0.0.0
-
开放 9200 端口:
sudo ufw allow 9200/tcp # Ubuntu
sudo firewall-cmd --permanent --add-port=9200/tcp && sudo firewall-cmd --reload # RHEL
-
忘记密码
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
7.Kibana(可选)
Elasticsearch 可配套 Kibana 使用:
# Ubuntu
sudo apt install -y kibana
sudo systemctl enable kibana
sudo systemctl start kibana
# RHEL
sudo dnf install -y kibana || sudo yum install -y kibana
sudo systemctl enable kibana
sudo systemctl start kibana
访问 http://<服务器IP>:5601
3.快速一次性安装(finalshell中直接复制)
1. 导入 GPG 公钥
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
2. 添加 Elasticsearch 官方 YUM 仓库
sudo tee /etc/yum.repos.d/elasticsearch.repo >/dev/null <<'EOF'
[elasticsearch-8.x]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
3. 安装 Elasticsearch
sudo yum install -y elasticsearch
4. 修改配置文件(允许远程访问)
sudo sed -i '/^#\?network.host/d' /etc/elasticsearch/elasticsearch.yml
sudo tee -a /etc/elasticsearch/elasticsearch.yml >/dev/null <<'EOF'
cluster.name: my-es-cluster
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node
EOF
5. 系统参数优化(必须,不然会报错)
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
6. 启动并设置开机自启
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
7. 防火墙放行 9200 端口(如果开启了防火墙)
sudo firewall-cmd --permanent --add-port=9200/tcp
sudo firewall-cmd --reload
8. 等待启动(第一次可能 30 秒以上),查看状态
sudo systemctl status elasticsearch