乐于分享
好东西不私藏

一款开源 AI 自愈监控工具的体验报告

一款开源 AI 自愈监控工具的体验报告

点击关注《DevOps运维民工》公众号,将获取更多AI干货

介绍

上周我在整理 AI 运维工具清单时,随手搜了搜 GitHub 上的相关项目。在「运维 +AI」这个分类下,一个名字叫 NightMend 的小众项目进入了我的视线。它的一些特点让我产生了好奇:

  • 声称是开源 AI 运维平台

  • 内置 MCP 集成

  • 主打自动修复而不仅仅是告警

说实话,起初我并不抱太大期望。类似的项目我见过不少,大多数要么是 PPT 级别的 demo,要么是噱头大于实用。但我决定花半小时简单看看——反正不亏时间。结果,我被它的设计理念和真实功能打动了。

解决哪些痛点

如果你做过运维,一定经历过这些场景:

  • 凌晨 3 点收到磁盘告警,爬起来 登录服务器,手动清理日志,结果发现是某个服务在疯狂写日志,还得继续排查原因

  • CPU 飙高,排查半天发现是某个死循环,重启后暂时恢复,第二天又发生,根本找不到根因

  • Prometheus+Grafana 每天几百条告警,80% 是误报,值班工程师被「告警疲劳」折磨到崩溃

  • 企业级监控工具价格不菲,但还是需要人工分析、人工修复,AI 功能都是「选配」

NightMend 的核心理念:监控不仅仅是告诉你「哪里出了问题」,更重要的是「帮你修好」。

核心能力

1. AI 根因分析

传统方式看到「磁盘 95%」告警,只能手动 SSH 登录,用 df -hdu -sh * 等命令一步步排查,找到根因可能是某个服务的日志文件在膨胀。NightMend 方式告警触发后,系统调用 DeepSeek API,结合日志、指标、拓扑图进行关联分析,直接返回根因和建议操作。实际效果从告警到分析完成,平均耗时 30 秒以内,比人工排查节省大量时间。

2. AI 自动修复

这是 NightMend 比较特别的功能。它内置了一些开箱即用的 Runbook:

Runbook

功能

适用场景

disk_cleanup

磁盘清理

清理临时文件、旧日志、缓存

log_rotation

日志轮转

日志文件过大,自动切割压缩

service_restart

服务重启

服务无响应,优雅重启

memory_pressure

内存压力缓解

释放缓存、重启内存泄漏进程

zombie_killer

僵尸进程清理

清理僵尸进程

connection_reset

连接重置

数据库/服务连接池异常

执行流程

告警触发 → AI 分析根因 → 选择对应 Runbook → 人工审批 → 自动执行 → 问题解决

安全机制

  • 所有修复任务默认进入「待审批」状态,管理员确认后方可执行

  • 支持 dry_run 模式,先模拟执行验证逻辑,不实际操作

  • 高风险操作(如重启服务)需二次确认

3. MCP 集成

MCP(Model Context Protocol)是 AI 工具调用的标准化协议,允许 AI 助手直接查询外部系统数据。NightMend 的 MCP 能力

工具 1: get_servers_health  # 获取所有服务器实时健康状态工具 2: get_alerts          # 查询历史告警工具 3: search_logs         # 搜索生产日志工具 4: analyze_incident    # AI 驱动根因分析工具 5: get_topology        # 检索服务依赖拓扑图

实际使用场景

在 AI 编程助手聊天框中输入:"显示 prod-server-01 上的所有严重告警"AI 助手会自动调用 NightMend 的 MCP 接口,返回实时数据,并给出分析建议。

部署

# 1. 克隆仓库git clone https://github.com/LinChuang2008/nightmend.gitcd nightmend# 2. 配置密钥cp .env.example .env# 填入 DeepSeek API Key(必须)# 修改数据库密码和 JWT 密钥(生产环境必须)# 3. 启动docker compose up -d# 4. 访问浏览器打开 http://localhost:3001# 首次注册的账号自动成为管理员

部署耗时

  • 首次构建:15-30 分钟(构建镜像、初始化数据库)

  • 后续启动:2 分钟

主要功能模块

1. 仪表盘(Dashboard)

  • 健康评分:系统综合计算整体健康度(0-100 分),直观展示环境状态

  • 实时推送:通过 WebSocket 连接,指标数据实时刷新,无需手动刷新

  • 趋势图表:CPU、内存、磁盘、网络等关键指标的时序趋势图

2. 告警中心(Alerts)

支持三种告警规则:

  • 指标告警:如 CPU > 90% 持续 5 分钟

  • 日志关键字告警:如日志中出现 "OutOfMemory"

  • 数据库告警:如连接数 > 500、慢查询数量 > 10

核心亮点:

  • AI 根因分析:点击告警条目的「AI 分析」按钮,系统自动返回根因和建议操作

  • 告警降噪:配置冷却期,同一告警在 10 分钟内不重复发送

  • 多渠道通知:钉钉、飞书、企业微信、邮件、Slack、Telegram、Webhook

3. 服务拓扑图(Topology)

  • 力导向布局:基于物理模拟的自由布局,节点自动排列

  • 分层布局:按依赖层级从上到下排列,层次清晰

  • AI 建议依赖:基于流量和日志数据,AI 自动推荐可能的服务依赖关系

4. 数据库监控(Databases)

支持 PostgreSQL、MySQL、Oracle 等主流数据库,展示:

  • 连接数、QPS、TPS、缓冲区命中率

  • 慢查询 Top 10(包含 SQL 语句和优化建议)

  • 趋势图表:连接数、QPS 等指标时序趋势

5. 运维报告(Reports)

自动生成日报、周报、月报,内容包括:

  • 监控概览:服务器/服务的整体健康状态

  • 告警统计:告警数量、分布、处理时效

  • 可用性报告:各服务的可用率统计

  • 性能趋势:关键指标趋势分析

  • AI 分析摘要:期间的 AI 洞察和建议

6. SLA 管理

  • 为每个服务定义 SLA 目标(如 99.9%)

  • 系统自动计算实际可用性

  • 基于 SLA 目标计算错误预算

  • 预算消耗速度预警

  • 当可用性低于 SLA 目标时自动检测并记录违规

总结

风险提示

  • 项目处于早期阶段,生产环境使用前务必充分测试

GitHub

https://github.com/LinChuang2008/nightmend