需升级宝塔专业版,编写mysql指标采集脚本,配置定时任务触发阈值比对,集成微信/邮件告警,再部署清理机制避免重复告警。

如果您希望在宝塔面板中对MySQL服务实施更精细的运行状态感知,但默认监控仅提供基础连接数与CPU占用等有限指标,则需通过扩展方式接入自定义监控逻辑。以下是实现自定义MySQL监控指标预警系统的步骤:
一、启用宝塔专业版并安装数据库管理插件
宝塔免费版不支持自定义监控脚本调度与告警通道配置,必须升级至专业版以启用计划任务高级功能及邮件/微信告警模块。该步骤为后续所有自定义指标采集与触发的前提条件。
1、登录宝塔面板后台,进入【软件商店】页面。
2、搜索“数据库管理”,确认其状态为“已安装”,若未安装则点击安装。
3、在左侧菜单栏点击【宝塔设置】→【版本管理】,核对当前版本为“专业版”,如为免费版则需先完成授权绑定与升级。
二、编写MySQL指标采集Shell脚本
通过Shell脚本连接本地MySQL实例,执行SQL查询获取慢查询数、连接数超限比、InnoDB缓冲池命中率等关键指标,并将结果写入临时文件供后续判断使用。脚本需具备权限隔离与错误静默处理能力。
1、使用SSH登录服务器,在/www/server/panel/script/目录下新建文件mysql_custom_metrics.sh。
2、向文件中写入以下内容(请替换your_password为实际root密码):
3、执行chmod +x /www/server/panel/script/mysql_custom_metrics.sh赋予可执行权限。
三、配置定时任务触发指标采集与阈值比对
利用宝塔计划任务功能,以固定周期(如每5分钟)运行采集脚本,并在脚本内部嵌入阈值判断逻辑。当某项指标超出预设范围时,生成带时间戳的预警标记文件,作为告警触发依据。
1、进入宝塔面板【计划任务】页面,点击【添加计划任务】。
2、任务类型选择“Shell脚本”,执行周期设为“N分钟”,填写“5”。
3、脚本内容填写:/www/server/panel/script/mysql_custom_metrics.sh。
4、保存后确认任务状态为“正在运行”,并在日志中验证是否生成/tmp/mysql_alert_flag文件。
四、集成微信/邮件告警通道
宝塔专业版内置告警中心支持将外部标记文件变化映射为告警事件。需将预警标记文件路径注册进告警规则,并绑定已配置的微信机器人或SMTP邮箱,使指标越界时自动推送通知。
1、进入【宝塔设置】→【告警中心】→【添加告警规则】。
2、规则名称填写“MySQL自定义指标预警”,触发条件选择“文件存在”,路径填写/tmp/mysql_alert_flag。
3、在通知方式中勾选已配置的微信机器人或邮箱账户,并确保测试发送成功。
4、点击【启用】使该规则生效。
五、部署清理机制避免标记文件持续触发重复告警
预警标记文件一旦生成即持续满足“文件存在”条件,若无清理动作会导致同一事件被反复推送。因此必须配置独立清理任务,在告警发出后指定延迟时间内删除该文件,确保单次异常仅触发一次通知。
1、再次进入【计划任务】,新增一项任务。
2、任务类型选择“Shell脚本”,执行周期设为“N分钟”,填写“10”。
3、脚本内容填写:if [ -f "/tmp/mysql_alert_flag" ]; then rm -f /tmp/mysql_alert_flag; fi。
4、保存后确认该任务运行日志中出现“removed”字样,表明清理动作已执行。










