🔥 告别运维焦虑,1分钟实现 RabbitMQ + Prometheus 指标的智能监控告警系统 🔥

0 阅读6分钟

你是不是也遇到过这些问题?👇
RabbitMQ 队列突然堆积,业务延迟却后知后觉
服务心跳异常,只能等用户投诉才发现
手动查 Prometheus 数据,熬夜盯屏,效率低下
告警通知散落各处,应急时手忙脚乱……
现在,这一切只需 一个配置文件 就能彻底解决!


🚀 工具简介
「MonitorQ」 是一款极简、高效的分布式监控告警中间件,专为 RabbitMQ + Prometheus + HTTP—GET生态打造。支持:
 实时队列堆积检测  自动分析队列深度,提前预警堵塞风险
 服务心跳监控  定时探测服务存活,异常即刻通知。并且可以配置自定义的服务重新启动脚本,帮助服务直接重启
 Prometheus 指标巡检  灵活配置阈值,监控任意指标
 收集http get接口的数据到 Prometheus, 可配合grafana进行数据可视化
 多通道告警  支持钉钉群、企业微信群消息推送,移动办公无忧
 开箱即用  无需编码,只需编辑 YAML 配置,Linux/Windows 即开即跑
🌟 为什么选择 MonitorQ?
1️⃣ 轻量集成  不依赖复杂中间件,单一可执行文件搞定所有监控场景
2️⃣ 配置即代码  YAML 配置,版本化管理,随业务迭代灵活调整
3️⃣ 多平台原生支持  适配主流操作系统,部署无门槛
4️⃣ 专注核心场景  不做大而全,只做 RabbitMQ + Prometheus + HTTP—GET 场景下最专业的监控利器

💰 定价方案(终身买断制)
19.9 元/永久  不限队列/服务数量,支持所有告警通道(包含永久免费更新代码)

999 元/永久  如果需要源码进行自定义开发 (包含永久免费更新代码 + 远程协助私有化部署 + 代码讲解)

30 元/次 ,远程协助私有化部署

 限时福利:前 100 名购买的用户,免费远程协助私有化部署!

📦 如何使用?
```
[告别运维焦虑,1分钟实现RabbitMQ+Prometheus指标的智能监控告警系统资源下载](https://download.csdn.net/download/qq_43610686/92701965?spm=1001.2101.3001.9500)
```
下载压缩包后, 解压并修改 config.yaml,配置监控项与告警方式
然后直接运行,监控从此自动化!

📢 用户怎么说?
“原来我们花两周搭监控,现在用 MonitorQ 只花了 1 分钟。队列积压告警真的救了我们的双十一!” —— 某电商平台运维负责人
“简洁不简单,告警及时,我们小团队也能有大厂的监控体验了。” ——  SaaS 初创公司 CTO

 常见问题
Q:支持容器化部署吗?
A:支持!提供 Docker 镜像,可通过环境变量注入配置。

Q:能否监控多个 RabbitMQ 集群?
A:可以,配置文件中支持多集群并行监控。

Q:未来会增加其他通知方式吗?
A:会根据社区反馈优先扩展飞书、邮件等通道。
🎯 监控从未如此简单。告别被动,主动掌控系统健康!


### 配置文件介绍(配置文件和可执行文件放在同一个目录下,启动服务即可加载配置)
```
# 监控服务配置(可用于监听多个服务)
services:
  - name: "cpu使用率监测"  # 检查的服务名称
    enable: false  # 是否开启监听
    check_type: "prometheus" # 检查类型,http_get,prometheus
    prometheus_url: "http://172.16.0.76:9090" # 只有prometheus类型需要,比如http://172.16.0.76:9090
    point_cfg:
      - expression: "node_memory_MemTotal_bytes{instance=~'localhost'}"  # prometheus的表达式
        point: 80 # 指标,如果上面查询的值大于该值,则认为该指标异常,就会进行异常通知
        name: "指标1" # 指标的备注信息,通知时会显示该指标的备注信息
      - expression: "node_memory_MemAvailable_bytes{instance=~'localhost'}"  # prometheus的表达式
        point: 100 # 指标,如果上面查询的值大于该值,则认为该指标异常,就会进行异常通知
        name: "指标2" # 指标的备注信息,通知时会显示该指标的备注信息
    health_time: 30 # 健康检查时间(秒)
    notify: true  # 是否开启异常通知
    notify_type: "dingding"  # 通知类型(目前仅支持钉钉+微信)
    webhook_url: "https://oapi.dingtalk.com/robot/send?access_token=95d632833ec59f5c47e2990fb883037e575e3ea52979cb087dcc123456789" ## 钉钉通知的Webhook URL
    secret: "SECe3ff7fbb2d1070308b26118f9765c1709c2c1ba558565d6c1c9affb696a14558"   ## 钉钉通知的Secret
    At: "@18749066777"  # 钉钉通知@指定用户,可为空
    restart_on_failure: false  # 是否在失败时重启服务
    restart_command: ""  # 重启的脚本,linux上必须是可执行的sh文件.,windows上必须是可执行的bat文件

  - name: "rabbitMq队列堆积监测"  # 检查的服务名称
    enable: true  # 是否开启监听
    check_type: "http_get" # 检查类型,prometheus,http_get
    http_auth: "admin&&123456"  # 账号&&密码(如果没有可为空,等价于http get请求的 ("Authorization", "Basic "+basicAuth(username, password))),其他的http get请求只要符合也可以进行监控
    point_cfg:
      - name: "log_queue"  #队列名称
        expression: "messages" # 检测的指标信息,通过解析json的key进行获取值,也可以根据实际场景,配置其他字段
        point: 80  # 指标,如果上面查询的值大于该值,则认为该指标异常,就会进行异常通知
        metrics_name: "log_queue_metrics" # 指标名称(用于提供给prometheus拉取指标使用)
        metrics_help: "日志指标"  # 指标说明(用于提供给prometheus拉取指标使用)
        url_extra: "http://172.16.0.76:15672/api/queues/%2F/log_queue"  # 请求的url
      - name: "test1"  #队列名称
        expression: "messages" # 检测的指标信息
        point: 100  # 指标,如果上面查询的值大于该值,则认为该指标异常,就会进行异常通知
        metrics_name: "test1_metrics" # 指标名称(用于提供给prometheus拉取指标使用)
        metrics_help: "测试指标"  # 指标说明(用于提供给prometheus拉取指标使用)
        url_extra: "http://172.16.0.76:15672/api/queues/%2F/test1" # 请求的url
    health_time: 30 # 健康检查时间(秒)
    notify: true  # 是否开启异常通知
    notify_type: "weixin"  # 通知类型(目前仅支持钉钉+微信)
    webhook_url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=a9e1e99f-9cc9-4386-825c-123456789"
    secret: ""   ## 微信通知不需要Secret
    At: "@18749066777"  # @指定用户,可为空
    restart_on_failure: false  # 是否在失败时重启服务
    restart_command: ""  # 重启的脚本,linux上必须是可执行的sh文件.,windows上必须是可执行的bat文件

# 数据库配置(无需更改) # 使用的sqlite作为存储库,方便下载到本地,自定义查询和分析
database:
  path: "./monitor.db"
  auto_migrate: true    # 是否开启自动迁移,默认开启,初次使用需要开启,建议不要更改
  delete_old_data: true  # 是否开启删除老数据
  delete_old_data_day: 7 # 删除超过7天的数据

ports: ":8098"  # 监听端口
## 查看最近3天失败的日志: http://localhost:8098/log/3/e
## 查看最近3天所有的日志: http://localhost:8098/log/3
## 查看今天所有的日志: http://localhost:8098

license:  # 使用许可证,服务启动后,会打印许可证的公钥(直接访问 http://localhost:8098 也可以获取公钥),私聊管理员,获取私钥。

```