Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 DB Monitor - 数据库健康监控系统

统一监控 Oracle、MySQL、SQLServer、PostgreSQL,支持自定义 SQL 监控 + 可视化仪表盘 + Telegram/微信告警。

✨ 功能特性

  • 🔧 自定义 SQL 监控 - 界面配置监控模块,无需改代码
  • 📊 可视化仪表盘 - ECharts 图表展示历史趋势
  • 🔔 多渠道告警 - 支持 Telegram、企业微信推送
  • 🎯 多数据库支持 - Oracle、MySQL、SQLServer、PostgreSQL
  • 📦 模块化设计 - 新增监控项只需配置 SQL

🚀 快速开始

1. 安装依赖

cd backend
pip install -r requirements.txt

2. 配置数据库连接

编辑 config.yaml 或通过 Web 界面添加数据库连接。

3. 启动服务

cd backend
python main.py

访问 http://localhost:8000 打开管理界面。

4. Docker 部署 (可选)

docker-compose up -d

📁 项目结构

dbmonitor/
├── backend/
│   ├── main.py              # FastAPI 入口
│   ├── models.py            # 数据模型
│   ├── database.py          # 数据库连接器
│   ├── collector.py         # SQL 采集引擎
│   ├── alerter.py           # 告警发送
│   ├── scheduler.py         # 定时任务调度
│   └── requirements.txt     # Python 依赖
├── frontend/
│   └── index.html           # 单页应用 (内嵌)
├── config.yaml              # 配置文件
├── docker-compose.yml       # Docker 部署
└── README.md                # 项目说明

📝 配置说明

数据库连接配置

databases:
  - name: "生产Oracle-主库"
    type: oracle
    host: 192.168.1.100
    port: 1521
    service_name: ORCL
    user: monitor
    password: ${ORACLE_PASSWORD}

监控模块配置

monitors:
  - name: "表空间使用率"
    db_types: [oracle]
    sql: |
      SELECT tablespace_name, 
             ROUND((used_space/total_space)*100, 2) as used_pct
      FROM dba_tablespace_usage_metrics
      WHERE (used_space/total_space)*100 > :threshold
    threshold: 85
    alert_message: "⚠️ 表空间 {tablespace_name} 使用率 {used_pct}%"

🔔 告警配置

Telegram

  1. 创建 Bot: https://t.me/BotFather
  2. 获取 Chat ID: https://t.me/userinfobot

企业微信

  1. 创建群机器人
  2. 获取 Webhook URL

📄 License

MIT License

About

数据库健康监控系统 - 支持 Oracle/MySQL/SQLServer/PostgreSQL,自定义 SQL 监控 + 可视化仪表盘 + Telegram/微信告警

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages