
## ✨ 摘要
高效监控 Kubernetes 环境,仅将 Grafana Loki 中的唯一错误日志发送到 Slack。减少告警疲劳,同时确保团队了解关键日志事件。
## 👨💻 适用人群
– 运行 EKS/GKE/AKS 的 DevOps 或 SRE 工程师
– 使用 Grafana Loki 和 Promtail 进行集中式日志记录的用户
– 希望获得 Slack 告警但讨厌告警垃圾邮件的团队
## 🔍 功能描述
这个 n8n 工作流每 5 分钟查询您的 Loki 日志,仅过滤关键日志(错误、超时、异常等),在批次内移除重复告警,并将干净的告警发送到 Slack 频道,包含完整的元数据(Pod、命名空间、节点、容器、日志、时间戳)。
## 🧠 工作原理
### 🕒 定时触发器
– 每 5 分钟运行一次(可自定义)
### 🌐 Loki HTTP 查询
– 拉取最近 10 分钟的日志
– 关键词匹配:error、failed、oom 等
### 🧹 日志解析
– 提取日志字段(Pod、容器等)
– 跳过空/格式错误的结果
### 🧠 去重处理
– 移除重复的错误消息(在查询窗口内)
### 📤 Slack 通知
– 向 Slack 发送格式良好的消息
## ⚙️ 要求
### 工具说明
– **Loki** – 内部或外部暴露
– **Slack App** – 具有 chat:write OAuth 权限
– **n8n** – 云端或自托管
## 🔧 设置步骤
1. 将 JSON 文件导入 n8n
2. 更新配置:
– Loki API URL(例如:http://loki-gateway.monitoring.svc.cluster.local)
– Slack Bearer Token(通过凭据)
– 目标 Slack 频道(例如:#k8s-alerts)
– (可选)在查询正则表达式中更改关键词
3. 激活工作流
4. 确保 n8n Pod/容器可以访问您的 Kubernetes 集群/Pod/命名空间
## 🛠 自定义选项
– **需要更多或更少的关键词?** 在”查询 Loki 错误日志”节点中调整正则表达式
– **需要增强去重逻辑?** 增强”移除重复告警”节点
– **想要每 5 分钟发送 5 条日志摘要?** 分叉此工作流并添加批处理 + Slack 分组发送器
## 📋 节点详情
### 🕒 Every 5 Min Trigger
– 类型:Schedule Trigger
– 每 5 分钟触发一次工作流执行
### 📥 Query Loki for Error Logs
– 类型:HTTP Request
– 向 Loki API 发送查询请求
– 查询最近 10 分钟的错误日志
### 🧹 Extract Log Fields
– 类型:Code
– 解析 Loki 响应中的日志条目
– 提取 Pod、命名空间、容器、节点、时间戳和日志内容
### 🧠 Remove Duplicate Alerts
– 类型:Code
– 移除重复的告警消息
– 基于 Pod 和标准化日志内容进行去重
### 📤 Send Alerts to Slack
– 类型:HTTP Request
– 使用 Slack API 向指定频道发送告警消息
– 包含完整的元数据和格式化日志内容
### Sticky Note 节点
– 提供工作流说明和各个节点的功能描述

评论(0)