首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Django批量监控Oracle Job运行情况

使用Django批量监控Oracle Job运行情况

作者头像
企鹅号小编
发布2018-01-08 16:02:20
8460
发布2018-01-08 16:02:20
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

关于监控系统我们前面介绍了很多

学会了如何使用Django新建网站以及获取数据监控数据至MySQL或redis

然后将获得的数据库处理后再前端显示

往期可以到我的个人网页查看

http://www.zhaibibei.cn/oms/

http://www.zhaibibei.cn/domanager/

这期讲如何使用Django批量监控Oracle Job运行情况

开发环境

操作系统:CentOS 7.3

Python版本 :2.7

Django版本: 1.10.5

操作系统用户:oracle

1. 程序原理

原理为通过Django来批量连接Oracle数据库,然后查看dba_jobs视图,如果发现问题则报警出来

2 . 程序主体

程序路径为:

mysite/monitor/management/commands/checkoraclejob.py

该程序解释如下:

首先获取oraclelist表中所有的数据库信息

然后当monitor_type等于1时连接数据库

然后通过getoracleinfo.py中的checkjob函数获取job的情况

当返回值为error时候获取tns名称并写入mailcontent列表中

最后判断mailcontent是否有数据,有的话则报警

3. 获取Job执行信息的函数

我们通过如下函数获取Job的执行情况,该程序可单独于Django运行

路径为:

mysite/monitor/command/checkoraclejob.py

def checkjob(cursor):

cursor.execute('select failures from dba_jobs a where round((sysdate-this_date)*24,2) >1 or failures0')

row=cursor.fetchone()

if row is None:

return 'normal'

else:

return 'error'

当dba_jobs视图中的failures 不等于0 或者 Job执行时间超过1小时(可根据自己习惯调整)时我们认为该Job有异常

4. 最终结果

可以看如果有Job异常则会发邮件

5. 设置自动运行

这里我们设置每天凌晨进行一次,并重定向所有日志至一个文件

这样我们可以通过检查该日志文件判断脚本是否正常运行

59 23 * * * /usr/bin/python2.7 /ezio/website/manage.py checkoraclejob >>/home/oracle/crontab.log 2>&1

源代码位置

欢迎访问我的github主页查看源码

https://github.com/bsbforever/oms_django

本文来自企鹅号 - 宅必备媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 宅必备媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档