Need help with db_monitor?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

gumengkai
241 Stars 104 Forks 75 Commits 8 Opened issues

Description

python+Django+Vue数据库监控平台 Oracle/MySQL/Redis/Linux基础+性能监控

Services available

!
?

Need anything else?

Contributors list

# 200,870
Python
Shell
64 commits
# 188,839
golang
goproxy
HTML
Shell
1 commit

DB monitor数据库监控平台

特性

  • 构建: 前后端分离架构,Python+Django+restframework提供后台API,celery定制数据采集策略,Iview作为前端展示
  • UI: 开箱即用的高质量前端设计,提供丰富的图表、指标展示,核心数据形成趋势图分析
  • 深度定制: 提供完整可用的数据监控方案,告别冗长的SQL脚本、常用手册,复杂数据通过web页面即可轻易浏览

功能简介

  • 资源管理
    • Oracle/MySQL/Redis/Linux资源信息录入
    • 资源管理中各类设备信息作为采集设备来源,支持动态加入实例监控列表
  • 实例列表
    • 查看各监控实例列表及详细信息
  • 监控告警
    • 告警配置及告警信息查看
  • 数据库部署
    • 支持Oracle19c RAC/RAC One Node/单实例,MySQL5.7/8.0单实例部署

环境

  • Python 3.6

    • Django 2.2
    • Django Rest Framework 3.1
  • Vue.js 2.9

    • iview 3.4

平台使用

用户名:admin 密码:111111

注:资源紧张及各种原因,demo已停用,想看的同学可以自行部署。

懒人以及没有接触过的建议使用docker部署方式

docker部署可参考: https://blog.csdn.net/gumengkai/article/details/106250548

docker(懒人详细版)部署可参考,提供所有安装文件,可以直接在内网使用: https://stuxidianeducn-my.sharepoint.com/:f:/g/personal/gumengkaistuxidianeducn/EljbazMtQtJKhPKsuY9ZljgBjp7ujQHxPfj6-Hk0dnhyxQ?e=8JOrTk

安装部署

1. 安装python3.6(略)

2. 安装mysql5.7(略)

注意字符集:utf-8

create database db_monitor;

3. 安装redis3.2(略)

4. 安装oracle instant client(略)

5. 项目配置

下载源代码

git clone https://github.com/gumengkai/db_monitor

安装依赖包

pip install -r requirements.txt

settings配置

--MySQL数据库:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_monitor',
'USER': 'root',
'PASSWORD': 'mysqld',
'HOST':'127.0.0.1',
'PORT': '3306',
} }

--Redis:

CELERYRESULTBACKEND = 'redis://localhost:6379/1'

CELERYBROKERURL = 'redis://localhost:6379/2'

--邮件告警配置:

ISSENDEAMIL = 0 #是否发送告警邮件,0:不发送 1:发送

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' #一般不需要修改

EMAIL_HOST = 'smtp.163.com'

EMAIL_PORT = 25

EMAILHOSTUSER = '*********' # 邮箱登录名,如[email protected]

EMAILHOSTPASSWORD = '*********' #此处为客户端授权码,不是邮箱密码,需要在邮箱服务商设置

EMAILTOUSER = ['[email protected]','[email protected]'] # 发送邮件列表,参考格式设置

--钉钉告警配置

ISSENDDING_MSG = 0 #是否发送钉钉告警 0:不发送 1:发送

DING_WEBHOOK = '**********' #webhook,从钉钉获取

创建数据库

python manage.py makemigrations

python manage.py migrate

python manage.py createsuperuser(创建登录用户)

执行数据库脚本

@install/initdata.sql

初始化脚本包含celery初始数据和admin初始用户(密码为111111)

6. 启动/停止

python manage.py runserver 0.0.0.0:8000 #建议使用固定IP地址启动

celery –A db_monitor worker –l info

celery –A db_monitor beat –l info

也可以使用脚本启动/关闭:

celery: sh celery_start[shutdown].sh

django: sh web_start[shutdown].sh

关于日志:

celery日志:logs/celery-worker.log & logs/celery-beat.log

web日志: logs/django-web.log

采集数据异常主要查看celery日志!

注:使用shell脚本启停时如遇到“/r command not found”,为linux与windows换行符格式差异导致,在Linux凭条可以在vim下执行:set ff=unix解决

7. 前端配置

请参考:dbmonitorvue

8. oracle数据库监控

对Oracle数据库监控,请在被监控端建立用户,并执行install/sqlscripts(forOracle)中的脚本

grant.sql & table.sql & procedure.sql

9. 数据库部署

--Oracle数据库部署(仅支持19c版本)

若要使用"数据库部署"的功能,需要手工下载数据库安装包并拷贝到utils/oracleracinstall/目录中。

LINUX.X64193000grid_home.zip --安装集群需要,只安装单实例则不需要

LINUX.X64193000db_home.zip

注:安装前需要提前准备的 1. 配置yum源 2. 网卡配置(rac安装),包括private,public网络配置 3. 服务器的配置应满足官方安装要求,如物理内存、磁盘空间、swap,自动化安装程序并不会对这些进行检查 4. 共享磁盘配置(rac安装),需要在完成step1 linux配置后进行共享存储配置,才可继续进行后续grid安装

--MySQL数据库部署(支持5.7/8.0版本) 需要手工下载数据库安装包并拷贝到utils/mysqlinstall/目录中。 mysql-5.7.33-linux-glibc2.12-x8664.tar.gz

mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz

10. 访问地址

取决于自己的前端和后端端口配置,默认访问地址为

ip:8000/admin --后端

ip:8001 --前端

11. 系统设置

如采集频率,可在django后台管理页面进行配置 demo1

界面展示

  • 资产管理

demo1

  • Oracle数据库概览

demo1

  • oracle top sql

demo1

  • MySQL数据库日志解析

demo1

  • 告警记录

demo1

  • 告警配置

demo1

  • 数据库部署

demo1

交流学习

  • QQ群 916746047

另外,安装过程中出现的问题可优先查看此文档: https://docs.qq.com/doc/DZHlBSGFGd1lpWUVS

docker部署可参考: https://blog.csdn.net/gumengkai/article/details/106250548

Copyright © 2019 DB monitor

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.