# 运维智能巡检技能

## 技能描述
这是一个全面的运维智能巡检系统，支持多层级的自动化巡检，包括基础资源、中间件、容器平台、日志、业务指标等多个维度。系统会自动检测目标环境中已安装的软件和服务，仅对存在的组件进行真实巡检。

## 巡检层级

### 第一层：基础资源巡检（真实巡检）
检查如下资源：
- **CPU**: 使用率、核心数、负载
- **内存**: 使用率、Swap使用率
- **磁盘**: 所有挂载点的使用率
- **网络**: 连接数、TIME_WAIT、流量统计
- **Inode**: 所有挂载点的inode使用率
- **系统负载**: 1/5/15分钟平均负载

异常判断标准：
- P1（严重）：
  - CPU > 95% 持续15分钟
  - 内存使用率 > 95%
  - 磁盘使用率 > 95%
  - Inode使用率 > 95%
  
- P2（警告）：
  - CPU > 85% 持续15分钟
  - 内存使用率 > 85%
  - 磁盘使用率 > 85%
  - Inode使用率 > 85%
  - Load > CPU核数 × 2
  - TIME_WAIT连接 > 1000

### 第二层：中间件巡检（真实巡检）
自动检测并巡检以下中间件：

#### Redis检查
- 连接数使用率
- 慢查询数量
- 内存碎片率
- 主从同步状态
- Key数量增长趋势

异常条件：
- 主从断开
- 连接数 > 80%
- 慢查询 > 100次/分钟
- 内存碎片率 > 1.5

#### MySQL/MariaDB检查
- QPS（每秒查询数）
- TPS（每秒事务数）
- 慢SQL数量
- 主从延迟
- 连接池使用率

异常条件：
- 主从延迟 > 60秒
- 慢SQL > 50条
- 连接数 > 90%

#### Kafka检查
- Broker状态
- ISR数量
- Consumer Lag

异常条件：
- Broker Down
- ISR减少
- Lag > 100000

#### MongoDB检查
- 连接数
- 复制集状态
- 慢查询
- 内存使用

#### PostgreSQL检查
- 连接数
- 慢查询
- 复制延迟
- 锁等待

#### Elasticsearch检查
- 集群健康状态（green/yellow/red）
- 节点数量
- 分片状态
- 索引大小

异常条件：
- 集群状态 red（P1）
- 集群状态 yellow（P2）

#### RabbitMQ检查
- 队列堆积
- 连接数
- 消息吞吐量

#### Nginx检查
- 配置语法检查
- 进程状态
- 连接数

#### Tomcat检查
- JVM堆内存使用
- 线程池状态
- 请求处理时间

### 第三层：容器平台巡检（真实/模拟）
#### Kubernetes检查
- Node状态（Ready/NotReady/MemoryPressure/DiskPressure）
- Pod状态（Running/Pending/CrashLoopBackOff/OOMKilled/ImagePullBackOff）
- Deployment状态（Ready副本数/Available副本数）
- DaemonSet状态
- Ingress状态
- Event分析（Warning事件）
- 集群资源使用率

异常条件：
- Node NotReady持续 > 5分钟
- CrashLoopBackOff
- OOMKilled
- ImagePullBackOff
- RestartCount > 10
- Ready副本数不足
- CPU/内存利用率 > 85%

#### Docker检查
- 容器运行状态
- 镜像大小
- 容器资源使用
- 网络配置

### 第四层：日志巡检（真实/模拟）
支持多种日志源：
- Elasticsearch
- Loki
- 本地日志文件
- systemd journal

检查项：
- ERROR日志数量
- WARN日志数量
- FATAL日志
- 异常堆栈（NullPointerException、TimeoutException等）
- OOM异常
- 数据库连接失败
- 服务不可用错误
- 调用超时

异常条件：
- ERROR增长超过300%
- 同类异常超过100次
- 出现OOM
- 出现数据库连接失败
- 出现服务不可用

关联分析：
- 结合CPU、内存、K8S Event、网络指标分析根因

### 第五层：业务巡检（真实/模拟）
业务指标检查：
- 订单成功率
- 支付成功率
- 库存同步延迟
- 接口成功率
- 接口响应时间（P99）
- 消息消费延迟
- 用户登录成功率

异常条件：
- 订单成功率 < 99%
- 支付成功率 < 99.5%
- 接口成功率 < 99%
- P99响应时间 > 2秒
- 库存同步延迟 > 30秒
- 消息堆积 > 10000
- 登录失败率 > 5%

### 第六层：安全巡检（扩展）
#### 系统安全
- SSH配置检查
- 防火墙状态
- SELinux状态
- 开放端口扫描
- 弱密码检查
- sudo配置
- 用户权限检查

#### 应用安全
- SSL证书有效期
- 敏感信息泄露检查
- 日志脱敏检查
- API密钥轮换检查

#### 漏洞检查
- 系统包漏洞扫描
- Docker镜像漏洞扫描
- 依赖包漏洞检查

### 第七层：配置管理巡检（扩展）
#### 配置文件检查
- 配置文件语法检查
- 配置备份检查
- 配置版本控制检查
- 配置一致性检查

#### 服务配置检查
- 服务自动启动配置
- 日志轮转配置
- 监控配置
- 告警配置

### 第八层：性能巡检（扩展）
#### 应用性能
- 接口响应时间分布
- 数据库查询性能
- 缓存命中率
- 连接池使用情况

#### 系统性能
- IOPS
- 磁盘吞吐量
- 网络带宽使用
- 进程CPU使用TOP10
- 进程内存使用TOP10

### 第九层：容量规划巡检（扩展）
#### 资源容量
- CPU容量趋势
- 内存容量趋势
- 磁盘容量趋势
- 网络带宽趋势

#### 业务容量
- 用户增长趋势
- 数据增长趋势
- 流量增长趋势

### 第十层：灾备巡检（扩展）
#### 备份检查
- 备份任务执行状态
- 备份文件完整性
- 备份保留策略
- 备份存储空间

#### 恢复能力
- 恢复演练记录
- RTO/RPO达标情况
- 容灾切换演练

## 输出格式

### 标准输出格式
```
资源名称：[资源名称]
当前值：[当前值]
阈值：[异常判断阈值]
状态：[正常/警告/严重]
风险等级：[P1/P2/P3/正常]
原因分析：[问题分析]
处理建议：[建议措施]
```

### 巡检报告
- 巡检时间
- 主机信息
- 各层级巡检结果
- 问题汇总
- 总体健康评分（0-100分）
- 风险等级统计
- 处理建议优先级列表

## 使用方法

### 执行完整巡检
```bash
python3 intelligent_inspection.py
```

### 导出JSON报告
```bash
python3 intelligent_inspection.py --export
```

### 指定巡检层级
```bash
python3 intelligent_inspection.py --layers resource middleware
```

### 指定报告格式
```bash
python3 intelligent_inspection.py --export --format json
```

## 智能特性

### 自动检测
系统会自动检测目标环境中已安装的软件和服务，仅对存在的组件进行巡检。未安装的组件会标记为"跳过"。

### 智能分析
- 关联分析：结合多个维度的数据进行根因分析
- 趋势分析：分析指标的变化趋势
- 异常检测：自动识别异常模式
- 历史匹配：匹配历史相似故障

### 风险评估
- P1级别：核心功能不可用，需要立即处理
- P2级别：功能受损或存在风险，需要尽快处理
- P3级别：存在潜在问题，建议处理

## 依赖要求

### 核心依赖
- Python 3.7+
- psutil：系统资源监控
- requests：HTTP请求（可选，用于Elasticsearch检查）

### 可选依赖
根据需要巡检的组件，可能需要：
- redis-cli：Redis巡检
- mysql/mariadb客户端：MySQL巡检
- kubectl：Kubernetes巡检
- docker：Docker巡检
- mongo/mongosh：MongoDB巡检
- psql：PostgreSQL巡检
- rabbitmqctl：RabbitMQ巡检

## 扩展开发

### 添加新的巡检项
继承`BaseInspection`类，实现`inspect()`方法：

```python
class CustomInspection(BaseInspection):
    def __init__(self):
        super().__init__()
        self.layer_name = "自定义巡检"
    
    def inspect(self) -> InspectionResult:
        # 实现巡检逻辑
        self.add_item(InspectionItem(...))
        return InspectionResult(...)
```

### 自定义异常判断
在`_check_*`方法中实现自定义的异常判断逻辑。

### 集成外部数据源
可以通过MCP、API等方式集成外部数据源，如Prometheus、Grafana、ELK等。

## 最佳实践

### 巡检频率
- 基础资源巡检：每5-15分钟
- 中间件巡检：每30-60分钟
- K8S巡检：每10-30分钟
- 日志巡检：每30分钟
- 业务巡检：每5-10分钟
- 安全巡检：每天
- 配置巡检：每周
- 性能巡检：每小时
- 容量巡检：每周
- 灾备巡检：每月

### 告警配置
根据巡检结果配置告警：
- P1级别：立即通知（电话、短信）
- P2级别：重要通知（企业微信、钉钉）
- P3级别：普通通知（邮件、工单）

### 报告存档
- 日报：每天生成并发送摘要
- 周报：每周生成详细报告
- 月报：每月生成趋势分析报告

## 注意事项

1. **权限要求**：部分巡检需要root权限或sudo权限
2. **性能影响**：巡检过程会消耗一定的系统资源，建议在业务低峰期执行
3. **网络依赖**：部分巡检需要网络连接，确保网络畅通
4. **数据安全**：巡检报告可能包含敏感信息，注意数据脱敏和访问控制
5. **存储空间**：历史报告会占用存储空间，定期清理

## 更新日志

### v1.0.0 (2026-06-04)
- 初始版本
- 支持5层基础巡检
- 支持自动检测已安装组件
- 支持JSON报告导出
