Elasticsearch 是一个开源的分布式 RESTful 搜索和分析引擎、可扩展的数据存储和向量数据库,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储您的数据,让您飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。
目录
Elasticsearch Enterprise 功能特点
- 核心搜索与数据分析
支持结构化、非结构化数据的高效搜索,提供全文检索、地理位置查询和指标分析功能。通过倒排索引技术实现快速搜索,适用于网站搜索、日志分析、实时数据监测等场景。 - 机器学习集成
最新版本引入可配置机器学习模块,支持自然语言处理(NLP)、命名实体识别(NER)和情感分析,可优化搜索结果相关性和数据洞察。 - 数据管理与安全
提供可搜索快照功能,简化数据归档和历史数据查询。内置威胁情报管理和终端保护功能,支持云环境安全监控,确保企业数据合规与隐私保护。 - 扩展性与部署
支持跨公有云、私有云、混合云及裸机部署,通过标签化资源管理和调度算法实现弹性扩容。API和CLI工具支持自动化运维操作。 - 高级搜索优化
App Search功能扩展了搜索范围,可将关键业务数据快速转化为分析洞察。Python原生连接器框架允许自定义数据库对接,适配电商、HR等垂直领域需求。
Elasticsearch 免费版和企业版区别
无论免费版还是企业版,都是同一个安装包。安装包默认包含免费许可证,提供基础功能。企业版的高级功能需要申请30天试用或购买商业许可证才能解锁
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
docker 部署Elasticsearch 9.X 高可用集群教程
在实际生产环境中,Elasticsearch 通常需要部署成多节点集群,以保证高可用性和数据冗余。通过Docker Compose,在多台机器上部署 Elasticsearch 9.x 集群,并集成Kibana。
一、环境准备
- 三台服务器(或三台虚拟机)
- Elasticsearch 9.x 镜像(官方 Bitnami 镜像)
- Kibana 9.x 镜像(官方Bitnami 镜像)
- Docker & Docker Compose 已安装
- 网络可互通
节点 IP 示例
节点 | ip |
---|---|
es01 | 192.168.18.191 |
es02 | 192.168.18.190 |
es03 | 192.168.18.197 |
二、遇到的问题与分析
在配置多节点 Elasticsearch 集群时,我们可能会遇到以下问题:
- 节点竞争 master
- 日志示例:
master not discovered or elected yet, an election requires 2 nodes
- 原因:initial_master_nodes 未正确配置,或者集群节点不一致。
- 远程节点 cluster.name 不匹配
- 日志示例:
remote cluster name [elasticsearch] does not match local cluster name [es-cluster]
- 原因:不同节点 cluster.name 不一致导致 handshake 失败。
- AWS S3 插件报错
- 日志示例:
failed to obtain region from default provider chain
- 原因:S3 仓库未配置 AWS 区域环境变量,如果不使用 S3 可以忽略。
三、配置说明
3.1 Elasticsearch 配置(elasticsearch.yml)
每个节点都需要挂载自己的配置文件,确保 cluster.name 一致,node.name、network.host 与节点 IP
匹配。
示例 es01 配置:
cluster:
name: es-cluster
initial_master_nodes:
- es01
- es02
- es03
node:
name: es01
network:
host: 192.168.18.191
publish_host: 192.168.18.191
bind_host: 0.0.0.0
http:
port: 9200
transport:
port: 9300
discovery:
seed_hosts:
- 192.168.18.191
- 192.168.18.190
- 192.168.18.197
initial_state_timeout: 10m
path:
data: /bitnami/elasticsearch/data
xpack:
security:
enabled: false
注意:
es02/es03 分别修改 node.name、network.host、publish_host对应自己的 IP
确保 cluster.name 所有节点一致
3.2 Docker Compose 配置
推荐直接挂载 elasticsearch.yml,避免 environment 配置混乱。示例三节点配置:
(跨节点的就把docker-compose.yml的对应模块移动到对应节点中去)
version: "3.8"
services:
es01:
image: bitnami/elasticsearch:9.1.2
container_name: es01
network_mode: "host"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65535
hard: 65535
volumes:
- ./es01/elasticsearch.yml:/opt/bitnami/elasticsearch/config/elasticsearch.yml:ro
- ./es01/data:/bitnami/elasticsearch/data
- ./es01/logs:/bitnami/elasticsearch/logs
restart: unless-stopped
es02:
image: bitnami/elasticsearch:9.1.2
container_name: es02
network_mode: "host"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65535
hard: 65535
volumes:
- ./es02/elasticsearch.yml:/opt/bitnami/elasticsearch/config/elasticsearch.yml:ro
- ./es02/data:/bitnami/elasticsearch/data
- ./es02/logs:/bitnami/elasticsearch/logs
restart: unless-stopped
es03:
image: bitnami/elasticsearch:9.1.2
container_name: es03
network_mode: "host"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65535
hard: 65535
volumes:
- ./es03/elasticsearch.yml:/opt/bitnami/elasticsearch/config/elasticsearch.yml:ro
- ./es03/data:/bitnami/elasticsearch/data
- ./es03/logs:/bitnami/elasticsearch/logs
restart: unless-stopped
kibana:
image: docker.io/bitnami/kibana:9.1.2
container_name: kibana
network_mode: "host"
environment:
ELASTICSEARCH_HOSTS: "http://192.168.18.191:9200"
volumes:
- ./kibana/data:/bitnami/kibana
restart: unless-stopped
四、部署步骤
- 清理旧数据(避免旧状态冲突):
rm -rf ./es01/data/* ./es02/data/* ./es03/data/*
- 挂载配置
将 elasticsearch.yml 挂载到各节点对应目录。 - 启动容器
docker-compose up -d
推荐同时启动三节点,避免 master 节点选举失败。
五、验证集群状态
5.1 查看节点
curl -s http://192.168.18.191:9200/_cat/nodes?v
输出示例:
ip heap.percent ram.percent cpu load_1m node.role master name
192.168.18.191 10 70 2 0.01 cdhm * es01
192.168.18.190 12 72 3 0.02 cdhm es02
192.168.18.197 11 68 2 0.01 cdhm es03
5.2 查看 Master 节点
curl -s http://192.168.18.191:9200/_cat/master?v
输出示例:
id host ip node
xb0AMQlLT2Cco6E_iLpuzA 192.168.18.191 192.168.18.191 es01
总结
- Elasticsearch 多节点集群部署关键点:
- cluster.name 一致
- initial_master_nodes 包含所有 master-eligible 节点
- seed_hosts 配置所有节点 IP
- 建议直接挂载 elasticsearch.yml,避免 environment 配置冲突。
- 启动前清理旧数据,确保集群状态干净。
- 使用 _cat/nodes 和 _cat/master 验证集群健康状态。
版本更新
9.1 / 8.19
- 更优的二进制量化(BBQ):该功能现在在 9.1 版本中默认启用,其性能是 OpenSearch 的 5 倍。BBQ 可将内存占用减少超过 95%,是目前效率最高的量化方法。
- ACORN:一种用于过滤向量搜索的新算法,将过滤逻辑直接集成到 HNSW 图遍历中,并支持在文档摄取后再定义过滤字段。该功能可提供高达 5 倍的过滤搜索速度提升,同时保持准确性,开箱即用(仅限 9.1 版本)。
- 稀疏向量的 Token Pruning(令牌裁剪) 功能现已全面可用,且默认启用,为使用 ELSER 的用户带来更快、更高效的语义搜索。
9.0 / 8.18
- 更好的二进制量化,现已普遍可用,比 OpenSearch 要快 5 倍。
- OpenTelemetry 的 Elastic 发行版 (EDOT) 现已正式推出,同时还提供 LLM 可观测性,可让您了解支持 GenAI 的应用程序的性能、成本、安全性和可靠性。
- Attack Discovery 和 Automatic Import 现已正式推出,拓展了 AI 驱动的安全分析。
- 对 Elasticsearch 查询语言 (ES|QL) 进行了重大改进,增加了强大的实时数据连接功能、KQL 筛选功能,并在减少内存的情况下扩展了语义搜索功能。
相关文件下载
备注:无论免费版还是企业版,都是同一个安装包。安装包默认包含免费许可证,提供基础功能。企业版的高级功能需要可以申请30天试用或购买商业许可证。
Elasticsearch Enterprise 9.0.8 (macOS, Linux, Windows)全套安装包下载
Elasticsearch Enterprise 9.1.5 (macOS, Linux, Windows)全套安装包下载
包含以下文件:
- elasticsearch-9.1.5-windows-x86 64.zip
- elasticsearch-9.1.5-linux-x86 64.tar.gz
- elasticsearch-9.1.5-linux-aarch64.tar.gz
- elasticsearch-9.1.5-darwin-x86 64.tar.gz
- elasticsearch-9.1.5-darwin-aarch64.tar.gz
- elasticsearch-9.1.5-arm64.deb
- elasticsearch-9.1.5-amd64.deb
- elasticsearch-9.1.5-x86 64.rpm
- elasticsearch-9.1.5-aarch64.rpm
夸克网盘:点此下载
百度网盘: