系统巡检 - 全面系统健康度检查技能
概述
这是一个全面的系统巡检技能,能够检查服务器的硬件资源、网络安全、系统服务、安全状态等多个维度,生成系统健康度报告。基于Azure云环境和Linux系统运维标准,结合平台特性和系统运维标准。现在还包括Azure实例元数据检查和详细的错误日志分析。
功能特性
- •☁️ Azure实例信息: 位置、规格、资源组等云环境信息
- •🖥️ 系统信息: 主机名、内核版本、运行时间、负载(1/5/15分钟平均)
- •📊 硬件资源: CPU、内存、交换区、多分区磁盘使用情况
- •🗂️ Inode使用: 根分区、家目录等关键分区的Inode使用率
- •🔗 网络状态: 连接数、SSH会话、网络活动
- •🏃♂️ 进程服务: 进程数量、系统服务、Docker容器状态
- •🔒 安全状态: 登录活动、Fail2Ban、防火墙状态、OpenClaw状态
- •📈 系统健康指标: 负载、资源使用率、系统错误日志、常见错误TOP3、磁盘I/O错误
- •📊 健康评分: 综合评分系统(0-100分)
包含的脚本
1. system-overview.sh
- •功能: 全面系统巡检,生成健康度报告
- •数据源: 系统指标、安全日志、服务状态、系统错误日志、Azure元数据
- •输出: 结构化的 Markdown 格式系统健康报告
- •评分: 基于多个因素的综合健康度评分
依赖项
- •sudo - 访问系统日志和服务状态
- •fail2ban-client - 检查 Fail2Ban 状态
- •ufw - 检查防火墙状态
- •systemd - 检查服务状态
- •docker - 检查容器状态(可选)
- •curl - 获取 Azure 元数据
- •jq - 解析 JSON 数据
使用方法
运行系统巡检
bash
bash /home/chengzh/clawd/skills/system-patrol/system-overview.sh
输出示例
报告包含以下板块:
- •系统健康度评分(0-100分)
- •Azure 实例信息(位置、规格、资源组)
- •系统信息概览(含负载详情)
- •硬件资源使用情况(含交换区、多分区)
- •Inode使用情况
- •网络连接状态
- •进程与服务状态(含Docker容器)
- •安全状态评估
- •系统健康指标(含错误日志统计和常见错误TOP3)
- •改进建议
健康度评分标准
- •CPU使用率: >80% 扣20分,>60% 扣10分
- •内存使用率: >85% 扣20分,>70% 扣10分
- •负载过高: 超过CPU核心数扣10分,超过2倍扣20分
- •磁盘使用率: >90% 扣20分,>80% 扣10分
- •/var分区: >90% 扣15分,>80% 扣5分
- •Inode使用率: >90% 扣15分,>80% 扣5分
- •交换区使用: >50% 扣15分,>20% 扣10分
- •攻击频率: >500次失败登录扣20分,>200次扣10分
- •系统错误: dmesg错误>10扣15分,>3扣5分
- •服务状态: Fail2Ban未运行扣15分,防火墙未启用扣10分
健康度等级
- •90-100分: 🟢 极佳 - 系统运行状态优秀
- •75-89分: 🟡 良好 - 系统运行状态良好
- •50-74分: 🟠 一般 - 系统运行基本正常
- •0-49分: 🔴 需要关注 - 系统需要关注
定时任务配置
可配置 cron 任务自动运行系统巡检:
bash
# 每天上午 9 点和晚上 9 点运行系统巡检 0 9,21 * * * bash /home/chengzh/clawd/skills/system-patrol/system-overview.sh
注意事项
- •需要 sudo 权限访问系统日志和服务状态
- •部分功能需要安装 fail2ban、ufw 和 jq
- •评分系统会根据多个因素动态调整
- •建议会根据当前系统状态给出针对性建议
- •支持 Azure 云环境和 Linux 系统运维标准
- •包含磁盘空间、inode、负载、内存、交换区等关键指标监控
- •自动检测 Azure 环境并显示实例元数据
- •显示最常见的3个错误日志以便快速诊断问题