
Bark监控PVE机器异常关机
方案一
验证bark服务
下载并部署Bark服务后在 PVE 主机上,手动运行以下命令,测试是否能触发通知:1
2
3
4curl -s "替换成bark地址链接" \
-d "message=这是一个测试通知" \
-d "sound=alarm" \
-d "group=虚拟机监控"
设置脚本
在 PVE 主机上,打开终端并输入以下命令创建一个文件:1
nano /root/vm_monitor.sh
将以下脚本内容粘贴到文件中:
1 |
|
这里的 your_bark_key
需要替换成 Bark 应用中获取的实际 Key。输入以下命令为脚本赋予可执行权限:
1 | chmod +x /root/vm_monitor.sh |
设置定时任务
1 | crontab -e |
在文件的末尾添加以下行:
1 | */5 * * * * /root/vm_monitor.sh |
代码表示每隔 5 分钟运行一次 /root/vm_monitor.sh
脚本。
方案二
第一步:创建通用 Hook 脚本
1 | nano /etc/pve/hooks/vmhook.sh |
粘贴以下内容(可修改地址和 Bark KEY):1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#!/bin/bash
VMID="$1"
EVENT="$2"
# 虚拟机别名,可选
declare -A VM_NAMES=(
["102"]="群晖NAS"
["103"]="Ubuntu系统"
)
VM_NAME=${VM_NAMES[$VMID]:-"VM_$VMID"}
# 事件筛选
if [[ "$EVENT" == "post-stop" ]]; then
curl -s "https://api.day.app/YOUR_BARK_KEY/$VM_NAME%20已关闭" \
-d "message=虚拟机 $VM_NAME($VMID)停止运行" \
-d "sound=alarm" \
-d "group=虚拟机监控"
fi
添加执行权限
1 | chmod +x /etc/pve/hooks/vmhook.sh` |
为 102 和 103 添加 Hook 配置
编辑 102 配置文件:
1 | nano /etc/pve/qemu-server/102.conf |
在最后一行添加:hookscript: /etc/pve/hooks/vmhook.sh
编辑 103 配置文件:
1 | nano /etc/pve/qemu-server/103.conf` |
同样添加:hookscript: /etc/pve/hooks/vmhook.sh
测试
1 | bash /etc/pve/hooks/vmhook.sh 102 post-stop |
- 感谢你赐予我前进的力量