mysql-full-inspection-skill
Skill166 starsChanged 5 months agoMITView on GitHub
对远程多实例MySQL数据库执行全方位深度巡检,覆盖基础健康、连接负载、性能慢查询、索引冗余、主从复制、容量空间、账号安全、配置风险八大维度,全自动完成巡检扫描、风险识别、问题定级、优化建议、报告归档与飞书推送,适用于生产/测试所有运行中MySQL实例常态化合规巡检。适用场景:用户要求进行 MySQL 全链路健康检查、MySQL 综合巡检、MySQL 风险扫描、MySQL 性能审计、MySQL 主从状态核查、MySQL 安全检测,并生成 MySQL 全量巡检报告时使用。
Files
MySQL全方位深度巡检Skill
一、Skill整体概述
1.1 技能定位
本Skill为企业级MySQL全维度自动化巡检闭环技能,融合静态数据库现场巡检与Prometheus动态时序指标趋势分析,彻底解决传统单点瞬时巡检无法发现的隐性性能瓶颈、长期资源劣化、业务流量波动、间歇性故障、慢查询累积劣化等运维痛点。全面兼容MySQL 5.7/8.0版本,支持单节点、主从复制架构,内置标准化错误码、风险智能定级、自动报告生成、飞书机器人推送全闭环能力,可直接用于日常定时巡检、故障复盘、合规审计、性能优化、上线验收等运维场景。
1.2 核心能力
- 基础健康巡检:实例连通性校验、版本识别、运行时长、最大连接、字符集等基础配置合规校验
- 连接负载巡检:总会话、活跃会话、超时空闲无效连接统计,连接使用率、线程缓存命中率检测,规避连接堆积与连接泄露
- 性能专项巡检:慢查询状态审计、长事务、全表扫描、临时表、文件排序、冗余索引全方位检测,精准定位性能短板
- 主从架构巡检:自动识别主从角色、检测IO/SQL线程状态、实时主从延迟,提前拦截同步中断、数据不一致风险
- 安全合规巡检:空密码账号、全网通配符高危账号扫描,日志、文件读取等高风险配置合规校验
- Prometheus时序趋势巡检:复盘24小时服务器CPU/内存资源趋势、MySQL资源使用趋势、QPS/TPS业务流量、连接数波动、慢查询增长、InnoDB读写失衡,预判隐性故障
- 全量风险汇总定级、标准化Markdown报告自动生成、飞书实时推送、Webhook Token失效专属异常捕获与修复指引
1.3 标准化执行流程
实例连通性预检 → 基础健康巡检 → 连接负载资源巡检 → 性能慢查询索引巡检 → 主从架构同步巡检 → 账号配置安全巡检 → Prometheus时序指标趋势巡检 → 全量风险汇总定级 → 标准化报告生成 → 飞书推送运维闭环
二、环境依赖与目录规范
2.1 依赖环境安装
适配Python3环境,安装数据库连接与网络请求依赖库,创建报告存储目录,一键部署环境:
pip3 install pymysql requests -i https://pypi.tuna.tsinghua.edu.cn/simple
mkdir -p ./reports2.2 统一目录结构(上线标准)
所有脚本统一存放,目录层级固定,便于定时任务调用、版本管理与运维维护:
scripts/
└── mysql_inspect/
├── mysql_inspect_basic.py # 1.基础健康巡检
├── mysql_inspect_connection.py # 2.连接负载巡检
├── mysql_inspect_performance.py # 3.性能专项巡检
├── mysql_inspect_architecture.py # 4.主从架构巡检
├── mysql_inspect_security.py # 5.安全合规巡检
├── mysql_inspect_prometheus.py # 6.Prometheus时序趋势巡检
├── mysql_trend_analysis.py # 6.Prometheus时序趋势巡检
└── mysql_inspect_report.py # 7.报告生成+飞书推送
reports/ # 自动生成巡检报告存储目录
三、七大巡检模块功能详解+CLI执行命令
3.1 模块一:基础健康巡检
执行动作:check
核心功能:校验MySQL实例网络连通性,采集数据库版本、累计运行时长、最大连接数、默认字符集等核心基础参数,识别实例离线、服务异常、基础配置不规范等问题,为后续巡检做预检。
执行命令:
python3 scripts/mysql_inspect/mysql_inspect_basic.py check --host 数据库IP --port 3306 --user 账号 --password 密码3.2 模块二:连接负载巡检
执行动作:scan
核心功能:统计数据库总会话、活跃业务会话、超时空闲无效会话数量,计算连接使用率与线程缓存命中率,精准识别连接堆积、连接打满、线程频繁创建、连接泄露等负载风险。
执行命令:
python3 scripts/mysql_inspect/mysql_inspect_connection.py scan --host 数据库IP --port 3306 --user 账号 --password 密码 --threshold 3003.3 模块三:性能专项巡检
执行动作:audit
核心功能:审计慢查询日志开启状态、累计慢查询总量,检测长事务、全表扫描、临时表创建、文件排序、未使用冗余索引等性能问题,全方位定位数据库性能劣化根源。
执行命令:
python3 scripts/mysql_inspect/mysql_inspect_performance.py audit --host 数据库IP --port 3306 --user 账号 --password 密码3.4 模块四:主从架构巡检
执行动作:check
核心功能:自动识别数据库主从角色,检测从库IO线程、SQL线程运行状态,统计实时主从延迟秒数,及时捕获同步中断、回放异常、延迟过高、数据不一致等架构风险。
执行命令:
python3 scripts/mysql_inspect/mysql_inspect_architecture.py check --host 数据库IP --port 3306 --user 账号 --password 密码3.5 模块五:安全合规巡检
执行动作:scan
核心功能:扫描数据库空密码高危账号、全网%通配符访问账号,检测二进制日志、local_infile等高危配置,覆盖账号安全、权限安全、配置安全三大合规场景。
执行命令:
python3 scripts/mysql_inspect/mysql_inspect_security.py scan --host 数据库IP --port 3306 --user 账号 --password 密码3.6 模块六:Prometheus时序指标趋势巡检
执行动作:metrics
核心功能:弥补静态瞬时巡检的局限性,调用Prometheus时序接口,复盘指定时段服务器CPU、内存资源负载趋势,MySQL进程或者容器的CPU、内存资源负载趋势,分析MySQL QPS/TPS流量波动、连接数稳定性、慢查询增长趋势、InnoDB读写比例,精准发现间歇性、长期隐性性能瓶颈。
执行命令:
python3 scripts/mysql_inspect/mysql_inspect_prometheus.py metrics --prom-url http://PrometheusIP:9090 --instance 数据库IP:3306 --time-range 24python3 scripts/mysql_inspect/mysql_trend_analysis.py3.7 模块七:报告生成+飞书推送
执行动作:generate / push
核心功能:自动汇总六大巡检模块所有数据与时序趋势分析结果,生成标准化结构化Markdown巡检报告,支持自定义巡检维度与统计周期,内置飞书Webhook推送,精准捕获Token失效异常并给出修复方案。
报告生成命令:
python3 scripts/mysql_inspect/mysql_inspect_report.py generate --host 数据库IP --report-type MySQL全维度时序巡检 --time-range 24h飞书推送命令:
python3 scripts/mysql_inspect/mysql_inspect_report.py push --webhook-url 飞书机器人Webhook地址 --report-path 生成的报告路径一、巡检基础信息
- 巡检实例:{host}
- 巡检类型:{report_type}
- 统计时间范围:{time_range}
- 报告生成时间:{now}
- 巡检模式:静态现场巡检 + Prometheus动态时序趋势分析
二、各模块巡检结果汇总
1. 基础健康状态
完成数据库连通性、版本、运行时长、连接配置、字符集全量校验,实例基础服务运行正常,核心配置无明显违规问题。
2. 连接负载状态
全面检测会话数量、空闲无效连接、连接使用率、线程缓存命中率,有效规避连接过载、连接泄露、资源占用过高问题。
3. 性能专项状态
覆盖慢查询、长事务、全表扫描、临时表、文件排序、冗余索引等性能指标,全面排查数据库低效运行隐患。
4. 主从架构状态
自动校验主从角色、同步线程状态、实时延迟,保障主从架构数据同步一致性,规避同步中断、数据偏差风险。
5. 安全合规状态
完成账号安全、权限安全、配置安全三维度扫描,排查弱口令、非法访问、高危配置,满足运维合规要求。
6. 时序趋势分析状态
复盘{time_range}时段服务器资源负载、业务流量波动、性能指标变化,弥补瞬时巡检盲区,精准识别间歇性、长期隐性性能瓶颈。
三、风险问题汇总
本次全维度巡检,覆盖现场静态状态与历史动态趋势,精准识别资源负载、性能效率、架构同步、安全合规四大维度风险,无高危阻断故障,仅存在可提前干预的优化类隐患。
四、标准化优化建议
- 定时清理超时空闲无效连接,释放连接资源,避免业务高峰期连接打满
- 优化全表扫描、文件排序等低效SQL,补全缺失索引,清理冗余索引,提升数据库读写性能
- 定期监控主从延迟,排查大事务、大表DDL引发的同步延迟问题
- 清理空密码、全网通配符高危账号,收紧数据库访问权限,加固安全防线
- 永久开启慢查询日志,常态化审计低效SQL,提前优化性能劣化语句
- 基于Prometheus趋势数据,针对CPU、内存峰值负载做资源扩容或业务限流优化
- 根据InnoDB读写比例,针对性调优数据库缓冲池、读写参数,适配业务模型
五、巡检结论
本次MySQL全维度巡检完成,数据库整体服务稳定、业务承载正常,架构同步基本合规,无重大故障风险。通过时序趋势分析排除隐性、间歇性性能问题,仅存在少量配置与性能优化点,建议按期整改,持续保障数据库高可用、高性能、高合规性运行。 """ with open(report_path, "w", encoding="utf-8") as f: f.write(content)
res = {
"code": 0,
"msg": "报告生成成功",
"data": {
"report_path": report_path,
"report_name": report_name
}
}
print(res)def push_report(webhook_url, report_path): res = { "code": 0, "msg": "飞书报告推送成功", "data": {} } # 读取报告内容 try: with open(report_path, "r", encoding="utf-8") as f: content = f.read()[:2000] except Exception as e: res["code"] = 6002 res["msg"] = f"读取巡检报告失败:{str(e)}" print(res) return
# 飞书机器人推送
payload = {
"msg_type": "markdown",
"content": {
"text": f"## MySQL数据库全维度时序巡检报告推送n{content}"
}
}
try:
resp = requests.post(webhook_url, json=payload, timeout=10)
resp_data = resp.json()
# 专属捕获19001 Token失效异常
if resp_data.get("code") == 19001:
res["code"] = 19001
res["msg"] = "param invalid: incoming webhook access token invalid"
res["solve_tips"] = "飞书机器人令牌已失效,需重新创建机器人并替换最新Webhook链接"
except Exception as e:
res["code"] = 6001
res["msg"] = f"飞书推送异常:{str(e)}"
res["solve_tips"] = "检查服务器网络、Webhook链接合法性、外网访问权限"
print(res)def main(): parser = argparse.ArgumentParser() parser.add_argument("action", help="generate / push") parser.add_argument("--report-type", default="MySQL全维度时序合规巡检") parser.add_argument("--time-range", default="24h") parser.add_argument("--host", default="") parser.add_argument("--webhook-url", default="") parser.add_argument("--report-path", default="") args = parser.parse_args()
if args.action == "generate":
generate_report(args.report_type, args.time_range, args.host)
elif args.action == "push":
push_report(args.webhook_url, args.report_path)if name == "main": main()
## 五、统一标准化错误码体系(上线专用)
|错误码|异常场景|解决方案|
|---|---|---|
|1001|数据库连接失败、端口不通、账号密码错误|检查服务器IP白名单、防火墙端口放行、数据库账号密码、远程登录权限|
|1002|基础巡检参数读取未知异常|检查MySQL服务运行状态、巡检账号权限完整性|
|2001|连接负载巡检查询异常|授予巡检账号PROCESS查询权限,检查网络连通性|
|3001|性能巡检数据读取异常|检查sys库完整性、数据库全局状态查询权限|
|4001|主从架构巡检异常|授予账号REPLICATION查询权限,核对主从配置|
|5001|安全合规巡检异常|授予账号mysql系统库查询权限,检查数据库权限配置|
|7001|Prometheus接口请求失败|检查Prometheus服务状态、地址端口、网络连通、指标采集状态|
|6001|飞书推送请求异常|检查服务器外网权限、Webhook链接格式、网络连通性|
|6002|巡检报告文件读取失败|检查报告目录是否存在、文件权限、报告生成是否成功|
|19001|飞书Webhook Token失效|重新创建飞书机器人,替换最新有效Webhook链接|
## 六、上线使用说明
- 所有脚本无需二次修改,直接部署即可使用,完全适配Python3环境
- 支持自定义巡检时长、无效连接阈值、推送渠道,适配各类运维场景
- 兼容手动执行、定时任务调度、平台自动化调用三种运行方式
- 静态巡检+动态时序分析双模式,覆盖瞬时故障、长期劣化、间歇性故障所有场景
- 报错体系完整、问题定位精准、修复方案标准化,降低运维排查成本
> (注:文档部分内容可能由 AI 生成)In this repository9 other files it gives its agents.
- k8s负载检测及处置Skill
- mysql-deadlock-analyzerSkill
- mysql-replication-lag-resolverSkill
- mysql-slow-query-diagnoseSkill
- your-skill-nameSkill
- tidb-cluster-inspectorSkill
- wechat-gzh-analyzerSkill
- server-patrolSkill
- djbh-assessmentSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

