2026-09-16 · 原文发布日
每30分钟巡检网站,只在宕机/恢复时发邮件
这个免费n8n模板做轻量站点监控:每30分钟对最多三个服务URL发GET请求(10秒超时、连接失败或5xx视为DOWN),从Google Sheets的“Health Log”表读上次状态对比,只在UP→DOWN或DOWN→UP变化时用Gmail发告警或恢复通知,其余时间静默记录状态、HTTP码和时间戳。首次运行只建基线不发告警。注意:模板标题提到KPI与GPT-4o-mini,但正文实际是网址可用性巡检,不含AI环节。
原文要点
来源模板是免费 n8n 工作流:计划触发每30分钟检查最多三个服务URL;HTTP GET超时10秒,连接错误、超时或5xx判DOWN;结果写入Google Sheets的Health Log,读取最近状态比较UP→DOWN或DOWN→UP;只有状态翻转才用Gmail发宕机或恢复邮件,首次运行只建基线。模板标题提到KPI/GPT-4o-mini,但正文没有AI节点。
这次做成什么
在站内复刻一个“静默巡检、只在状态变化时邮件通知”的独立练习方案:用n8n计划触发、HTTP请求、Google Sheets状态表和Gmail分支通知,监控2个练习URL,并预留第3个空位。
准备什么
- 一个可登录的n8n实例,能新增Schedule Trigger、HTTP Request、Google Sheets、Gmail、IF节点
- Google Cloud已启用Sheets API与Gmail API,并配置OAuth2凭据
- 一个Google表格,含名为Health Log的工作表
- 两个可公开GET的练习URL,以及一个接收告警的测试邮箱
具体怎么做
建状态表
在Google Sheets新建工作表Health Log,首行精确放Service, URL, Status, HTTP Code, Checked At;先空着数据区,首次运行只写基线。
配置巡检清单
在n8n工作流入口放Schedule Trigger设为每30分钟;接一个配置节点放service1/service2/service3的name与url,url为空或不含http就跳过;字段映射为service,url。
发请求并判定
HTTP Request对每个url发GET,timeout设10000ms,开启continue on fail;后用Code/IF判DOWN:请求失败、超时或statusCode>=500;否则UP。输出字段:service,url,status,httpCode,checkedAt。
对比上次状态
Google Sheets读取Health Log,按service过滤最后一行;IF分支:无历史=只追加;上次UP本次DOWN=发宕机邮件;上次DOWN本次UP=发恢复邮件;状态相同=只追加不邮件。
输出与通知
追加行到Health Log;Gmail仅在经过翻转分支时发送,主题含service与UP/DOWN,正文含url、httpCode、checkedAt;收件人用测试邮箱。
可直接复制的材料
Health Log首行与配置样例
本站独立示例;.invalid域名不可访问,仅用于字段演示,请换成自己的测试URL;site-c演示留空跳过。
Service,URL,Status,HTTP Code,Checked At
site-a,https://example-a.invalid/health,UP,200,2026-09-16T10:00:00Z
site-b,https://example-b.invalid/health,DOWN,503,2026-09-16T10:00:00Z
site-c,,,,状态判定与邮件分支配置
本站设计的字段方案;节点名、按钮名以你的n8n版本为准,不声称与原模板文件相同。
判定规则:error!=null 或 timeout=true 或 statusCode>=500 => DOWN;否则 UP。
字段映射:service<=配置.name;url<=配置.url;status<=判定结果;httpCode<=响应码或0;checkedAt<=当前ISO时间。
邮件条件:prevStatus exists 且 prevStatus!=status;主题:[{{status}}] {{service}};正文:{{url}} 在 {{checkedAt}} 变为 {{status}},HTTP {{httpCode}}。输入与输出示例
本站虚构演示,未运行原工作流;数字与上表字段一一对应。
输入
site-a=https://example-a.invalid/health 上次UP;本次返回200;site-b=https://example-b.invalid/health 上次DOWN;本次连接超时。对应输出
site-a:上次UP→本次UP,追加一行site-a,...,UP,200,...,不发邮件。site-b:上次DOWN→本次DOWN,追加一行site-b,...,DOWN,0,...,不发邮件。若site-b下次恢复200,则发送主题[UP] site-b的恢复邮件。做完检查这些
- Health Log首行五列名称完全一致,空URL的site-c不会触发HTTP请求
- 首次运行只写入基线行,不产生任何Gmail发送记录
- 把site-b从可访问改成不可访问后,只在UP→DOWN那一次收到宕机邮件
- 连续两次都为DOWN时只新增日志,不重复轰炸收件箱
容易卡住的地方
- 5xx才算DOWN,4xx按来源描述不必然判DOWN,练习中不要自行扩大规则
- Google/Gmail OAuth2作用域不足会读不了表或发不了邮件
- n8n表达式取“上一行”若没按service过滤,会把不同服务状态混比
- 标题中的KPI/GPT-4o-mini在正文未兑现,不要期待AI摘要节点
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Analyze weekly KPI drops with Google Sheets, Gmail, and GPT-4o-mini
- 原作者
- Incrementors
- 原始发布日期
- 2026-09-16T10:43:51.084Z
- 来源
- https://n8n.io/workflows/19650