Elasticsearch单节点安装手册

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. 生产环境建议
  1. 集群模式:部署 3 个节点(1 主 + 2 数据)以实现高可用。

  2. 持久化存储 :挂载独立磁盘存储数据(路径:path.data​)。

  3. 安全加固

    • 配置 HTTPS 加密传输。
    • 使用角色权限控制(RBAC)。
  4. 监控告警:集成 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 单节点环境,用于学习或开发测试。生产环境请参考官方文档进行优化和安全加固。

相关推荐
舌尖上的五香2 天前
ELK格式化处理日志数据并分析
elk
爱吃龙利鱼6 天前
elk中kibana一直处于可用和降级之间且es群集状态并没有问题的解决方法
大数据·elk·elasticsearch
yuzhangfeng11 天前
【日志体系】ELK Stack与云原生日志服务
elk·云原生·云计算
小黑蛋学java18 天前
Elasticsearch 官网阅读学习笔记01
elk·学习笔记
码农不屈的一生21 天前
docker部署elk
运维·elk
MarkHD21 天前
第十八天 - ELK日志体系集成 - 自定义Logstash插件 - 练习:分布式日志分析平台
分布式·elk
小黑蛋学java21 天前
Elasticsearch 学习规划
elk
小黑蛋学java23 天前
Elasticsearch中的基本全文搜索和过滤
elk
小黑蛋学java25 天前
Elasticearch数据流向
elk