1. 首页 > 技术教程 > 正文

AI Agent 接入 Telegram 告警教程:VPS 异常实时提醒到手机

VPS 挂了才发现流量跑光?这种被动局面在主机选的技术实战中见过太多次。与其盯着监控面板发呆,不如把 Telegram 变成你的私人运维中心。本文教你用 n8n 搭建一个轻量级 AI Agent 监控流,一旦 VPS 出现 CPU 飙高或服务离线,手机秒收消息,实现真正的 VPS 异常实时提醒。

zhujixuan TASK 247

VPS部署AI工具:Docker 部署 n8n 环境

n8n 是目前最流行的开源自动化工具之一,非常适合构建这种轻量级 AI Agent。别用手动安装 Node.js 那套老办法,容易踩坑,直接上 Docker。确保你的 VPS 安装了 Docker 和 Docker Compose,内存至少给 1GB,Node.js 类的服务吃内存比较厉害。

创建一个 `docker-compose.yml` 文件,内容如下:

yaml
version: "3.8"
services:
n8n:
image: n8nio/n8n
restart: always
ports:
– "5678:5678"
environment:
– N8N_BASIC_AUTH_ACTIVE=true
– N8N_BASIC_AUTH_USER=admin # 修改默认用户名
– N8N_BASIC_AUTH_PASSWORD=your_strong_password # 务必设置强密码
– WEBHOOK_URL=https://your-domain.com # 如果有域名,填域名,否则填 IP:端口
volumes:
– n8n_data:/home/node/.n8n
volumes:
n8n_data:

运行启动命令:

docker-compose up -d

启动后,访问 `http://你的IP:5678`,输入刚才设置的用户名密码进入界面。能跑起来不等于适合生产环境,如果这台 VPS 对外提供服务,建议套一层 Nginx 做 SSL 反向代理,别把后台端口裸露在公网。

AI Agent 工作流配置:接入 Telegram

工具装好了,接下来教这个 AI Agent 怎么“说话”。我们需要两个东西:Telegram Bot Token 和你的 Chat ID。

获取 Telegram API Key 与 Chat ID

1. 在 Telegram 里搜索 `@BotFather`,发送 `/newbot`,按提示创建一个机器人,记下它给你的 `HTTP API Token`。
2. 搜索 `@userinfobot`,发送任意消息,它会返回你的 `Id`,这就是你的 Chat ID。

构建监控逻辑节点

回到 n8n 界面,新建一个 Workflow。

1.添加 Webhook 节点:这是 VPS 告警的“门铃”。设置为 `POST` 方法,路径可以自定义,比如 `/alert`。保存后,复制上方的 `Production URL`,VPS 端脚本要往这个地址发数据。
2.添加 Telegram 节点:选择“Send Text”。Credentials 里新建一个 Telegram Access Token,填入刚才拿到的 API Key。Chat ID 填你的数字 ID。
3.测试流程:点击 Webhook 节点的“Listen for test event”,用 Postman 或者 curl 造一个假请求过去。如果手机响了,说明链路通了。

VPS 端异常触发脚本编写

Agent 在云端等,VPS 得学会“喊救命”。我们写一个简单的 Shell 脚本,监控磁盘使用率,超过阈值就触发 n8n 的 Webhook。

创建脚本 `check_disk.sh`:

#!/bin/bash

THRESHOLD=90
DISK_USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
WEBHOOK_URL="https://your-n8n-url/webhook/alert"

if [ $DISK_USAGE -gt $THRESHOLD ]; then
MESSAGE="Warning: VPS Root Disk Usage is ${DISK_USAGE}%!"
curl -X POST -H "Content-Type: application/json" \
-d "{\"text\": \"$MESSAGE\", \"server\": \"$(hostname)\"}" \
$WEBHOOK_URL
fi

给脚本执行权限:

chmod +x check_disk.sh

把它放进 crontab,每小时跑一次:

crontab -e
0 * * * * /root/check_disk.sh

这样,一个基础的 VPS 异常实时提醒系统就完成了。你可以根据需要扩展脚本,比如监控 CPU 负载、Nginx 进程是否存在,甚至把报错日志直接扔给 Agent,让它自动分析原因。

老鸟叮嘱

1.API Key 别乱传:脚本里包含 Webhook URL,这相当于你的家门钥匙。脚本权限设为 700,别让其他用户能读取。
2.Webhook 安全:n8n 的 Webhook 默认是公开的,谁都能调。建议在 Webhook 节点里开启“Authentication”,设置一个 Header Key,脚本请求时带上这个 Key,防止被恶意刷屏。
3.内存告急:n8n 用 Docker 跑起来至少占 200-300MB 内存,如果是 512MB 的特价鸡,跑起来会 OOM(内存溢出),这种场景建议换成更轻量的 Python 脚本直接调用 Telegram API,别硬上 n8n。
4.时区问题:VPS 通常是 UTC 时间,脚本里记录日志或发消息时注意下时间差,别半夜三更收到告警以为是白天。

FAQ

Q:除了 Telegram,能用微信或钉钉吗?
A:技术上可以,但微信个人号接口容易封号,企业号申请麻烦。Telegram 的 Bot API 最稳定、延迟最低,且支持 Markdown 格式,是运维告警的首选。

Q:n8n 必须用 HTTPS 吗?
A:测试阶段用 IP:端口可以,但正式环境强烈建议用 HTTPS。Telegram 对某些安全策略较严,且明文传输 Webhook 数据容易泄露服务器状态。

Q:如果 VPS 彻底断网了,还能收到告警吗?
A:不能。脚本依赖网络请求 Webhook。如果是网络层挂了,建议结合服务商提供的监控报警(如 AWS CloudWatch 或商家后台面板)做双重保险。

Q:这个方案适合高并发监控吗?
A:不适合。这是轻量级 Agent 方案,适合单机或少量集群监控。如果是几百台服务器,建议用 Prometheus + Alertmanager 这种专业监控栈。

Q:如何让 AI Agent 自动处理故障?
A:可以在 n8n 的 Telegram 节点后加一个 HTTP Request 节点,调用 VPS 的 API(如重启 Docker 容器),实现“收到告警 -> 确认问题 -> 自动重启”的闭环,但要小心误操作。

这套方案利用 n8n 将 VPS 监控与 Telegram 打通,实现了从“被动查日志”到“主动收消息”的转变。虽然脚本简单,但在实际运维中能极大缩短故障响应时间,是每个站长都应该掌握的自动化技能。

转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/10203.html 商家投稿邮箱:zhujixuanblog@qq.com