在 Linux 上使用 pgAdmin 进行数据库监控
一 安装与启动 pgAdmin
- 在 Ubuntu/Debian 上安装:
- 更新并安装依赖:sudo apt-get update && sudo apt-get upgrade
- 安装 PostgreSQL(如未安装):sudo apt-get install postgresql postgresql-contrib
- 从官网获取安装包(示例为 v4.22.0):wget https://download.pgadmin.org/pub/pgadmin/pgadmin4/v4.22.0/pgadmin4-4.22.0-linux-x64.tar.gz
- 解压并部署:tar -xzf pgadmin4-4.22.0-linux-x64.tar.gz && sudo mv pgadmin4 /opt/pgadmin
- 启动服务:sudo /opt/pgadmin/bin/pgadmin4
- 在 CentOS/RHEL 上安装:
- 导入仓库并安装:sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- 安装 pgAdmin4:sudo yum install pgadmin4
- 访问控制台:打开浏览器访问 http://<服务器IP>:5050,使用安装时设置的账号登录。
二 连接数据库与实时仪表盘
- 在左侧导航栏右键 Servers → Create → Server…,填写:
- Name(自定义)
- Host(数据库主机,如 localhost 或服务器 IP)
- Port(默认 5432)
- Maintenance database(常用 postgres)
- Username/Password(具备监控权限的数据库用户)
- 连接成功后,进入目标数据库,在右侧 Dashboard 页签查看实时指标:
- Server sessions(当前连接数)
- Transactions per second(每秒事务数)
- Tuples in / Tuples out(增删改/查询行数)
- Block I/O(块读写)
- Server activity(会话与锁状态)
- 在服务器节点下的 Monitoring 节点可查看更细的实时性能数据(如 CPU、内存、磁盘 I/O 等),支持动态刷新。
三 慢查询与日志分析
- 在数据库服务器启用日志收集与慢查询记录(编辑 postgresql.conf):
- 开启日志收集:logging_collector = on
- 设置日志目录:log_directory = ‘/var/log/postgresql’
- 设置日志文件名:log_filename = ‘postgresql-%Y-%m-%d.log’
- 记录超过阈值的语句:log_min_duration_statement = 1000(单位毫秒,示例为 1 秒)
- 重启数据库使配置生效
- 使用 pgBadger 生成 HTML 报告进行慢查询分析:
- 安装:sudo yum install pgbadger
- 分析:pgbadger /var/log/postgresql/*.log -o /tmp/report.html
- 在 pgAdmin 左侧 Logs 节点可查看数据库日志(需提前开启日志收集)。
四 长期监控与告警方案
- 集成 Prometheus + Grafana(适合长期存储、可视化与告警)
- 安装组件:sudo yum install prometheus-postgresql-exporter grafana -y
- 配置 Prometheus(/etc/prometheus/prometheus.yml):
- scrape_configs:
- job_name: ‘postgresql’
static_configs:
- targets: [‘localhost:9187’] # PostgreSQL Exporter 默认端口
- 重启:sudo systemctl restart prometheus
- 配置 Grafana(默认端口 3000):添加 Prometheus 数据源,导入 PostgreSQL Overview 面板,配置告警规则(如连接数、事务延迟等)
- 可选:集成 Datadog
- 在 pgAdmin4 服务器部署 Datadog Agent,采集系统与数据库指标、日志,并在 Datadog 中统一可视化与告警(适合全栈监控)。
五 实用排障与优化建议
- 使用 Query Tool 执行 EXPLAIN / EXPLAIN ANALYZE 定位慢查询瓶颈,结合索引与 SQL 改写优化
- 在表对象查看 Statistics,关注行数、索引大小与更新频率
- 定期执行 VACUUM 与 ANALYZE,保持统计信息与空间回收,避免膨胀
- 为高频查询字段创建合适索引(如:CREATE INDEX idx_col ON tbl(col);)
- 结合 pgAdmin 的 Server activity 与日志,持续观察长事务、锁等待与异常会话