跳到主要内容

第2章 Elasticsearch安装

2.1 系统要求

安装 Elasticsearch 前请确认系统满足以下要求:

硬件要求

  • 内存:最低 2GB RAM,推荐 4GB 以上
  • 磁盘:至少 1GB 可用空间
  • CPU:64位处理器

操作系统支持

  • CentOS/RHEL 7.x, 8.x
  • Ubuntu 18.04+
  • 其他基于 systemd 的 Linux 发行版
💡 JDK 说明

Elasticsearch 7.0+ 版本已内置 OpenJDK,无需额外安装 Java 环境。


2.2 环境准备

系统安全配置

防火墙配置(测试环境可临时关闭)

# 检查防火墙状态
iptables -nL

# 清理防火墙规则(测试环境)
iptables -F && iptables -X && iptables -Z

SELinux 配置

# 临时关闭 SELinux
setenforce 0

# 检查状态
getenforce

# 永久关闭(编辑配置文件,需重启)
vim /etc/selinux/config
# 修改为:SELINUX=disabled

系统性能优化

# 关闭 swap 分区提高性能
swapoff -a

# 检查内存和磁盘空间
free -h
df -h
🚨 生产环境安全建议

生产环境中请务必注意:

  • 🔒 防火墙配置:只允许 9200、9300 端口访问
  • 🛡️ SELinux 设置:使用 permissive 模式而非完全关闭
  • 👤 用户权限:创建专用的 elasticsearch 运行用户
  • 🌐 网络访问:避免使用 0.0.0.0,限制访问 IP 范围

2.3 软件安装

下载 Elasticsearch

# 创建软件目录
mkdir -p /data/soft && cd /data/soft

# 下载 Elasticsearch 7.9.1
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.1-x86_64.rpm

# 验证下载
ls -lh elasticsearch-7.9.1-x86_64.rpm

安装软件包

# 安装 Elasticsearch
rpm -ivh elasticsearch-7.9.1-x86_64.rpm

安装完成后的重要目录:

路径用途
/etc/elasticsearch/配置文件目录
/usr/share/elasticsearch/程序文件目录
/var/lib/elasticsearch/数据存储目录
/var/log/elasticsearch/日志文件目录

2.4 基础配置

服务启动

# 重新加载 systemd 配置
systemctl daemon-reload

# 设置开机自启
systemctl enable elasticsearch.service

# 启动服务
systemctl start elasticsearch.service

验证安装

检查服务状态

# 查看服务状态
systemctl status elasticsearch.service

# 检查端口监听
netstat -lntup | grep 9200

功能测试

# 基础连通性测试
curl 127.0.0.1:9200

# 检查集群健康状态
curl 127.0.0.1:9200/_cluster/health?pretty

期望看到类似以下响应:

{
"name" : "node-1",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "7.9.1"
},
"tagline" : "You Know, for Search"
}

2.5 自定义配置

配置文件说明

Elasticsearch 的主要配置文件:

  • elasticsearch.yml - 核心配置文件
  • jvm.options - JVM 内存配置
  • elasticsearch.service - systemd 服务配置

修改配置

⚠️ 配置前必备操作

修改配置前务必备份原文件!

cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.backup

配置错误可能导致服务无法启动,备份文件可快速恢复。

基本配置示例

# 编辑配置文件
vim /etc/elasticsearch/elasticsearch.yml

# 基本配置
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

重启服务应用配置

systemctl restart elasticsearch.service
systemctl status elasticsearch.service
💡 配置提示
  • network.host: 0.0.0.0 允许外部访问
  • discovery.type: single-node 适用于单节点部署
  • 修改配置后需要重启服务才能生效

2.6 管理工具安装

Kibana 安装配置

Kibana 是 Elasticsearch 的可视化管理工具:

# 下载并安装 Kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.9.1-x86_64.rpm
rpm -ivh kibana-7.9.1-x86_64.rpm

# 配置 Kibana
vim /etc/kibana/kibana.yml

Kibana 基本配置:

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

启动 Kibana:

systemctl start kibana
systemctl enable kibana

访问 Kibana 界面:http://服务器IP:5601

1722936440337-2d1cd08c-9abe-4557-8ea1-0aac063196a6.png

image-20201218082958011.png

elasticsearch-head 插件

elasticsearch-head 是集群管理的第三方工具。

💡 推荐安装方式

首选方案:Chrome 浏览器插件(最简单)

手动安装插件步骤

  1. 打开Chrome浏览器 → 更多工具 → 扩展程序
  2. 开启"开发者模式"
  3. 选择"加载已解压的扩展程序"
  4. 选择elasticsearch-head插件目录

image-20220210113638084.png

image-20220210113735763.png

image-20220210113804036.png

image-20220210113828259.png

image-20201218081926078.png

备选方案:Docker 安装

docker run -p 9100:9100 mobz/elasticsearch-head:7

访问地址:http://服务器IP:9100

⚠️ 跨域访问配置

如果使用非插件方式,需要在 elasticsearch.yml 中添加:

http.cors.enabled: true
http.cors.allow-origin: "*"

注意:生产环境中应限制具体的域名而非使用通配符。


2.7 故障排除

常见问题

🚨 服务无法启动

问题现象systemctl start elasticsearch 失败

排查步骤

# 1. 查看详细错误信息
journalctl -u elasticsearch.service -f

# 2. 检查配置文件语法
elasticsearch --config-dir /etc/elasticsearch

# 3. 查看启动日志
tail -f /var/log/elasticsearch/elasticsearch.log

# 4. 检查文件权限
ls -la /var/lib/elasticsearch
ls -la /var/log/elasticsearch

常见原因:配置文件语法错误、权限不足、内存不够、端口被占用

⚠️ 端口无法访问

问题现象curl 127.0.0.1:9200 连接被拒绝

可能原因

  • 🕐 服务未完全启动(需等待 30-60 秒)
  • 🔒 防火墙阻止访问
  • ⚙️ 配置文件中 network.host 设置问题
  • 🚫 端口被其他进程占用

排查方法

# 检查服务状态
systemctl status elasticsearch.service

# 检查服务进程
ps aux | grep elasticsearch

# 检查端口监听
netstat -tlnp | grep java
ss -tlnp | grep 9200

# 查看错误日志
grep -i error /var/log/elasticsearch/elasticsearch.log
💡 调试技巧

查看实时日志

# 启动过程中的实时日志
tail -f /var/log/elasticsearch/elasticsearch.log

# 只看错误和警告
grep -E "(ERROR|WARN)" /var/log/elasticsearch/elasticsearch.log

配置验证

# 验证 YAML 语法
python -c "import yaml; yaml.safe_load(open('/etc/elasticsearch/elasticsearch.yml'))"

# 查看当前配置
curl -X GET "localhost:9200/_cluster/settings?pretty"

2.8 小结

本章完成了 Elasticsearch 的完整安装配置:

  • 系统环境准备和性能优化
  • Elasticsearch 软件下载和安装
  • 基础配置和服务启动
  • 功能验证和健康检查
  • Kibana 管理工具安装
  • 常见问题的故障排除
📖 下节预告

下一章将学习 Elasticsearch 的数据操作,包括文档的增删改查和基础搜索功能。


📝 文档更新时间:2025-01-26
🔄 版本信息:适用于 Elasticsearch 7.x 系列
🎯 适用场景:单机环境搭建,生产部署请参考后续集群章节