Ubuntu 上 SQLAdmin 性能监控实践
一 概念澄清与总体思路
- SQLAdmin在不同语境下常被混用:一类是泛指数据库管理工具(如phpMyAdmin/Adminer等 Web 管理工具);另一类是某些厂商提供的名为“SQLAdmin”的专用监控/管理服务。无论指代哪种,性能监控都应覆盖三层:
- 系统层(CPU、内存、磁盘 I/O、网络);
- 数据库层(连接、QPS/TPS、慢查询、锁等待、复制延迟等);
- 应用/中间件层(连接池、查询耗时、错误率)。
- 在 Ubuntu 上,建议采用“内置/轻量工具快速观测 + 指标平台长期存储与告警”的组合:先用系统工具与数据库自带命令定位问题,再用 Prometheus + Grafana 或 Netdata 做可视化与阈值告警,形成闭环。
二 快速上手 内置与轻量工具
- 系统资源与连接概览
- 实时资源:top/htop、vmstat 1、iostat -x 1、netstat -s、dstat、sar
- MySQL 管理:mysqladmin status、mysqladmin extended-status、mysqladmin processlist
- PostgreSQL 管理:psql -c “SELECT * FROM pg_stat_activity;”、pg_stat_statements(需启用扩展)
- 慢查询与执行计划
- 开启慢查询日志(MySQL:slow_query_log、long_query_time;PostgreSQL:log_min_duration_statement),定期用 EXPLAIN/ANALYZE 分析 TOP SQL。
- 一键体验的可视化
- 部署 Netdata(默认端口 19999):
- 安装:sudo apt-get install netdata
- 访问:http://服务器IP:19999
- 轻量且覆盖系统、网络、数据库等常用指标,适合作为第一视角看板。
三 长期监控与告警 Prometheus Grafana 方案
- 组件与数据流
- mysqld_exporter(MySQL/MariaDB)→ Prometheus(抓取/存储)→ Grafana(可视化/告警)。
- 实施步骤(示例)
- 安装并启动 mysqld_exporter,创建数据库只读监控账号,配置连接参数(如 DATA_SOURCE_NAME)。
- 配置 Prometheus 的 scrape_configs,新增 job 指向 mysqld_exporter 的 /metrics 端点。
- 在 Grafana 中添加 Prometheus 数据源,导入 MySQL 官方或社区仪表盘(如 ID 7362),覆盖连接、查询、InnoDB、复制等面板。
- 配置 告警规则(如:Threads_connected 过高、慢查询数激增、复制延迟超阈值),通过 Alertmanager 发送邮件/企业微信/钉钉等通知。
- 适用场景
- 需要历史趋势、多实例统一视图、灵活告警与容量规划的团队/生产环境。
四 若 SQLAdmin 为专用监控服务的监控要点
- 服务可用性
- 进程与端口存活(如 systemd:systemctl is-active sqladmin;端口连通性:curl/ss/telnet)。
- 反向代理/负载均衡健康检查(HTTP 200/超时阈值)。
- 资源与依赖
- 容器/Pod 资源使用(CPU/内存/重启次数)、依赖的 数据库/消息队列/缓存 可达性与延迟。
- 指标与日志
- 内置/暴露的 /metrics 或 /health 端点(若有),应用日志与错误日志的 ERROR/WARN 关键字告警。
- 可视化与告警
- 将服务自身指标接入 Prometheus + Grafana,对关键路径(登录、查询、报表生成)设置 SLI/SLO 与阈值告警。
五 关键指标与优化闭环
| 维度 |
关键指标 |
常用工具/查询 |
常见优化 |
| 连接 |
Threads_connected / Max_used_connections |
mysqladmin status/extended-status |
调整最大连接数、连接池配置、杀空闲/泄漏连接 |
| 查询 |
Queries/s、Slow_queries、Query_time |
慢查询日志、EXPLAIN/ANALYZE |
索引优化、SQL 改写、分页/缓存 |
| 存储引擎 |
InnoDB_buffer_pool_hit_rate、Innodb_row_lock_time_avg |
SHOW ENGINE INNODB STATUS、状态变量 |
合理设置 innodb_buffer_pool_size、优化事务与锁 |
| 复制 |
Seconds_Behind_Master / Replication lag |
SHOW SLAVE STATUS |
网络/磁盘优化、并行复制、避免大事务 |
| 系统 |
CPU、内存、IOPS、%util、网络丢包 |
top/vmstat/iostat/netstat/sar |
升级规格、I/O 调度/队列优化、内核/网络参数调优 |
- 优化动作举例
- 启用并分析慢查询日志,配合 EXPLAIN 定位全表扫描/缺失索引;
- 调整 InnoDB 缓冲池、日志与连接相关参数;
- 进行索引优化(创建/删除/复合索引)与 SQL 重构(避免子查询、减少排序/临时表);
- 定期维护(更新统计信息、归档历史数据、重建碎片化索引)。