Coder Social home page Coder Social logo

dbmon's Introduction

说明:该项目已停止开发,请移步新的监控项目,基于前后端分离结构:https://github.com/gumengkai/db_monitor

总体介绍

python+Django数据库监控平台

开发技术:python,django(web框架),AdminLTE(前端模板)

整体架构:后端多进程数据采集+告警轮询+web前端展示+celery任务管理

特色:支持主机、Oracle、MySQL基础数据监控及性能监控,以评分形式展示各项服务健康度,关键指标形成dashboard趋势分析,自定义告警阈值,支持邮件告警,采用celery任务管理机制,

qq交流群:916746047

新监控Demo(建议chrome访问): http://122.51.204.250:8080 用户名密码:admin/111111

部署:

如果有想要在内网中部署或者部署过程中碰到问题的可以参考下word版的部署文档,比较详细!

1. 安装python2.7(略)

注意安装pip

2. 安装mysql5.7(略)

由于用到mysql5.7的json相关函数,所以MySQL版本必须不低于5.7,字符集最好默认设置为utf-8

3. 安装rabbitmq

用于celery任务管理
[root@aliyun dbmon]# yum install erlang
[root@aliyun dbmon]# yum install rabbitmq-server
[root@aliyun dbmon]# service rabbitmq-server start
Starting rabbitmq-server: SUCCESS
rabbitmq-server.

4. 克隆项目,解压缩

数据库脚本

(必须执行):setup/mysql/db_monitor.sql & setup/mysql/initdata.sql
(监控Oracle时在被监控库、监控用户下执行):setup/oracle/procedure.sql & setup/oracle/table.sql

安装依赖包

pip install -r requirements.txt

如果要监控Oracle数据库,需要安装Oracle instant client以使用cx_oracle

修改配置文件

-- 总体配置文件,主要修改mysql数据库配置
config/db_monitor.conf
[target_mysql]
host = 172.17.243.119
port = 3306
user = root
password = Mysql@123
dbname = db_monitor

--Django配置文件settings.py,修改MySQL配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_monitor',
'USER': 'root',
'PASSWORD': 'mysqld',
'HOST':'192.168.48.50',
'PORT': '3306',
} }

-- celery配置文件 settings.py
BROKER_URL = 'amqp://guest:guest@localhost//' 这个如果rabbitmq是默认安装的话,就不需要修改了

同步数据库,建用户

暂时没有做用户/角色体系,可以先通过django自带的admin页面来管理
[root@aliyun dbmon]# python manage.py migrate
[root@aliyun dbmon]# python manage.py createsuperuser

5. 启动

--数据采集
[root@aliyun check_alarm]# python main_check.py
注:在前端界面添加监控设备 --django
[root@aliyun dbmon]# python manage.py runserver 0.0.0.0:8000 --自己选择IP和端口号 访问:0.0.0.0:8000/login --webssh
[root@aliyun webssh]# python main.py
注:webssh不可单独访问,必须通过db_monitor的Linux主机概览页面跳转 --celery
[root@aliyun dbmon]# celery -A dbmon worker -l info
[root@aliyun dbmon]# celery -A dbmon beat -l info

6. 注意事项

上传了一份我自己在阿里云服务器上部署的记录:install.log,不一定完整,可以参考一下

版本说明

服务端:
centos6.5
监控客户端: linux: centos6.5,centos6.8,redhat7.2
oracle: oracle11.2.0.4
mysql: mysql5.6,mysql5.7

使用其他版本的linux或数据库版本可能会遇到未知问题,待后续适配

dbmon's People

Contributors

btldxx avatar dependabot[bot] avatar gumengkai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dbmon's Issues

关于gv$instance的授权问题

关于gv$instance的授权问题,在被监测的oracle执行存储过程,对于这类视图编译报错,报的是没有表或者视图,我用sys赋权,但是提示不能fix table不能赋权,该如何解决!

使用说明

Oracle日志挖掘:

  1. 需自行进行数据库logminer配置,如执行DBMS脚本、字典配置,使用本功能前默认已经配置好,不在web端提供配置,使用前需要先使用setup里面的table.sql脚本建立LOGMNR_CONTENTS表
  2. 默认过滤sys用户的所有对象数据
  3. 支持用户、对象、操作类型过滤,用户为必填过滤项
  4. 数据较多时网页加载比较慢
  5. 只保留一次日志解析数据,每次解析时会先清空上一次解析数据

TypeError from_buffer() cannot return the address of the raw string within a str or unicode or bytearray object

Request Method: GET
http://192.168.233.179:9000/mysql_slowquery/
1.9.13
TypeError
from_buffer() cannot return the address of the raw string within a str or unicode or bytearray object
/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/ciphers.py in update_into, line 131
/usr/bin/python
2.7.5
['/home/software/dbmon', '/usr/lib/python2.7/site-packages/django_celery_results-1.0.4-py2.7.egg', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages', '/home/software/dbmon']

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.