图形化监控
系统服务监控
systemctl
管理pgAdmin服务状态:sudo systemctl status pgadmin4 # 查看状态
sudo systemctl start pgadmin4 # 启动服务
sudo systemctl enable pgadmin4 # 开机自启
安装组件
# 安装Prometheus PostgreSQL Exporter
sudo yum install prometheus-postgresql-exporter
# 安装Grafana
sudo yum install grafana
配置Prometheus
编辑/etc/prometheus/prometheus.yml
,添加PostgreSQL数据源:
scrape_configs:
- job_name: 'postgresql'
static_configs:
- targets: ['localhost:9187'] # Exporter默认端口
Grafana可视化
pg_stat_activity
、pg_stat_database
)。Grafana告警规则
脚本告警(自定义)
# 示例:监控空闲连接
#!/bin/bash
IDLE_COUNT=$(psql -U postgres -c "SELECT COUNT(*) FROM pg_stat_activity WHERE state='idle';")
if [ "$IDLE_COUNT" -gt 50 ]; then
echo "警告:空闲连接数超过50!" | mail -s "数据库告警" admin@example.com
fi
cron
定时执行脚本:crontab -e
添加* * * * * /path/to/script.sh
。启用数据库日志
修改postgresql.conf
:
logging_collector = on
log_directory = '/var/log/postgresql'
log_filename = 'postgresql-%Y-%m-%d.log'
log_min_messages = 'warning'
重启数据库生效。
日志分析工具
pgBadger
生成日志报告:sudo yum install pgbadger
pgbadger /var/log/postgresql/*.log -o /tmp/report.html
```。