跳到主要内容

参考资料

本系列的内容以 Elastic 官方文档为准,配置项和行为细节有疑问时,优先翻官网而不是搜博客。下面按「官方文档 / 运维专题 / 版本与发布 / GitHub / 工具 / 社区」分类收拢,每条附一句说明,最后附一份常见报错关键词对照表。

官方文档​

  • Elastic 官网:产品矩阵总入口,Elasticsearch、Kibana、Logstash、Beats 都在这里分流。
  • Elasticsearch 指南:唯一权威口径,本系列涉及的每个配置项都能在这里找到原始定义。
  • 快速入门:官方版「装起来跑通第一次搜索」,和本系列第 2 篇对照看。
  • 安装与引导:各平台安装包、系统参数要求、vm.max_map_count 的官方说明。
  • 集群引导与发现:discovery.seed_hosts、cluster.initial_master_nodes 的准确语义,多节点部署前必读。
  • 安全最小配置:账号、TLS、最小权限的配置步骤,生产上线前照着走一遍。
  • 监控概览:监控体系与各 stats 接口的关系,配合第 5 篇的指标表看。
  • 滚动升级:升级顺序、前置快照和回滚思路,跨大版本前必读。
  • 排障指南:官方按现象组织的排障入口,和本系列第 6 篇互为补充。

核心主题直达​

主题官方章节对应本系列
Mapping 与字段类型Mapping第 3 篇
查询 DSLQuery DSL第 3 篇
聚合Aggregations第 3 篇
索引设置与模块Index modules第 4 篇
分片分配与路由Shard allocation第 4、6 篇
快照与恢复Snapshot and restore第 4 篇
生命周期管理ILM第 5 篇
集群 APICluster APIs第 5、6 篇
cat APICAT APIs附录速查
磁盘水位Disk-based shard allocation第 5、6 篇
文本分析Analysis第 3 篇分词器部分
索引模板Index templates第 4、5 篇

API 与客户端​

  • REST API 总览:所有端点的索引页,按模块分组。
  • Search API:from/size、sort、search_after、track_total_hits 的完整参数表。
  • Bulk API:NDJSON 格式、失败重试、批量大小的官方建议。
  • Update API:局部更新、脚本更新和 detect_noop 的行为说明。
  • Reindex API:跨索引搬数据、改 Mapping 的标准工具,注意它是异步任务。
  • Multi search API:_msearch 的 NDJSON 格式与返回顺序约定。
  • 官方客户端列表:Java、Python、JavaScript、Go、.NET 等各语言客户端入口。
  • elasticsearch-py:Python 客户端文档,运维脚本最常用。
  • Kibana 指南:Dev Tools、Discover、Dashboard 的官方说明。

运维与调优专题​

官方有几篇「调优」文档质量很高,遇到性能问题先看这里,而不是搜零散博客:

  • 重要配置项:堆、文件描述符、mmap、swap 等启动前必查项,就是一份官方 checklist。
  • 搜索性能调优:文件缓存、分片数、副本数与查询并发之间的关系。
  • 写入性能调优:refresh、translog、bulk 大小、合并策略的取舍。
  • 磁盘使用调优:forcemerge、_source 裁剪、doc_values 的省空间手段。
  • 分片规划:官方对分片数量和大小的建议,第 4 篇容量估算的原始依据。
  • Data streams:时间序列数据的推荐建模方式,比手工 rollover 更省心。
  • rollover API:滚动条件、别名切换和 is_write_index 的规则。
  • 熔断器:父子熔断器的阈值和触发后的表现,理解 CircuitBreakingException 必读。
  • 线程池:write / search 队列的默认值和拒绝策略。
  • 快照仓库插件:S3 仓库的安装与权限配置,走对象存储备份时按这个来。

版本与发布​

  • Release notes:每个版本的更新明细,升级前扫一遍。
  • Breaking changes:跨大版本升级必读,配置项移除、默认值变更都在这里。
  • Elasticsearch 产品页:版本策略、订阅版本与开源版本的功能差异。
  • Elastic 博客:官方团队写的实践文章,新特性解读和性能调优案例质量不错。

版本行为对照​

项目8.x 的行为与 7.x 的差异
安全默认开启认证与 TLS7.x 默认关闭,需要手工配置
Mapping 类型只有 _doc,无多类型7.x 兼容多类型但已废弃
集群引导cluster.initial_master_nodes7.x 早期用 minimum_master_nodes
默认主分片数16.x 及更早默认 5
客户端Java 客户端重写,HLRC 废弃7.x 仍以 HLRC 为主
内存锁定推荐 bootstrap.memory_lock一致,但 8.x 镜像默认配置更严

GitHub​

工具​

  • esrally 文档:压测场景、数据集、对比报告的使用说明。
  • elasticsearch-dump:索引间导数据、导出 JSON 备份的小工具,迁移和造数据都方便。
  • Cerebro:轻量 Web 管理界面,看分片分布、执行 reroute 比命令行直观。
  • Grafana 官方文档:ES 指标出图、告警规则的配置参考。
  • Prometheus 文档:抓取配置、PromQL 与告警规则,指标接入的前置知识。

社区​

常见报错关键词​

搜报错时先拆出关键词,再拿去官网或 Discuss 搜,比整句搜命中率高得多:

报错关键词含义对应排查
read_only_allow_delete磁盘触发洪水位,索引被置为只读第 6 篇磁盘水位
es_rejected_execution_exception线程池队列满,写入被拒(429)第 6 篇 bulk 429
CircuitBreakingException熔断器触发,单次请求占用内存超限第 5 篇堆与熔断
unavailable_shards_exception主分片未分配,集群处于 red第 6 篇 red 排查
mapper_parsing_exception写入的数据类型和 Mapping 不符第 3 篇 Mapping
index_not_found_exception索引不存在或名字写错附录速查
Fielddata is disabled on text fields对 text 字段做排序或聚合第 3 篇 text 与 keyword
max virtual memory areasvm.max_map_count 太小第 2 篇系统参数
no_valid_shard_copy找不到可用的分片数据第 6 篇分片分配
version_conflict_engine_exception并发写冲突,乐观锁版本不符第 3 篇文档更新

延伸阅读​

阅读建议​

不同阶段的读者可以这样取用:

  1. 刚接手集群:先看官方「快速入门」和「集群引导」,把三色、分片、副本的概念对齐,再看本系列第 1、2 篇。
  2. 要设计索引:直接翻 Mapping 和 Aggregations 两章,重点看字段类型对照表和 fielddata 的警告,然后看第 3 篇的示例。
  3. 要上生产:把「磁盘水位」「快照恢复」「ILM」三章读完,再对照第 4、5 篇的配置清单逐项核对。
  4. 正在救火:跳过理论,直接看第 6 篇的排查路径,同时打开 allocation/explain 的官方说明对照字段含义。
  5. 要做容量规划:看官方「分片规划」和「搜索/写入调优」三篇,配合 Rally 压测数据,别拍脑袋估。
文档版本要对得上

官网默认展示 current 版本,如果你跑的是 8.15,记得把 URL 里的 current 换成 8.15,否则看到的可能是还没升级到的新参数。版本对不上是「照着文档配却报错」的头号原因。

最后提醒一句:ES 的默认值改过很多次(副本数、堆大小策略、安全开关),网上很多教程还停留在 6.x/7.x。任何配置以你实际版本的官方文档为准,尤其是 xpack.security 相关的默认行为,8.x 和 7.x 完全不是一回事。