AI Agent监控网站状态,自动告警故障通知
网站突然打不开,往往要等用户反馈才知道。
本文用AI Agent配合简单脚本,实现对网站状态监控和自动告警故障通知,零基础也能在半小时内搭建起来。
适用场景与准备条件
适合个人站长、小团队运维、没有专业监控系统的场景。
你需要一台能联网的Linux服务器(Ubuntu或CentOS均可),Python 3.6以上版本,以及一个接收告警的渠道,比如钉钉群机器人或企业微信机器人。
本文以钉钉为例。
先确认环境:
python3 --version
curl -I https://你的网站域名
如果curl返回200或301,说明网站正常,脚本可以基于HTTP状态码判断故障。
编写AI Agent监控脚本
核心逻辑:定时请求目标URL,如果状态码不是200或请求超时,就调用钉钉Webhook发送告警。
创建脚本文件/opt/ai_monitor.py:
import requests
import time
import json
import sys
TARGET_URL = "https://你的网站域名"
WEBHOOK = "https://oapi.dingtalk.com/robot/send?access_token=你的token"
def check():
try:
r = requests.get(TARGET_URL, timeout=10)
return r.status_code == 200
except Exception as e:
print(f"请求异常: {e}")
return False
def send_alert(msg):
data = {"msgtype": "text", "text": {"content": msg}}
requests.post(WEBHOOK, json=data, timeout=5)
if __name__ == "__main__":
ok = check()
if not ok:
send_alert(f"【故障告警】{TARGET_URL} 无法访问,请立即检查!")
sys.exit(1)
else:
print("网站正常")
关键点:timeout=10表示10秒无响应即判定故障;
钉钉Webhook需要先在群设置里创建机器人并复制access_token。
配置定时任务与告警触发
用systemd定时器或crontab每2分钟执行一次。
这里用crontab更简单:
crontab -e
添加一行:
*/2 * * * * /usr/bin/python3 /opt/ai_monitor.py >> /var/log/ai_monitor.log 2>&1
保存后重启cron服务:
systemctl restart cron
这样每2分钟检查一次,故障时钉钉群会收到消息。注意:如果服务器本身网络故障,脚本也无法发出告警,建议在另一台机器上部署相同脚本做交叉监控。
常见报错与避坑指南
问题1:钉钉收不到消息
检查Webhook地址是否完整,机器人是否开启“加签”或“关键词”安全设置。如果设置了关键词,告警内容必须包含该关键词,比如“故障告警”。
问题2:脚本执行权限不足
给脚本加执行权限:
chmod +x /opt/ai_monitor.py
并在crontab中使用绝对路径/usr/bin/python3,避免环境变量问题。
问题3:误报频繁
网站偶尔超时可能是网络抖动。可以在脚本里加两次重试:
def check():
for i in range(2):
try:
r = requests.get(TARGET_URL, timeout=10)
if r.status_code == 200:
return True
except:
pass
time.sleep(3)
return False
避坑:不要把告警阈值设得太敏感,否则会被频繁通知干扰。
建议先运行一天观察日志,再调整检查频率。
验证监控是否生效
手动模拟故障:临时把TARGET_URL改成不存在的地址,运行脚本:
python3 /opt/ai_monitor.py
如果钉钉收到告警,说明链路正常。
再改回真实地址,确认脚本输出“网站正常”。
查看日志确认定时任务执行:
tail -f /var/log/ai_monitor.log
看到每次执行记录即表示配置成功。
常见疑问
AI Agent和普通脚本有什么区别? 这里的AI Agent指具备自动判断和通知能力的自动化脚本,并非必须使用大模型。
核心是“监控+决策+通知”的闭环。
可以监控多个网站吗? 可以,把URL列表循环检查,任一失败即告警。
告警渠道能换成邮件吗? 能,把钉钉Webhook换成SMTP发送邮件即可,Python的smtplib库就能实现。
需要一直开着服务器吗? 是的,监控脚本需要常驻运行,建议用低配VPS即可。
按以上步骤操作后,你的网站状态监控和自动告警故障通知就搭建完成了。
建议先跑通单站点,再逐步扩展。