Elasticsearch单节点安装手册
以下是一份 Elasticsearch 单节点搭建手册,适用于 Linux 系统(如 CentOS/Ubuntu),供学习和测试环境使用。
Elasticsearch 单节点搭建手册
1. 系统要求
- 操作系统:Linux(CentOS 7+/Ubuntu 18.04+)
- 内存:至少 2GB(建议 4GB+)
- Java 版本:JDK 11 或 17(Elasticsearch 7.x/8.x 要求)
- 磁盘空间:10GB+(根据数据量调整)
2. 安装步骤
2.1 安装 Java
bash
# Ubuntu/Debian
sudo apt update
sudo apt install openjdk-11-jdk
# CentOS/RHEL
sudo yum install java-11-openjdk-devel
# 验证安装
java -version # 输出应显示 Java 11
2.2 下载并安装 Elasticsearch
bash
# 下载 Elasticsearch 8.x(最新稳定版)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.4-linux-x86_64.tar.gz
# 解压并移动到安装目录
tar -zxvf elasticsearch-8.13.4-linux-x86_64.tar.gz
sudo mv elasticsearch-8.13.4 /usr/local/elasticsearch
# 创建专用用户(Elasticsearch 不允许用 root 运行)
sudo useradd elasticsearch
sudo chown -R elasticsearch:elasticsearch /usr/local/elasticsearch
2.3 配置 Elasticsearch
bash
# 编辑配置文件
sudo vim /usr/local/elasticsearch/config/elasticsearch.yml
yaml
# 以下为关键配置项:
cluster.name: my-es-cluster # 集群名称(单节点也需配置)
node.name: node-1 # 节点名称
network.host: 0.0.0.0 # 允许外部访问(生产环境谨慎设置!)
http.port: 9200 # 服务端口
discovery.type: single-node # 单节点模式(无需发现其他节点)
2.4 调整系统参数
bash
# 修改最大虚拟内存(防止启动时报错)
sudo sysctl -w vm.max_map_count=262144
# 永久生效
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
# 修改文件句柄限制
echo "elasticsearch - nofile 65535" | sudo tee -a /etc/security/limits.conf
2.5 启动 Elasticsearch
bash
# 切换用户并启动
sudo su - elasticsearch
cd /usr/local/elasticsearch
./bin/elasticsearch # 前台启动(测试用)
# 后台启动(生产建议)
./bin/elasticsearch -d -p pid
2.6 验证安装
bash
# 检查服务状态
curl http://localhost:9200
成功响应示例:
json
{
"name" : "node-1",
"cluster_name" : "my-es-cluster",
"version" : {
"number" : "8.13.4",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "xxxxxxxx",
"build_date" : "2024-05-01",
"lucene_version" : "9.10.0"
}
}
3. 安全配置(可选)
Elasticsearch 8.x 默认启用安全功能,首次启动时会生成密码。
获取初始密码:
bash
# 查看初始密码(在日志中)
grep "Password for the elastic user" /usr/local/elasticsearch/logs/*.log
使用密码访问:
bash
curl -u elastic:你的密码 http://localhost:9200
4. 常见问题
4.1 启动时报错:内存不足
log
ERROR: [1] bootstrap checks failed. You must address the points described...
解决方案 :
修改 JVM 堆内存(默认 1GB),编辑 config/jvm.options
:
bash
-Xms1g # 最小堆内存
-Xmx1g # 最大堆内存(建议不超过物理内存的50%)
4.2 无法远程访问
检查防火墙是否放行端口:
bash
# CentOS 7+
sudo firewall-cmd --permanent --add-port=9200/tcp
sudo firewall-cmd --reload
5. 生产环境建议
-
集群模式:部署 3 个节点(1 主 + 2 数据)以实现高可用。
-
持久化存储 :挂载独立磁盘存储数据(路径:
path.data
)。 -
安全加固:
- 配置 HTTPS 加密传输。
- 使用角色权限控制(RBAC)。
-
监控告警:集成 Kibana 或 Prometheus 监控集群健康状态。
6. 卸载 Elasticsearch
bash
sudo pkill -F /usr/local/elasticsearch/pid
sudo rm -rf /usr/local/elasticsearch
sudo userdel elasticsearch
附录:Kibana 安装(可选)
用于可视化管理和数据分析:
bash
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.13.4-linux-x86_64.tar.gz
tar -zxvf kibana-8.13.4-linux-x86_64.tar.gz
sudo mv kibana-8.13.4 /usr/local/kibana
# 配置 Kibana
sudo vim /usr/local/kibana/config/kibana.yml
# 修改以下配置:
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
# 启动 Kibana
sudo /usr/local/kibana/bin/kibana --allow-root
访问 http://服务器IP:5601
进入 Kibana 界面。
通过以上步骤,你可以快速搭建一个 Elasticsearch 单节点环境,用于学习或开发测试。生产环境请参考官方文档进行优化和安全加固。