MySQL 一键巡检工具:完整源代码开源发布

张开发
2026/4/9 8:37:28 15 分钟阅读

分享文章

MySQL 一键巡检工具:完整源代码开源发布
一、工具简介本工具是一款面向 MySQL 数据库的自动化健康巡检与报告生成工具。它通过连接数据库执行预定义的巡检 SQL 语句并结合操作系统层面的资源监控支持本地及 SSH 远程采集生成一份格式规范、内容详尽的 Microsoft Word 巡检报告。报告内容涵盖系统资源、数据库配置、性能状态、安全信息及风险建议旨在帮助 DBA 和运维人员快速掌握数据库运行状况。二、主要功能全面的数据库指标采集连接与会话最大连接数、当前连接数、异常连接统计、交互超时设置等。内存与缓存InnoDB 缓冲池大小、排序/连接缓冲区、线程缓存等。日志与存储Binlog 保留天数、慢查询日志状态、InnoDB 日志文件大小及刷新策略。性能与锁总查询数QPS 参考、表锁立即获取与等待次数。数据库对象各库占用空间数据索引、当前运行进程列表。安全与用户数据库用户清单、权限概要、认证插件及锁定状态。实例状态版本信息、实例启动时间、编译平台。操作系统资源监控CPU 信息使用率、物理/逻辑核心数、当前频率。内存信息总内存、已用内存、可用内存、使用率。磁盘信息各挂载点容量及使用率。灵活采集方式若巡检 MySQL 所在的主机可直接采集本地信息若巡检远程服务器支持通过 SSH 协议密码或密钥认证远程收集系统资源数据。智能风险分析与建议自动根据采集到的阈值如连接数使用率超过80%、磁盘使用率超过90%、内存使用率过高等生成风险项。每条风险包含风险等级、详细描述、处理优先级及建议负责人辅助运维排障。两种巡检模式单机巡检通过交互式问答输入数据库连接信息及可选的 SSH 信息快速生成单台数据库的报告。批量巡检基于 Excel 模板配置多台数据库信息一键批量生成所有实例的巡检报告极大提升大规模巡检效率。专业的 Word 报告输出报告采用预设的专业模板排版清晰包含封面、目录结构、数据表格及结论建议。文件自动以“数据库标签 时间戳”命名便于归档与管理。许可证管理内置长期试用许可证开箱即用无需额外激活步骤。三、环境要求与准备工作操作系统支持 Linux、macOS 及 Windows部分系统采集功能在 Windows 下有所简化建议在 Linux 环境下使用以获得最佳效果。Python 版本Python 3.6 及以上版本。依赖包安装运行工具前请确保已安装必要的 Python 第三方库主要包括pymysql、python-docx、docxtpl、paramiko、psutil、openpyxl等。MySQL 权限用于巡检的数据库账户需要具备查询information_schema、performance_schema以及mysql系统库相关表的权限。建议授予只读权限以保证安全。SSH 权限可选若需采集远程主机的系统信息请确保提供的 SSH 账户能够正常登录并执行基本系统命令如top、free、df、lscpu等。四、使用说明1. 启动程序在终端或命令行中执行主脚本程序将显示主菜单提供四个选项1单机巡检2批量巡检从 Excel 导入3创建 Excel 配置模板4退出2. 单机巡检模式选择菜单1后根据提示依次输入MySQL 连接信息主机、端口、用户名、密码、数据库标签用于报告命名。SSH 连接信息可选若需采集系统资源按提示输入 SSH 主机、端口、用户名及认证方式密码或密钥文件。若不配置将仅采集数据库内部指标。程序将自动连接验证、执行巡检并生成 Word 报告报告默认保存在程序所在目录下的reports文件夹中。3. 批量巡检模式步骤一创建 Excel 配置模板首次使用批量功能时选择菜单3生成一个名为mysql_batch_template.xlsx的配置文件模板。该模板包含详细的表头说明和示例数据。步骤二填写模板打开 Excel 模板在“MySQL数据库配置”工作表中逐行填写需要巡检的数据库信息包括数据库标签、连接信息以及可选的 SSH 信息。填写完毕后保存文件。步骤三执行批量巡检选择菜单2程序将自动读取模板中的所有有效配置并依次对每个实例执行巡检最终在reports目录下生成对应的 Word 报告文件。4. 报告查看生成的 Word 报告可直接使用 Microsoft Word 或 WPS 等软件打开。报告结构包括封面展示数据库基本信息、巡检人员及报告时间。健康状态概览总体评级及发现问题数量。系统资源检查CPU、内存、磁盘的详细指标。MySQL 配置检查连接、内存、日志相关的关键参数。性能分析QPS 参考、锁信息、异常连接。数据库信息各库大小、当前活跃进程。安全信息数据库用户列表。风险与建议自动分析出的潜在问题及优化方向。五、常见问题与注意事项报告内容较少、缺失部分表格若生成的报告仅包含基础信息而缺失数据库大小、进程列表、用户列表等内容通常是由于模板渲染兼容性问题自动切换到了备用渲染模式。此时备用模式会生成一份包含所有关键数据的详细报告内容完整不影响使用。连接数据库失败请检查 MySQL 服务器是否允许远程连接用户是否有相应权限。确认防火墙及安全组规则是否放行 MySQL 端口。系统信息采集失败若使用 SSH 远程采集请确保 SSH 服务正常运行且提供的用户名密码或密钥正确。部分精简版 Linux 系统可能缺少lscpu或top命令导致部分 CPU 信息显示为“未获取”这属于正常情况。密码安全Excel 模板中的密码以明文形式存储请务必妥善保管配置文件建议使用完毕后及时归档或删除。生产环境推荐使用密钥方式进行 SSH 认证。报告生成位置所有报告默认输出至工具所在目录下的reports子文件夹中。若该文件夹不存在程序会自动创建。风险建议仅供参考工具内置的风险判断阈值基于通用最佳实践实际业务场景中请结合具体负载情况进行综合评估。代码地址https://github.com/Zhh9126/MySQLDBCHECK.git欢迎大家star⭐!同时也欢迎大家优化继续完善。

更多文章