核心用法
Self Monitor 是一套面向 AI Agent 和运维人员的主动式基础设施监控方案,通过标准 Shell 命令实现对 Linux/Unix 系统的全方位健康检查。核心功能分为四大模块:
1. 基础设施监控:通过 df、free、uptime、ps 等原生工具采集磁盘使用率(警告 80%/危急 90%)、内存占用(警告 85%/危急 95%)、负载平均值(警告 2.0/危急 4.0)及 TOP 进程排序。
2. 服务健康检查:支持多种检测方式——pgrep 进程检测、curl HTTP 端点探测、systemctl systemd 服务状态、docker ps 容器存活检查,以及 Tailscale 网络状态监控。
3. 定时任务监控:通过解析 /var/log/syslog 中的 CRON 日志,统计近 24 小时失败次数并生成执行报告。
4. 错误日志聚合:利用 journalctl 系统日志、tail 应用日志及 dmesg 内核消息进行多源错误扫描。
自动修复机制在检测到危急状态时触发:磁盘超限时清理 7 天以上日志与缓存;关键进程失联尝试重启;内存爆满时输出 TOP 进程清单辅助诊断。所有操作均通过纯 Shell 实现,零依赖部署。
显著优点
- 零依赖轻量:仅依赖系统预装工具(awk、grep、curl 等),无需额外安装监控 Agent
- 即插即用:提供可直接嵌入 crontab 的快速健康检查脚本
- 多平台兼容:明确支持 Claude Code、Codex CLI、Cursor、Windsurf 等主流 AI 编码工具
- 结构化报告:输出 Markdown 格式的标准化监控报表,便于 Agent 解析与归档
- 安全自动修复:内置保守策略(仅清理过期临时文件),避免误删风险
局限与注意事项
- 阈值硬编码:警告/危急阈值在文档中固定,未提供动态配置机制
- 单节点视角:设计为单机监控,无分布式集群状态聚合能力
- 日志路径假设:CRON 日志默认读取
/var/log/syslog,部分发行版(如使用rsyslog或systemd纯journald)需手动适配 - 权限敏感:部分检查(如
journalctl -p err、systemctl)需要适当权限,在受限容器中可能失效 - HTTP 探测简单:仅检查状态码,未涵盖响应内容校验、SSL 证书有效期等进阶场景
适用人群
- 个人开发者维护云服务器/VPS 的日常健康巡检
- AI Agent 实现"自感知"基础设施状态,辅助故障诊断
- 中小规模项目(单机或少量节点)替代重量级监控栈(如 Prometheus+Grafana)
- CI/CD 流水线中的部署前环境健康预检
常规风险提示
| 风险场景 | 说明 | 建议 |
|---------|------|------|
| 误删数据 | 自动清理日志/缓存时可能误触业务文件 | 部署前审核 `find` 路径范围,生产环境关闭自动删除 |
| 权限不足 | 容器内运行可能无法访问宿主机资源 | 调整容器特权或改用宿主机 Agent 模式 |
| 告警疲劳 | 阈值设置不当导致频繁通知 | 根据实际负载调整阈值,避免使用固定数值 |
| 日志缺失 | 依赖的日志文件轮转或权限变更 | 配置日志集中采集(如 `journald` 持久化)作为兜底 |