当前位置:首页 > RockyLinux > 正文

RockyLinux数据库监控告警设置(手把手教你配置MySQL自动告警)

在企业级服务器环境中,RockyLinux数据库监控是保障业务连续性的关键环节。当数据库出现异常(如连接数过高、CPU使用率飙升、磁盘空间不足等),若不能及时收到通知,可能会导致服务中断甚至数据丢失。本文将从零开始,教你在 RockyLinux 系统上为 MySQL 数据库配置一套简单有效的数据库告警设置方案,适合运维新手操作。

RockyLinux数据库监控告警设置(手把手教你配置MySQL自动告警) RockyLinux数据库监控 数据库告警设置 RockyLinux系统运维 MySQL监控告警 第1张

一、准备工作

确保你已具备以下条件:

  • 一台运行 RockyLinux 8/9 的服务器
  • 已安装并运行 MySQL 或 MariaDB 数据库
  • 拥有 root 或 sudo 权限
  • 能发送邮件(用于接收告警通知)

二、安装必要的工具

我们将使用 bc(用于数值计算)、mailx(用于发送邮件)和简单的 Shell 脚本实现监控。

# 安装依赖工具sudo dnf install -y bc mailx# 如果使用 Gmail 或其他 SMTP 服务,建议配置 ssmtp 或 postfixsudo dnf install -y postfixsudo systemctl enable --now postfix  

三、编写数据库监控脚本

创建一个名为 mysql_monitor.sh 的脚本,用于检查数据库状态并触发告警。

#!/bin/bash# 配置项MYSQL_USER="root"MYSQL_PASS="your_mysql_password"ALERT_EMAIL="admin@example.com"MAX_CONNECTIONS=100MIN_FREE_SPACE_GB=5# 获取当前连接数CURRENT_CONNS=$(mysql -u$MYSQL_USER -p$MYSQL_PASS -e "SHOW STATUS LIKE 'Threads_connected';" | awk 'NR==2 {print $2}')# 获取磁盘剩余空间(假设 MySQL 数据目录在 /var/lib/mysql)FREE_SPACE_GB=$(df -BG /var/lib/mysql | awk 'NR==2 {gsub(/G/, "", $4); print $4}')# 检查连接数是否超标if [ "$CURRENT_CONNS" -gt "$MAX_CONNECTIONS" ]; then    echo "[告警] MySQL 当前连接数: $CURRENT_CONNS,超过阈值 $MAX_CONNECTIONS" | \    mail -s "【RockyLinux数据库监控】连接数过高告警" $ALERT_EMAILfi# 检查磁盘空间是否不足if [ "$FREE_SPACE_GB" -lt "$MIN_FREE_SPACE_GB" ]; then    echo "[告警] MySQL 数据目录剩余空间仅 ${FREE_SPACE_GB}GB,低于安全阈值 ${MIN_FREE_SPACE_GB}GB" | \    mail -s "【RockyLinux数据库监控】磁盘空间不足告警" $ALERT_EMAILfi  

⚠️ 注意:请将 your_mysql_passwordadmin@example.com 替换为你自己的密码和邮箱地址。出于安全考虑,建议使用 MySQL 配置文件(如 ~/.my.cnf)来避免密码明文出现在脚本中。

四、设置定时任务

使用 cron 每5分钟执行一次监控脚本:

# 编辑当前用户的 crontabcrontab -e# 添加以下行(每5分钟执行一次)*/5 * * * * /bin/bash /opt/scripts/mysql_monitor.sh >> /var/log/mysql_monitor.log 2>&1  

确保脚本有执行权限:

sudo chmod +x /opt/scripts/mysql_monitor.sh

五、测试与验证

手动运行脚本,确认无报错:

/bin/bash /opt/scripts/mysql_monitor.sh  

同时检查日志文件 /var/log/mysql_monitor.log 是否有输出。如果配置了邮件服务,模拟一次高连接数场景(或临时调低阈值),看是否能收到告警邮件。

六、进阶建议

对于生产环境,建议采用更专业的监控工具如 Prometheus + Grafana + mysqld_exporter,或使用 Zabbix。但对于小型项目或学习目的,上述 Shell 脚本方案轻量、高效且易于理解,非常适合 RockyLinux系统运维 初学者掌握核心监控逻辑。

通过本文的步骤,你已经成功搭建了一套基础但实用的 MySQL监控告警 系统。定期维护和优化你的监控策略,是保障数据库稳定运行的重要一环。