三分钟搞定服务异常检测与快速恢复,并进行钉钉、企业微信通知

5 阅读3分钟

你是不是也遇到过这个问题?👇
生产环境服务突然挂了,等到用户反馈才开始确定服务是否正常,然后进行手动恢复。
现在,这一切只需 一个配置文件 就能彻底解决!(服务自动恢复+重启告警)


🚀 工具简介
「MonitorQ」 是一款极简的服务监控告警中间件,能够同时监控多个服务的心跳,并且能够进行异常告警通知。

 多通道告警  支持钉钉群、企业微信群消息推送,移动办公无忧
 开箱即用  无需编码,只需编辑 YAML 配置,Linux/Windows 即开即跑

🌟 为什么选择 MonitorQ?
1️⃣ 轻量集成  不依赖复杂中间件,单一可执行文件搞定所有监控场景(工具极小,工具包不到10M,占用服务器资源极低)
2️⃣ 配置即代码  YAML 配置,版本化管理,随业务迭代灵活调整
3️⃣ 多平台原生支持  适配主流操作系统,部署无门槛


📦 如何使用?
[资源下载地址](https://download.csdn.net/download/qq_43610686/92701965?spm=1001.2101.3001.9500)

下载压缩包后, 解压并修改 config.yaml,配置监控项与告警方式
然后直接运行,监控从此自动化!


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

Q:能否监控多个 服务吗?
A:可以,配置文件中支持多服务的并行监控。

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

### 通知效果示例
```
[服务异常监测] 服务异常
[1.198服务异常]无法访问
[1.120服务异常]无法访问
```


### 配置文件介绍(配置文件和可执行文件放在同一个目录下,启动服务即可加载配置)
```
# 监控服务配置(可用于监听多个服务)
services:
  - name: "服务异常监测"  # 检查的服务名称
    enable: true  # 是否开启监听
    check_type: "http_get" # 检查类型,prometheus,http_get
    point_cfg:
      - name: "1.222:8080java服务"  #名称
        url_extra: "http://172.16.0.76:15672/heartbeat"  # 请求的url,能访问即可,无法访问时就会告警
      - name: "1.222:8081go服务"  #名称
        url_extra: "http://172.16.0.76:15673/heartbeat" # 请求的url
    health_time: 30 # 健康检查时间(秒)
    notify: true  # 是否开启异常通知
    notify_type: "weixin"  # 通知类型(目前仅支持钉钉+微信)   weixin \ dingding
    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 也可以获取公钥),私聊管理员,获取私钥。

```