name: db-monitor description: | 数据库健康监控,支持健康检查、异常检测、容量预测、趋势分析、基线对比。
智能数据源选择:
- Oracle 数据库自动使用 Zabbix 监控
- MySQL 数据库优先使用直连,其次使用 Prometheus
- 支持 Z 系列资产组(如 Z18, Z5)自动识别
使用场景:
- 用户说"检查健康" -> 执行 health
- 用户说"有异常吗" -> 执行 anomalies
- 用户说"容量够吗" -> 执行 capacity
- 用户说"采集指标" -> 执行 collect
- 用户说"看历史" -> 执行 history
- 用户说"高级容量预测" -> 执行 capacity-advanced
- 用户说"趋势分析" -> 执行 trend
- 用户说"基线对比" -> 执行 compare
用法:
- python -m dbskiter --output-mode=ai --database= monitor health
- python -m dbskiter --output-mode=ai --database= monitor anomalies
- python -m dbskiter --output-mode=ai --database= monitor capacity --resource=disk
- python -m dbskiter --output-mode=ai --database= monitor collect
- python -m dbskiter --output-mode=ai --database= monitor history
- python -m dbskiter --output-mode=ai --database= monitor capacity-advanced --resource=disk
- python -m dbskiter --output-mode=ai --database= monitor trend --metric=cpu_usage
- python -m dbskiter --output-mode=ai --database= monitor compare --metric=qps --value=1250 --baseline=2026-04-01
数据库监控 Skill
安全原则
本Skill的所有操作均为只读查询,不会修改任何数据:
| 规则 | 说明 |
|---|---|
| 只读操作 | 监控命令只执行SELECT/SHOW等查询操作 |
| 禁止写操作 | 不得通过监控命令执行DELETE/UPDATE/INSERT/DROP等写操作 |
| 容量预测仅供参考 | capacity预测结果不自动触发扩容操作 |
智能数据源选择
系统会根据 --database 参数自动选择最优数据源:
| 数据库类型 | 识别规则 | 数据源优先级 |
|---|---|---|
| Oracle | Z 系列资产组(Z18, Z5等)或 KF 系列 | Zabbix |
| MySQL | 其他名称 | 直连数据库 > Prometheus |
| SQL Server | 其他名称 | 直连数据库 > Prometheus |
示例:
# Oracle 数据库(自动使用 Zabbix)
python -m dbskiter --output-mode=ai --database=Z18 monitor health
python -m dbskiter --output-mode=ai --database=Z5 monitor capacity --resource=disk
# MySQL 数据库(优先直连,其次 Prometheus)
python -m dbskiter --output-mode=ai --database=jump monitor health
python -m dbskiter --output-mode=ai --database=prod monitor anomalies
# SQL Server 数据库(优先直连)
python -m dbskiter --output-mode=ai --database=mssql monitor health
python -m dbskiter --output-mode=ai --database=mssql monitor capacity --resource=disk
数据库支持
| 数据库 | 健康检查 | 异常检测 | 容量预测 | 指标采集 | 状态 |
|---|---|---|---|---|---|
| MySQL | 支持 | 支持 | 支持 | 支持 | 生产就绪 |
| Oracle | 支持 | 支持 | 支持 | 支持 | 生产就绪 |
| PostgreSQL | 支持 | 支持 | 支持 | 支持 | 生产就绪 |
| SQL Server | 支持 | 支持 | 支持 | 支持 | 生产就绪 |
| ClickHouse | 支持 | 支持 | 支持 | 支持 | 生产就绪 |
| SQLite | 支持 | 支持 | 支持 | 支持 | 生产就绪 |
SQLite 特有指标:
- 存储:数据库文件大小、空闲页面数
- 缓存:缓存大小(页面数)
- 配置:日志模式(journal_mode)、同步模式(synchronous)
- 文件:WAL文件大小
ClickHouse 特有指标:
- 吞吐量:QPS(基于query_log)、查询类型分布
- 连接:活跃连接数(system.processes)
- 查询性能:慢查询数、平均/最大查询时间
- 资源:内存使用(system.processes)
- MergeTree:活跃parts数、总行数、数据大小
- 复制:复制队列大小、复制延迟(Replicated表)
SQL Server 特有指标:
- 吞吐量:Batch Requests/sec, Transactions/sec
- 连接:User Connections, Active Sessions
- 查询性能:Cache Hit Ratio, Compilations/sec
- 锁:Lock Waits/sec, Lock Timeouts/sec
- 缓冲:Buffer Cache Hit Ratio, Page Life Expectancy
- IO:Disk Read/Write Latency, IO Stalls
- 内存:Memory Grants Pending, Target Server Memory
- 事务:Active Transactions, Oldest Transaction
何时使用
当用户提到以下关键词时,使用此skill:
| 用户说法 | 执行命令 | 说明 |
|---|---|---|
| "检查健康" | python -m dbskiter --output-mode=ai --database=<name> monitor health |
整体健康评分 |
| "批量检查健康" | python -m dbskiter --output-mode=ai monitor health-all |
检查所有数据库 |
| "有异常吗" | python -m dbskiter --output-mode=ai --database=<name> monitor anomalies |
检测异常指标 |
| "容量够吗" | python -m dbskiter --output-mode=ai --database=<name> monitor capacity |
容量预测 |
| "采集数据" | python -m dbskiter --output-mode=ai --database=<name> monitor collect |
采集当前指标 |
| "看历史" | python -m dbskiter --output-mode=ai --database=<name> monitor history <指标> |
查看指标历史 |
| "高级容量预测" | python -m dbskiter --output-mode=ai --database=<name> monitor capacity-advanced |
多算法容量预测 |
| "趋势分析" | python -m dbskiter --output-mode=ai --database=<name> monitor trend |
指标趋势分析 |
| "基线对比" | python -m dbskiter --output-mode=ai --database=<name> monitor compare |
与历史基线对比 |
核心命令
1. 健康检查
python -m dbskiter --database=<数据库名> monitor health
功能:整体健康评分和状态检查
2. 批量健康检查
python -m dbskiter monitor health-all
功能:批量检查所有配置的数据库健康状态
3. 异常检测
python -m dbskiter --database=<数据库名> monitor anomalies
功能:检测异常指标
可选参数:
--hours:检测时间范围(小时,默认1)
4. 容量预测
python -m dbskiter --database=<数据库名> monitor capacity --resource=disk
功能:预测资源容量使用情况
可选参数:
--resource:资源类型(disk/memory/connections,默认disk)--days:预测天数(默认30)--source:数据来源(auto/prometheus/zabbix/internal,默认auto)
5. 指标采集
python -m dbskiter --database=<数据库名> monitor collect
功能:采集当前指标数据
可选参数:
--metrics:指定指标(逗号分隔)--source:数据来源(auto/prometheus/zabbix/internal,默认auto)
6. 历史查询
python -m dbskiter --database=<数据库名> monitor history cpu_usage
功能:查看指标历史数据
参数:
metric(必需):指标名称
可选参数:
--hours:查询小时数(默认24)
7. 高级容量预测
python -m dbskiter --database=<数据库名> monitor capacity-advanced --resource=disk
功能:使用多算法进行更精确的容量预测
可选参数:
--resource:资源类型(disk/memory/connections/cpu/qps,默认disk)--days:预测天数(默认30)
输出示例:
{
"algorithm": "linear_regression",
"confidence": 0.85,
"predictions": {
"7d": 68.5,
"30d": 75.2,
"90d": 88.5
},
"days_to_threshold": 45,
"recommendation": "建议在45天内扩容"
}
8. 趋势分析
python -m dbskiter --database=<数据库名> monitor trend --metric=cpu_usage
功能:分析指标变化趋势
参数:
--metric(必需):指标名称
可选参数:
--days:分析天数(默认7)
输出示例:
{
"trend_direction": "degrading",
"current_value": 75.5,
"historical_avg": 65.2,
"change_percent": 15.8,
"recommendation": "CPU使用率呈恶化趋势,建议关注"
}
9. 基线对比
python -m dbskiter --database=<数据库名> monitor compare --metric=qps --value=1250 --baseline=2026-04-01
功能:对比当前性能与历史基线
参数:
--metric(必需):指标名称--value(必需):当前值--baseline(必需):基线日期(YYYY-MM-DD格式)
输出示例:
{
"current_value": 1250,
"baseline_value": 1000,
"change_percent": 25.0,
"severity": "normal",
"message": "QPS较基线上升25.0%,在正常范围内"
}
AI决策流程
场景1:用户说"检查数据库健康"
步骤1:执行 python -m dbskiter --database=<name> monitor health
步骤2:解读健康评分和各项指标
步骤3:如果有异常,建议执行 diagnose realtime 进一步诊断
场景2:用户说"容量够吗"
步骤1:执行 python -m dbskiter --database=<name> monitor capacity
步骤2:查看容量预测结果
步骤3:如果预测短期内将满,建议扩容
场景3:用户说"看看CPU趋势"
步骤1:执行 python -m dbskiter --database=<name> monitor trend --metric=cpu_usage --days=7
步骤2:分析趋势方向和变化幅度
步骤3:给出趋势解读和建议