Elasticsearch(ES)
Elasticsearch 部署与核心特性全解
Elasticsearch(ES)部署与核心特性全指南
Elasticsearch 是分布式、高可用、近实时的开源搜索引擎,核心用于日志分析、全文检索、数据监控、业务搜索等场景,是 ELK/Elastic Stack 核心组件。
下面分 快速部署(单机/集群) 和 核心特性 两部分,用最实用、可直接落地的方式讲解。
一、Elasticsearch 部署(以 8.x 最新稳定版为例)
前置要求
- 环境:Linux/macOS/Windows,JDK 17+(ES 8.x 内置JDK,无需手动安装)
- 内存:建议至少 2GB RAM(生产环境 8GB+)
- 端口:9200(HTTP)、9300(集群通信)
方式1:单机快速部署(测试/开发)
1. 下载安装
# Linux 下载(直接复制执行)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.0-linux-x86_64.tar.gz
tar -zxvf elasticsearch-8.15.0-linux-x86_64.tar.gz
cd elasticsearch-8.15.0
2. 启动 ES
# 前台启动(测试用)
./bin/elasticsearch
# 后台启动(推荐)
./bin/elasticsearch -d
3. 首次启动关键信息(务必保存!)
ES 8.x 默认开启安全认证,启动后控制台会输出:
- 超级用户
elastic的自动生成密码 - Kibana 验证码
- 证书文件路径
4. 验证服务
# 带认证访问
curl -u elastic:你的密码 -k https://localhost:9200
返回 JSON 即部署成功:
{
"name" : "node-1",
"cluster_name" : "elasticsearch",
"version" : { ... },
"tagline" : "You Know, for Search"
}
方式2:生产环境集群部署(3节点最简方案)
核心配置(config/elasticsearch.yml)
节点1(主节点+数据节点)
cluster.name: es-cluster # 集群名称(所有节点必须一致)
node.name: node-1 # 节点唯一名称
node.master: true # 可当选主节点(管理集群)
node.data: true # 存储数据
network.host: 0.0.0.0 # 允许外部访问
http.port: 9200
discovery.seed_hosts: ["节点1IP", "节点2IP", "节点3IP"] # 集群节点列表
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
xpack.security.enabled: true # 开启安全
xpack.security.enrollment.enabled: true
节点2/3 仅修改
node.name 即可,其余配置一致。集群验证
curl -u elastic:密码 -k https://节点IP:9200/_cat/nodes?v
看到 3 个节点
* 标记主节点,即为集群正常。关键部署优化(生产必配)
-
修改内存配置(
config/jvm.options)-Xms4g -Xmx4g # 建议 = 物理内存的 50%,最大不超过 32GB -
系统参数优化
# 最大文件描述符 ulimit -n 65535 # 最大线程数 ulimit -u 4096 # 禁用虚拟内存交换 vm.swappiness=1 - 禁用自动创建索引、开启副本、配置磁盘水位线
二、Elasticsearch 核心特性(最常用、最核心)
1. 分布式架构(核心特性)
- 数据自动分片(Shard):一个索引拆分为多个分片,分散存储在不同节点
- 自动副本(Replica):分片备份,保证高可用,故障自动切换
- 水平扩展:直接加节点,集群自动负载均衡,无需停机
2. 近实时搜索
- 数据写入后 1秒内 即可搜索(近实时)
- 适合日志、监控、业务数据的实时查询
3. 高可用 & 容错
- 主分片挂掉 → 副本分片自动升为主分片
- 节点宕机 → 集群自动重新分配数据
- 无单点故障(生产必须集群部署)
4. 强大的全文检索能力
- 支持分词(中文、英文、日文等)
- 支持模糊查询、前缀查询、通配符、高亮、权重排序
- 支持短语搜索、近似搜索、聚合搜索
5. 强大的聚合分析(Aggregation)
- 统计、分组、求和、平均值、最大值、最小值
- 漏斗分析、用户行为分析、日志报表、数据可视化
- 是日志分析/BI 场景的核心能力
6. RESTful API 友好
- 全部操作通过 HTTP + JSON 完成
- 增删改查、集群管理、索引管理、数据备份
- 无复杂客户端,所有语言都能轻松对接
7. 多类型数据支持
- 结构化数据(MySQL 数据)
- 非结构化数据(文章、日志、PDF)
- 地理空间数据(地理位置检索、附近的人)
- 时间序列数据(监控指标、日志时序分析)
8. 生态完善(Elastic Stack)
- Logstash:数据采集、清洗
- Kibana:可视化、报表、控制台
- Beats:轻量日志采集(Filebeat/Metricbeat)
- 企业级安全、监控、告警
三、ES 常用基础操作(快速上手)
# 查看集群健康状态
GET /_cluster/health
# 创建索引
PUT /my_index
# 写入数据
POST /my_index/_doc/1
{ "title": "ES部署教程", "content": "分布式搜索引擎" }
# 全文检索
GET /my_index/_search
{
"query": { "match": { "title": "ES" } }
}
# 聚合统计
GET /my_index/_search
{
"aggs": { "group_by_title": { "terms": { "field": "title.keyword" } } }
}
总结
- 部署:单机一键启动,生产用 3 节点集群,开启安全认证+内存优化
- 核心能力:分布式、高可用、近实时、全文检索、聚合分析、REST API
- 场景:日志分析、业务搜索、数据监控、BI 报表、地理检索
浙公网安备 33010602011771号