实时Kubernetes CPU峰值告警到Slack工作流 | n8n自动化监控
Kubernetes监控,CPU告警,Slack通知,n8n工作流,Prometheus,自动化运维,实时告警

## 工作流概述

这个n8n工作流实现了实时监控Kubernetes集群CPU使用情况,并在检测到CPU峰值时自动发送告警到Slack。工作流每5分钟触发一次,查询Prometheus获取所有Kubernetes Pod的CPU使用率数据。

## 工作原理

### 1. 定时触发
– **🕒 Every 5 Min Trigger**:每5分钟自动触发工作流执行
– 可根据监控需求调整触发间隔(如1分钟进行更积极的监控)

### 2. Prometheus数据查询
– **📡 Query Prometheus for CPU Spikes**:通过HTTP GET请求查询Prometheus
– 使用PromQL查询语句获取超过CPU使用率阈值的Pod(例如>0.8核心)
– 确保n8n能够访问Prometheus且查询语句正确调优

### 3. 数据格式转换
– **🧠 Format Prometheus JSON**:将原始Prometheus JSON数据转换为结构化数组
– 提取应用名称、命名空间、Pod名称和CPU使用率(浮点数)
– 仅过滤超过阈值的CPU使用率的Pod

### 4. 告警分组逻辑
– **🔎 Check Number of Pods in Group**:检查同一应用下是否有多个Pod超过阈值
– 如果pods.length > 1 → 分组告警
– 否则 → 单个Pod告警

### 5. 消息格式化
– **🧷 Format Batched Slack Message**:为同一应用的多个Pod格式化富文本Slack消息
– 包含应用名称、命名空间、受影响Pod列表及CPU使用率
– **✉️ Format Single Pod Slack Message**:为单个高CPU Pod格式化告警消息
– 适用于不跨应用共享的孤立峰值

### 6. Slack通知发送
– **📤 Send Alerts to Slack**:通过webhook或Bot API发送格式化告警消息到Slack
– 确保Slack令牌已添加到凭据中
– 频道ID正确
– 消息体格式:{ “text”: $json[“text”] }

## 设置步骤

1. 配置Prometheus访问权限
2. 添加Slack Bot API凭据
3. 设置正确的Slack频道ID
4. 根据需要调整CPU阈值和监控间隔

## 技术特点

– 实时监控Kubernetes集群CPU使用情况
– 智能分组告警,避免信息过载
– 支持批量Pod和单个Pod告警
– 易于扩展和定制

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。