在 Linux 下使用 pgAdmin 监控 PostgreSQL,通常可以从数据库级别和操作系统级别两个维度来做。下面按“能用、实用、进阶”给你梳理一下。
pgAdmin 4 自带 Dashboard,可以实时监控:
使用方法:
✅ 适合:快速查看数据库健康状态
pgAdmin 旧版本有 Server Status 工具(新版本集成在 Dashboard):
可查看:
你可以在 pgAdmin 的 Query Tool 中执行 SQL:
-- 当前连接
SELECT * FROM pg_stat_activity;
-- 表统计
SELECT * FROM pg_stat_user_tables;
-- 索引使用情况
SELECT * FROM pg_stat_user_indexes;
-- 锁
SELECT * FROM pg_locks;
pgAdmin 本身不监控 Linux 系统资源,需要配合系统工具。
ps aux | grep postgres
top
htop
df -h
iostat -x 1
tail -f /var/log/postgresql/postgresql-*.log
启用后可以看到慢查询统计
CREATE EXTENSION pg_stat_statements;
配置 postgresql.conf:
shared_preload_libraries = 'pg_stat_statements'
重启后,在 pgAdmin 中查询:
SELECT * FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 10;
如果你是要长期监控:
pgAdmin 只做管理,监控交给 Grafana。
| 场景 | 推荐方式 |
|---|---|
| 临时看数据库状态 | pgAdmin Dashboard |
| 查慢 SQL | pg_stat_statements |
| 看系统资源 | top / htop / iostat |
| 生产长期监控 | Prometheus + Grafana |
| 排查锁问题 | pg_locks + pg_stat_activity |
如果你愿意,可以告诉我:
我可以直接给你一套可落地的监控方案。