ELK速查表入门到精通,这份后端学习路线请收好
这是一份为您整理的 ELK (Elastic Stack) 速查表,涵盖了核心组件、生产架构、常用查询语法及性能优化等关键信息,方便您快速查阅。
一、核心组件速查
表格
下载为表格
导出为图片
组件核心作用生产环境关键点
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 是一个用 Python 编写的开源 Web 框架和异步网络库,最初由 FriendFeed 公司开发,后被 Facebook 收购并开源。与 Flask 或 Django 等传统的 WSGI 框架不同,Tornado 是一个独立的 Web 服务器,专为高性能、高并发场景而设计。核心特点与优势异步非阻塞 I/O:基于事件驱动的...
-
【推荐】CodeIgniter精选最佳实践,大厂都在用CodeIgniter 是一款基于 PHP 的开源 Web 应用开发框架。它以轻量级和高性能著称,非常适合中小型项目的快速开发以及遗留系统的重构。为你梳理了 CodeIgniter 的核心精选内容,涵盖架构、优势及学习资源:核心架构与特点MVC 设计模式:采用模型(Model)-视图(View)-控制器(C...
-
为什么Go安全方案这么重要?深度剖析底层原理构建一套完善的 Go 安全方案,核心在于理解 Go 的安全是“两层防线”:第一层是语言自带的“兜底层”(如 GC 内存管理、强类型系统),第二层则是开发者必须亲自守卫的“业务层”(如输入验证、权限校验)。结合当前的行业最佳实践,为你梳理了一套从编码到部署的...
-
【硬核】SQLAlchemy,从原理到落地全解析SQLAlchemy 是 Python 生态中最流行、功能最强大的数据库工具包和对象关系映射(ORM)框架。它就像一座桥梁,让你可以用 Python 的面向对象思维来操作数据库,而无需编写大量复杂的原生 SQL 语句。它的核心优势在于双模式架构,既提供了面向对象的 ORM 层,也保留了灵活...
-
后端数据校验入门到精通,这份后端学习路线请收好在 Joomla 的开发与日常运营中,“Generator”(生成器)通常指代两类工具:一类是帮助开发者快速搭建组件、模块等扩展骨架的代码生成工具,另一类是面向网站管理员的内容或功能生成扩展。结合你之前的优化需求,以下为你梳理了 Joomla 生态中几款主流的 Generator 工...
-
Istio终极指南:2026后端开发实战Istio 是一个开源的服务网格(Service Mesh),它透明地分层到现有的分布式应用程序上,为微服务架构提供统一、高效的安全、连接和监控能力。简单来说,Istio 就像是为你的微服务集群安装了一个“智能交通系统”,它能在不修改应用代码的情况下,接管服务之间的所...