Elasticsearch 是一个开源的搜索和分析引擎,用于实时搜索、分析和存储大量数据。在部署 Elasticsearch 集群时,需要考虑硬件、网络、安全性等多个方面。以下是一个简单的 Elasticsearch 集群部署指南:
硬件需求
- 节点数量:一个最小的生产环境至少需要 3 个节点:1 个主节点和 2 个数据节点。
- CPU:建议每个节点至少有 2 个物理 CPU 核心。
- 内存:每个节点建议至少 8GB RAM。
- 存储:SSD 存储更适合高性能的工作负载。
系统配置
- 安装 Java 8 或更高版本。
- 配置
vm.max_map_count
,增加虚拟内存映射区域大小。sudo sysctl -w vm.max_map_count=262144
Elasticsearch 配置
-
下载并安装
下载 elasticsearch-7.x.x-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.x.x-linux-x86_64.tar.gz
-
配置节点
在
elasticsearch.yml
文件中设置节点名称、集群名称、网络接口等。cluster.name: my-cluster
node.name: node-1
network.host: 0.0.0.0
-
启动服务
./bin/elasticsearch
集群配置
-
添加更多节点
复制配置文件到其他节点,并修改
node.name
和http.port
。 -
集群设置
在每个节点的
elasticsearch.yml
文件中添加:
node.master: false
node.data: true
discovery.seed_hosts: ["node1-ip", "node2-ip"]
cluster.initial_master_nodes: ["node-1", "node-2"]
node.data: true
discovery.seed_hosts: ["node1-ip", "node2-ip"]
cluster.initial_master_nodes: ["node-1", "node-2"]
单点部署:
集群部署: 101,102,103三台服务器部署配置{node.name: elk101, elk102, elk103}
保证集群环境干净(3台): rm -rf /var/{lib,log}/elasticsearch/*
同时启动: systemctl start elasticsearch
log: tail -100f /var/log/elasticsearch/oldboyedu-elk.log
查看是否存在节点正常: curl ip:9200/_cat/nodes