
MQTT监控告警系统是一款用于监控EMQX MQTT Broker中特定客户端连接状态的自动化监控工具。该系统能够实时监测客户端连接状态,在客户端断开连接时发送告警通知,并在连接恢复时发送恢复通知。系统还提供每日运行状态报告和全面的运维管理功能。

🚨 MQTT客户端连接告警
─────────────────
发送时间: 2026-01-27 15:30:49
消息类型: 客户端断线告警
客户端ID: edge:二水厂
断线时长: 5分钟
断线开始时间: 2026-01-27 15:25:49
处理建议: 请及时检查网络连接及设备状态
【科控物联】
✅ MQTT客户端连接恢复
─────────────────
发送时间: 2026-01-27 16:00:15
消息类型: 客户端连接恢复
客户端ID: edge:二水厂
断线时长: 30分钟
当前状态: 已恢复正常
【科控物联】
🎉 MQTT监控服务启动通知
─────────────────
发送时间: 2026-01-27 17:06:14
消息类型: 服务启动通知
服务状态: 正常运行
当前版本: v2.4.28
监控客户端状态:
• edge:加压站: ✅ 在线
• edge:二水厂: ❌ 离线
【科控物联】
🛑 MQTT监控服务停止通知
─────────────────
发送时间: 2026-01-27 15:40:30
消息类型: 服务停止通知
服务状态: 已正常停止
运行时长: 2小时15分钟
【科控物联】
📊 MQTT客户端每日运行状态报告
─────────────────
报告时间: 2026-01-27 18:30:55
消息类型: 每日运行状态
服务运行时长: 237天9小时3分钟
监控运行时长: 4分钟
今日告警次数: 25
当前客户端状态:
✅ edge:加压站: 在线
❌ edge:二水厂: 离线
【科控物联】
❌ MQTT服务异常告警
─────────────────
发送时间: 2026-01-27 14:22:10
消息类型: 服务异常告警
服务状态: MQTT服务不可用
处理建议: 请立即检查MQTT服务状态
严重程度: 高
【科控物联】
将脚本部署为系统服务,可以实现开机自启和自动重启功能。
将 dingding.sh 脚本复制到系统目录:
cp dingding.sh /opt/mqtt_monitor/
chmod +x /opt/mqtt_monitor/dingding.sh
创建 systemd 服务文件:
cat > /etc/systemd/system/mqtt-monitor.service << 'EOF'
[Unit]
Description=MQTT Client Monitor Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/mqtt_monitor
ExecStart=/opt/mqtt_monitor/dingding.sh
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
EOF
# 重新加载系统服务
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start mqtt-monitor
# 设置开机自启
sudo systemctl enable mqtt-monitor
# 查看服务状态
sudo systemctl status mqtt-monitor
# 查看服务状态
sudo systemctl status mqtt-monitor
# 查看实时日志
sudo journalctl -u mqtt-monitor -f
# 停止服务
sudo systemctl stop mqtt-monitor
# 重启服务
sudo systemctl restart mqtt-monitor
# 查看监控日志文件
tail -f /var/log/mqtt_monitor.log
# 查看状态文件
ls -la /var/lib/mqtt_monitor/
edge:加压站 和 edge:二水厂/var/log/mqtt_monitor.log/var/lib/mqtt_monitor/var/run/mqtt_monitor.pid/var/log/mqtt_monitor.log 文件中/var/lib/mqtt_monitor 目录下CLIENT_IDS 数组