# PostgreSQL_manager_app **Repository Path**: jeabon/postgre-sql_manager_app ## Basic Information - **Project Name**: PostgreSQL_manager_app - **Description**: PostgreSQL智能监控系统是一款专为数据库运维人员设计的监控平台,基于Flask框架开发,采用现代化的UI设计(深蓝+鎏金+白色配色方案),为您提供全面的PostgreSQL数据库监控能力。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-24 - **Last Updated**: 2026-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PostgreSQL智能监控系统 ## 📋 项目概述 PostgreSQL智能监控系统是一款专为数据库运维人员设计的监控平台,基于Flask框架开发,采用现代化的UI设计(深蓝+鎏金+白色配色方案),为您提供全面的PostgreSQL数据库监控能力。 **监控服务器**: 172.16.27.48 **数据库**: pg_system_db **访问地址**: https://localhost:5000 ## 🎯 六大核心功能模块 | 模块 | 功能说明 | |------|----------| | **1. 实时性能大盘** | 秒级展示TPS、QPS、缓存命中率、活跃连接数等关键指标,仪表板直观反映数据库健康状态 | | **2. 长事务与锁分析** | 自动识别长事务及锁等待链,支持一键终止阻塞会话,快速解除锁冲突 | | **3. WAL日志监控** | 实时监测WAL(Write-Ahead Log)生成速率、归档延迟及磁盘占用,超阈值自动预警 | | **4. 表膨胀预警** | 定期计算表膨胀率,识别异常表并提供VACUUM/REINDEX优化建议 | | **5. SQL诊断** | 基于pg_stat_statements统计慢SQL,按耗时排序并关联执行计划,辅助性能调优 | | **6. SQL查询终端** | Web端SQL执行终端,支持语法高亮、结果集分页导出、执行计划可视化及操作权限控制 | ## 📁 系统目录结构 ``` pg_manager_app/ ├── app.py # Flask主程序(核心业务逻辑) ├── config.py # 配置文件(数据库连接、监控参数) ├── models.py # 数据模型(ORM映射) ├── forms.py # 表单验证 ├── init_db.py # 数据库初始化脚本 ├── run.py # 启动脚本 ├── requirements.txt # Python依赖 ├── cert.pem # SSL证书 ├── key.pem # SSL密钥 ├── templates/ # HTML模板 │ ├── base.html # 基础模板 │ ├── index.html # 实时性能大盘 │ ├── transactions.html # 长事务与锁分析 │ ├── wal.html # WAL日志监控 │ ├── bloat.html # 表膨胀预警 │ ├── diagnose.html # SQL诊断 │ ├── query.html # SQL查询终端 │ ├── help.html # 帮助中心 │ └── alerts.html # 告警配置 └── static/ ├── style.css # 自定义样式(深蓝+鎏金+白色) ├── bootstrap-5.3.3-dist/ # Bootstrap框架 └── bootstrap-icons-1.11.3/ # 图标库 ``` ## 🚀 快速部署指南 ### 步骤1:安装依赖 ```bash cd pg_manager_app pip install -r requirements.txt ``` ### 步骤2:初始化数据库 ```bash python init_db.py ``` 初始化脚本将自动: - 在PostgreSQL服务器(172.16.27.48)创建`pg_system_db`数据库 - 在MySQL中创建`pg_monitor_system`数据库用于存储监控数据 - 安装必要的PostgreSQL扩展(pg_stat_statements, pgstattuple) ### 步骤3:启动系统 ```bash python run.py # 或直接运行 python app.py ``` ### 步骤4:访问系统 打开浏览器访问:**https://localhost:5000** ## ⚙️ 配置说明 ### PostgreSQL数据库配置(config.py) ```python MONITORED_PG = { 'host': '172.16.27.48', # PostgreSQL服务器IP 'port': 5432, # 端口 'user': 'postgres', # 用户名 'password': 'Sanguo@123', # 密码 'database': 'pg_system_db' # 数据库名 } ``` ### MySQL数据库配置 ```python MYSQL_HOST = 'localhost' MYSQL_PORT = 3306 MYSQL_USER = 'root' MYSQL_PASSWORD = 'Root@123456' MYSQL_DB = 'pg_monitor_system' ``` ## 📊 功能实例 ### 1. 实时性能监控 访问首页即可查看: - **活跃连接数**: 实时显示当前活跃/总连接数 - **TPS/QPS**: 事务和查询吞吐量 - **缓存命中率**: 数据库缓存效率 - **长事务数**: 超过5分钟未提交的事务 ### 2. 长事务处理 当发现长事务时: 1. 在"长事务与锁分析"页面查看详情 2. 点击"终止会话"按钮强制结束进程 3. 系统自动刷新数据确认解除 ### 3. 慢SQL诊断 基于`pg_stat_statements`扩展: ```sql -- 查看TOP 10慢查询 SELECT * FROM pg_stat_statements ORDER BY mean_exec_time DESC LIMIT 10; ``` ### 4. 表膨胀优化 系统自动计算膨胀率并提供建议: - **膨胀率 > 10%**: 建议执行 VACUUM - **膨胀率 > 30%**: 建议执行 REINDEX ## 🔧 常见问题 ### Q: 连接PostgreSQL失败? 检查以下配置: 1. 网络连通性:`ping 172.16.27.48` 2. 端口开放:`telnet 172.16.27.48 5432` 3. pg_hba.conf允许连接 4. 用户名密码正确 ### Q: 慢查询数据为空? 需要安装`pg_stat_statements`扩展: ```sql CREATE EXTENSION pg_stat_statements; ``` ### Q: HTTPS证书警告? 使用自签名证书,浏览器会显示安全警告,点击"高级" -> "继续前往"即可。 ## 📝 API接口 | 接口 | 方法 | 说明 | |------|------|------| | `/api/metrics/latest` | GET | 获取最新性能指标 | | `/api/metrics/history` | GET | 获取历史指标 | | `/api/transactions` | GET | 获取长事务列表 | | `/api/locks` | GET | 获取锁信息 | | `/api/wal/latest` | GET | 获取WAL最新指标 | | `/api/bloat` | GET | 获取表膨胀数据 | | `/api/slow_queries` | GET | 获取慢查询 | | `/api/sql/execute` | POST | 执行SQL语句 | | `/api/health` | GET | 系统健康检查 | ## 🎨 UI设计 - **主色调**: 深蓝(#1E3A5F) + 鎏金(#D4AF37) + 白色(#FFFFFF) - **框架**: Bootstrap 5.3.3 - **图表**: ECharts 5.5.0 - **图标**: Bootstrap Icons 1.11.3 ## 📄 许可证 MIT License ## 🤝 技术支持 如有问题,请查阅`帮助中心`页面或联系技术支持。