Debian MariaDB如何监控
小樊
45
2025-11-15 11:41:31
Debian 上 MariaDB 监控实操指南
一 快速检查与日志定位
- 服务与资源
- 检查服务状态:sudo systemctl status mariadb
- 实时查看错误日志:sudo tail -f /var/log/mysql/error.log
- 系统层面日志:sudo journalctl -xe
- 内置数据库状态
- 简洁状态:sudo mysqladmin -u root -p status
- 关键指标与连接:SHOW STATUS LIKE ‘Threads_connected’;、SHOW PROCESSLIST;
- 慢查询定位
- 临时开启(当前会话):SET GLOBAL slow_query_log=ON; SET GLOBAL long_query_time=1;
- 永久生效:在配置文件中设置 slow_query_log=1、long_query_time=1,并指定 slow_query_log_file。以上命令适合作为第一时间的问题定位与基线巡检。
二 命令行实时监控工具
- mytop(类 top 的实时会话/查询监控)
- 安装:sudo apt install mytop
- 使用:mytop --prompt -d your_db(可配置 ~/.mytop 存放账号密码,避免命令行明文)
- innotop(聚焦 InnoDB 与复制的增强工具)
- 安装:sudo apt install innotop
- 使用:innotop -u root -p your_pass -h 127.0.0.1 -P 3306 -d 2
- 交互模式常用:按 Shift+字母 切换模式(如 Q 查询列表、M 复制状态、D 死锁),在会话中可执行 k 终止连接、e 对线程 SQL 做 EXPLAIN、f 查看完整 SQL。以上工具便于快速洞察线程、查询与 InnoDB 关键指标。
三 平台化监控方案
- Zabbix(企业级,适合全栈监控与可视化)
- 在 Debian 12 上可通过官方仓库安装:sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
- 创建数据库与用户、导入初始数据、配置 /etc/zabbix/zabbix_server.conf(如 DBHost、DBName、DBUser、DBPassword),启动服务后通过 http://your_ip/zabbix 完成 Web 安装与配置。
- Prometheus(时序与告警生态)
- 安装 Prometheus:sudo apt-get install prometheus
- 配置抓取目标(scrape_configs)指向 MariaDB 的 /metrics 或 exporter 端点,结合 Grafana 做可视化与阈值告警。适合需要长期趋势、容量规划与细粒度指标的场景。
四 关键指标与告警建议
- 连接与线程
- 关注 Threads_connected、Threads_running,结合实例规格设置连接数上限与告警阈值,避免连接风暴。
- 查询性能
- 跟踪 Queries、Questions、Com_* 计数器与 Slow_queries,配合慢查询日志定位高成本 SQL。
- InnoDB 健康
- 观察 Innodb_buffer_pool_reads/reads、Innodb_row_lock_waits、Innodb_deadlocks,并监控 InnoDB I/O 线程与日志相关统计,提前识别锁争用与 I/O 瓶颈。
- 复制状态(如启用主从)
- 使用 SHOW SLAVE STATUS\G 或 innotop 的 Shift+M 检查 Slave_IO_Running/Slave_SQL_Running、Seconds_Behind_Master,异常即告警。
- 资源与错误
- 结合系统监控关注 CPU、内存、磁盘 I/O、网络,并实时跟踪 /var/log/mysql/error.log 的异常与重启信息。以上指标与动作覆盖了日常排障与稳定性保障的高频要点。