在企业级服务器环境中,RockyLinux数据库监控是保障业务连续性的关键环节。当数据库出现异常(如连接数过高、CPU使用率飙升、磁盘空间不足等),若不能及时收到通知,可能会导致服务中断甚至数据丢失。本文将从零开始,教你在 RockyLinux 系统上为 MySQL 数据库配置一套简单有效的数据库告警设置方案,适合运维新手操作。
确保你已具备以下条件:
我们将使用 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_password 和 admin@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监控告警 系统。定期维护和优化你的监控策略,是保障数据库稳定运行的重要一环。
本文由主机测评网于2025-12-18发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025129479.html