Linux上常用的 MariaDB 监控工具与方案
一 内置与命令行工具
- 服务状态与健康
- 使用 systemctl status mariadb 查看服务是否运行、最近日志片段,适合日常巡检与故障初判。
- 快速状态与连接
- 使用 mysqladmin status 获取 Uptime、Threads、Questions 等关键指标;登录到客户端后用 SHOW STATUS 查看全部状态变量,用 SHOW PROCESSLIST 观察当前连接与正在执行的 SQL。
- 性能细节与诊断
- 启用并查询 Performance Schema(如 performance_schema.threads、performance_schema.events_statements_current)获取线程与语句级运行时信息,用于定位慢 SQL 与阻塞。
- 系统资源与 I/O
- 结合 top/htop(CPU/内存)、iostat(磁盘 I/O)、netstat/ss(端口与连接)排查数据库对系统资源的影响与瓶颈。
二 开源与第三方监控平台
- 企业级与全栈监控
- Zabbix:在被监控端安装 zabbix-agent,在 Server 端添加主机并配置 MariaDB 监控项,实现指标采集、告警与可视化。
- Prometheus + Grafana:以 mysqld_exporter 采集 MariaDB 指标,Prometheus 存储与告警,Grafana 做可视化大盘。
- Percona Monitoring and Management(PMM):面向 MySQL/MariaDB 的专业监控与诊断平台,覆盖性能、复制、查询分析等。
- Nagios:通过插件对 MariaDB 进行可用性、延迟与阈值告警监控。
- Netdata:开箱即用的系统与应用监控,包含 MySQL 模块,轻量易部署。
三 交互式与轻量工具
- mytop:类 top 的实时查看工具,便于观察线程、查询与负载。
- innotop:面向 InnoDB 的交互式监控,适合排查锁等待与事务状态。
四 部署与选型建议
- 明确目标:优先覆盖可用性(存活/端口)、连接与线程、查询性能(慢查询/语句分析)、复制状态、资源瓶颈(CPU/内存/磁盘/网络)。
- 组合方案:以 Zabbix/Prometheus/Grafana/PMM 作为长期监控与告警底座,配合 mysqladmin、SHOW STATUS/PROCESSLIST、Performance Schema 做现场诊断,必要时用 mytop/innotop 辅助排查。
- 权限与安全:为监控创建最小权限的 MariaDB 用户(如 PROCESS、REPLICATION CLIENT、SELECT on mysql.user 等),避免在主库上执行高风险操作。
- 可视化与阈值:为连接数、线程使用率、复制延迟、慢查询数、InnoDB 缓冲池命中率、磁盘 IOPS/延迟等关键指标配置阈值与告警,并建立基线趋势图。