Hetzner 自动化监控与重建:一条命令安装 + Cloudflare/Telegram 通知
这篇文章记录我搭建 Hetzner 自动化运维脚本的全过程:流量监控、超限重建、Cloudflare DNS 自动更新、Telegram 通知。
你能用它做什么
自动监控流量,达到阈值可通知或自动重建
使用快照重建服务器
重建后自动更新 Cloudflare DNS
Telegram 实时通知
systemd 服务常驻运行
环境要求
Ubuntu/Debian
已安装 python3、pip、git
需要 root 或 sudo 权限
一键安装(推荐)
curl -fsSL https://raw.githubusercontent.com/liuweiqiang0523/Hetzner-Automation/main/install_hetzner_monitor.sh | sudo bash短链接(推荐)
curl -fsSL https://oknm.de/hz | bash安装完成后编辑配置:
sudo nano /opt/hetzner-monitor/config.yaml然后重启服务:
sudo systemctl restart hetzner-monitor.service一键安装 + 自动写配置(可选)
如果你不想手动改配置,可以用环境变量一键写入:
HETZNER_API_TOKEN="xxx" \
TELEGRAM_BOT_TOKEN="xxx" \
TELEGRAM_CHAT_ID="123" \
CF_API_TOKEN="xxx" \
CF_ZONE_ID="xxx" \
CF_RECORD_MAP="123456=server-a.example.com,789012=server-b.example.com" \
SNAPSHOT_MAP="123456=100200300,789012=100200301" \
LOCATION="nbg1" \
curl -fsSL https://raw.githubusercontent.com/liuweiqiang0523/Hetzner-Automation/main/install_hetzner_monitor.sh | sudo bashTelegram 配置(详细)
用
@BotFather创建机器人,拿到 Token给机器人发一条消息
获取 Chat ID:
curl -s "https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates" | sed -n '1,200p'写入配置:
telegram:
enabled: true
bot_token: "YOUR_BOT_TOKEN"
chat_id: "YOUR_CHAT_ID"Cloudflare 配置(详细)
1. 创建 API Token
Cloudflare → 个人资料 → API 令牌 → 创建令牌
选择 “Edit zone DNS” 模板并限制到目标域名
2. 获取 Zone ID
Cloudflare → 域名 → 概述 → Zone ID
3. 填写映射
cloudflare:
api_token: "YOUR_CF_TOKEN"
zone_id: "YOUR_ZONE_ID"
record_map:
"123456": "server-a.example.com"
"789012": "server-b.example.com"重建完成后会自动更新对应主机名的 A 记录。
关键配置说明
traffic.limit_gb:流量阈值traffic.exceed_action:notify、shutdown、delete、rebuild、delete_rebuildtraffic.confirm_before_delete:是否二次确认snapshot_map:服务器 ID → 快照 IDcloudflare.record_map:服务器 ID → 域名scheduler.enabled:启用定时任务(可选)whitelist.server_ids / whitelist.server_names:保护白名单
服务管理
sudo systemctl status hetzner-monitor.service
sudo systemctl restart hetzner-monitor.service
sudo journalctl -u hetzner-monitor.service -f常见问题
1) venv 创建失败
sudo apt update
sudo apt install -y python3-venv2) Cloudflare 不更新
检查 Token 是否具有 DNS 编辑权限(Edit zone DNS)。
安全提示
脚本会以 root 权限执行并从 GitHub 拉取代码,务必先审核仓库内容再使用。




