ELK速查表入门到精通,这份后端学习路线请收好

2026-08-05 来源: 点击量

这是一份为您整理的 ELK (Elastic Stack) 速查表,涵盖了核心组件、生产架构、常用查询语法及性能优化等关键信息,方便您快速查阅。

ELK速查表入门到精通,这份后端学习路线请收好


一、核心组件速查

表格

下载为表格

导出为图片

组件核心作用生产环境关键点

Elasticsearch分布式存储与搜索引擎集群部署、合理设置分片与副本、JVM内存优化

Logstash日志处理与清洗管道仅做数据处理,不直接采集日志,避免资源浪费

Kibana可视化与查询界面配置权限控制、创建监控面板、设置告警规则

Filebeat轻量级日志采集器部署在应用服务器,资源占用极低,是生产环境首选

二、生产架构速查

标准数据流:Java应用 → Filebeat (采集) → Logstash (清洗) → Elasticsearch (存储) → Kibana (展示)

小型/测试环境:单节点部署所有组件,架构为 Java服务 → Filebeat → ES → Kibana。

生产高可用架构:

Filebeat: 每台应用服务器以 Sidecar 模式部署。

Logstash: 部署 2-3 个节点,组成集群处理日志。

Elasticsearch: 至少 3 个节点,分离主节点与数据节点。

Kibana: 部署 2 个节点,前置负载均衡器。

 三、KQL 查询语法速查

KQL (Kibana Query Language) 是 Kibana Discover 页面的默认查询语言,语法简洁高效。

表格

下载为表格

导出为图片

查询需求KQL 语法示例说明

精确匹配status: 200查询字段 status 值为 200 的文档

模糊搜索message: "error timeout"在 message 字段中搜索包含 "error timeout" 的文档

多条件 ANDstatus: 500 and service: "order"同时满足两个条件

多条件 ORstatus: 404 or status: 502满足任一条件

排除条件 NOTnot status: 200排除 status 为 200 的文档

通配符user.name: admin*匹配 user.name 以 "admin" 开头的文档

嵌套字段user.name.keyword: "john_doe"对 keyword 类型字段进行精确匹配

 四、性能优化速查

字段类型选择

text: 用于全文检索,会被分词。适用于日志内容 (message)。

keyword: 用于精确匹配、聚合和排序,不分词。适用于状态码、IP、用户名、TraceID 等。

索引生命周期管理 (ILM)

为日志索引配置 ILM 策略,自动执行 滚动 (Rollover)、收缩 (Shrink)、删除 (Delete) 操作,避免磁盘爆满。

写入优化

使用 Bulk API 批量写入,避免单条写入。

在 Logstash 中合理配置 pipeline.workers 和 pipeline.batch.size,根据 CPU 和内存调整。

查询优化

查询时指定 时间范围,避免全索引扫描。

优先使用 keyword 字段进行过滤和聚合,避免对 text 字段进行聚合。

避免使用高开销的查询,如 wildcard 或 regexp,除非必要。

五、常见问题排查速查

表格

下载为表格

导出为图片

问题现象可能原因排查方向

日志丢失1. Filebeat 采集端问题

2. Logstash 处理瓶颈

3. ES 写入拒绝1. 检查 Filebeat 日志和注册文件

2. 检查 Logstash 队列是否堆积

3. 检查 ES 集群状态和磁盘水位

查询很慢1. 查询范围过大

2. 对 text 字段聚合

3. 分片过多/过少1. 缩小时间范围

2. 改用 keyword 字段

3. 检查分片策略,考虑 Reindex

CPU/内存高1. 查询过于复杂

2. 写入压力过大

3. JVM 配置不合理1. 优化查询语句

2. 检查并调整 Logstash 批处理参数

3. 确保 ES JVM 堆内存不超过物理内存 50%

磁盘爆满1. 未配置 ILM

2. 日志量突增1. 立即配置或删除旧索引

2. 分析日志来源,考虑采样或过滤

相关文章
  • Tornado避坑指南:资深后端的血泪经验
    Tornado避坑指南:资深后端的血泪经验

    Tornado 是一个用 Python 编写的开源 Web 框架和异步网络库,最初由 FriendFeed 公司开发,后被 Facebook 收购并开源。与 Flask 或 Django 等传统的 WSGI 框架不同,Tornado 是一个独立的 Web 服务器,专为高性能、高并发场景而设计。核心特点与优势异步非阻塞 I/O:基于事件驱动的...

  • 【推荐】CodeIgniter精选最佳实践,大厂都在用
    【推荐】CodeIgniter精选最佳实践,大厂都在用

    CodeIgniter 是一款基于 PHP 的开源 Web 应用开发框架。它以轻量级和高性能著称,非常适合中小型项目的快速开发以及遗留系统的重构。为你梳理了 CodeIgniter 的核心精选内容,涵盖架构、优势及学习资源:核心架构与特点MVC 设计模式:采用模型(Model)-视图(View)-控制器(C...

  • 为什么Go安全方案这么重要?深度剖析底层原理
    为什么Go安全方案这么重要?深度剖析底层原理

    构建一套完善的 Go 安全方案,核心在于理解 Go 的安全是“两层防线”:第一层是语言自带的“兜底层”(如 GC 内存管理、强类型系统),第二层则是开发者必须亲自守卫的“业务层”(如输入验证、权限校验)。结合当前的行业最佳实践,为你梳理了一套从编码到部署的...

  • 【硬核】SQLAlchemy,从原理到落地全解析
    【硬核】SQLAlchemy,从原理到落地全解析

    SQLAlchemy 是 Python 生态中最流行、功能最强大的数据库工具包和对象关系映射(ORM)框架。它就像一座桥梁,让你可以用 Python 的面向对象思维来操作数据库,而无需编写大量复杂的原生 SQL 语句。它的核心优势在于双模式架构,既提供了面向对象的 ORM 层,也保留了灵活...

  • 后端数据校验入门到精通,这份后端学习路线请收好
    后端数据校验入门到精通,这份后端学习路线请收好

    在 Joomla 的开发与日常运营中,“Generator”(生成器)通常指代两类工具:一类是帮助开发者快速搭建组件、模块等扩展骨架的代码生成工具,另一类是面向网站管理员的内容或功能生成扩展。结合你之前的优化需求,以下为你梳理了 Joomla 生态中几款主流的 Generator 工...

  • Istio终极指南:2026后端开发实战
    Istio终极指南:2026后端开发实战

    Istio 是一个开源的服务网格(Service Mesh),它透明地分层到现有的分布式应用程序上,为微服务架构提供统一、高效的安全、连接和监控能力。简单来说,Istio 就像是为你的微服务集群安装了一个“智能交通系统”,它能在不修改应用代码的情况下,接管服务之间的所...