Loki 按标签存储日志流,Promtail 则发现文件并把日志行发送到该存储。本实践课程会搭建一条本地日志管道,并教你查询单条事件以及从日志推导出的数值信号。
你将运行 Loki、通过 API 将其注册到 Grafana、为系统和应用日志配置 Promtail,并使用 LogQL 探索日志流。后续练习会统计匹配日志、计算速率、按 JSON 字段分组、提取数值,并学习用标签组织日志而不把高基数值变成昂贵索引。
你将学到什么
- 下载、启动和验证 Loki,并通过 API 将其连接到 Grafana
- 配置 Promtail 文件发现、流标签、读取位置和 Loki push 端点
- 使用 Loki 范围查询 API 和 Grafana Explore 验证已传输日志
- 在 LogQL 中选择日志流并按文本或正则表达式过滤行
- 将日志转换为时间窗口内的计数和每秒速率
- 解析 JSON、按字段分组速率并提取数值进行聚合
- 添加低基数环境标签,并说明哪些内容应保留为行过滤条件
- 触发应用错误峰值并构造一分钟 LogQL 检测查询
本课程适合谁
本中级课程适合希望实践构建和查询 Loki 日志管道的 Linux 管理员、DevOps 从业者和可观测性学习者。
前置要求: 熟悉 Linux Shell、YAML、后台进程、curl、日志文件、正则表达式和基本 Grafana 操作。无需 Loki 或 LogQL 经验。
学习环境: 单台 Linux 实验主机,运行 Loki、Promtail、Grafana、logcli 和生成的日志文件。所有组件均作为本地实验进程运行,因此课程演示集中式日志概念,但不搭建多主机环境。
常见问题
我会从多台服务器收集日志吗?
不会。Promtail、Loki、Grafana 和日志源都在一台实验主机上。你会实践分布式管道中相同的发现、标签、传输、存储和查询边界,但不进行远程代理部署。
课程中的 LogQL 深度如何?
内容包括流选择器、文本和正则过滤、count_over_time、rate、JSON 解析、sum by,以及配合 avg_over_time 的 unwrap。高级解析器、二元运算、记录规则、告警和性能调优不在范围内。
错误峰值挑战会制造并检测真实事件吗?
它会触发提供的生成器向 /var/log/app.log 写入 ERROR 行,并要求把有效的一分钟计数查询保存到文件,但不会根据该查询配置告警或外部通知。





