温馨提示×

SQLAdmin在CentOS中的数据库监控方法

小樊
42
2025-12-05 19:24:13
栏目: 云计算

在CentOS上部署SQLAdmin后,可按以下路径完成监控、告警与日常运维


一 安装与快速配置

  • 安装与启动
    • 更新系统并启用 EPEL:sudo yum update -y && sudo yum install -y epel-release
    • 安装 SQLAdmin:sudo yum install -y sqladmin
    • 启动并设置开机自启:sudo systemctl start sqladmin && sudo systemctl enable sqladmin
    • 检查状态:sudo systemctl status sqladmin
  • 连接与监控项
    • 配置文件路径:/etc/sqladmin/sqladmin.conf(按实际环境填写数据库主机、端口、用户名、密码等)
    • 在 Web 界面添加目标数据库,并在 Monitoring 中勾选需要监控的指标(如CPU、内存、磁盘空间等)
    • 在 Alerts 中新增告警规则(阈值、通知方式按需配置)
    • 完成后通过 Web 界面查看实时与历史监控数据

二 监控与告警落地

  • 自带监控与告警
    • 使用 SQLAdmin 的 Web 界面完成指标选择与阈值告警配置,便于快速上线与日常查看
  • 系统与服务可用性巡检
    • 服务存活检查脚本(示例):
      • /usr/local/bin/check_service.sh
        • #!/bin/bash
        • SERVICE=“sqladmin”
        • if [ “$(systemctl is-active $SERVICE)” != “active” ]; then
        • echo “Service $SERVICE is DOWN at $(date)” | mail -s “SQLAdmin Service Alert” admin@example.com
        • fi
    • 定时巡检:crontab -e 添加 0 * * * * /usr/local/bin/check_service.sh
  • 数据库连通性与进程检查
    • 使用 mysqladmin ping 检测数据库存活(示例):
      • if ! /usr/bin/mysqladmin -h 127.0.0.1 -u monitor -p’YOUR_PASS’ ping &>/dev/null; then
      • echo “MySQL is DOWN at $(date)” | mail -s “MySQL Alert” admin@example.com
      • fi
  • 可视化与指标扩展
    • 建议引入 Prometheus + Grafana 采集系统与数据库指标,在 Grafana 中配置阈值告警(如 CPU > 80% 持续 5 分钟),实现统一可视化与告警通道

三 安全与性能最佳实践

  • 账户与权限
    • 为监控与日常管理创建最小权限数据库账号,避免使用 root 执行日常操作;定期审计与回收不必要权限
  • SELinux 与防火墙
    • 不建议直接关闭 SELinux 或防火墙;按需放行 SQLAdmin 与数据库所需端口(如仅开放管理网段)
  • 系统与数据库参数
    • 适度优化内核与数据库参数(如文件句柄、swappiness、连接数、缓冲池等),并在测试环境验证后再上线生产
  • 日志与审计
    • 定期检查数据库错误日志(如 /var/log/mysqld.log),并结合监控平台设置异常趋势告警

四 备份与恢复

  • 自动备份脚本(示例)
    • /usr/local/bin/backup_sqladmin.sh
      • #!/bin/bash
      • BACKUP_DIR=“/backup”
      • DB_HOST=“127.0.0.1”
      • DB_USER=“backup”
      • DB_PASS=“YOUR_PASS”
      • DB_NAME=“mydb”
      • DATE=$(date +“%Y%m%d%H%M%S”)
      • BACKUP_FILE=“$BACKUP_DIR/${DB_NAME}-${DATE}.sql”
      • mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME > “$BACKUP_FILE” 2>> “$BACKUP_DIR/backup.log”
      • if [ $? -eq 0 ]; then
      • echo “$(date ‘+%F %T’) Backup succeeded: $BACKUP_FILE” >> “$BACKUP_DIR/backup.log”
      • else
      • echo “$(date ‘+%F %T’) Backup failed!” >> “$BACKUP_DIR/backup.log”
      • fi
  • 定时任务
    • 每天 02:00 执行:0 2 * * * /usr/local/bin/backup_sqladmin.sh
  • 验证与演练
    • 定期执行恢复演练,校验备份可用性与恢复流程有效性

五 常见问题排查清单

  • 服务无法启动:检查配置文件 /etc/sqladmin/sqladmin.conf 的数据库连通信息、日志输出与端口占用
  • 监控数据为空:确认被监控数据库账号权限充足、网络可达,且 SQLAdmin 已成功添加目标
  • 告警未触发:核对阈值条件、通知方式与执行频率;如使用外部监控,确认采集与告警规则已生效
  • 性能波动:结合错误日志、慢查询日志与系统指标,排查近期参数变更或业务高峰影响

0