一种基于Python语言的跨版本Oracle监控系统技术方案

技术编号:31312381 阅读:23 留言:0更新日期:2021-12-12 21:47
本发明专利技术公开了一种基于Python语言的跨版本Oracle监控系统。本发明专利技术包括Monitor Host、Monitor proxy、nginx、Monitor Server和Monitor Browse。Monitor Host负责在数据库服务器上收集监控信息;Monitor proxy负责将监控信息转发;Nginx负责将Monitor Server内网ip、端口映射到外网,同时将Monitor proxy转发的信息发送到Monitor Server定义的接口;Monitor Server负责将nginx转发过来的信息存储到数据库,同时负责响应Monitor Browse的查询请求;Monitor Browse提供监控信息查询功能。本发明专利技术在数据库运维实践中正式上线,有效地提高了监控信息获取的及时性、准确性、全面性,同时明显减轻运维人员的工作负荷。同时明显减轻运维人员的工作负荷。同时明显减轻运维人员的工作负荷。

【技术实现步骤摘要】
一种基于Python语言的跨版本Oracle监控系统


[0001]本专利技术属于数据库自动化运维系统的一部分,适用于多版本Oracle数据库的监控,主要功能:数据库性能、表空间、用户信息、备份等信息的自动收集、展示,告警信息自动邮件告警。

技术介绍

[0002]Oracle数据库系统(以下称“数据库”)是本公司众多应用系统的关键后台服务,数据库是否存活、性能的波动直接影响到数量庞大的前台用户的使用。
[0003]随着业务的发展,应用的架构逐渐复杂,规模越来越庞大,应用系统须要提供7*24服务。相应的数据库的节点、架构也越来越多,目前已经达到上百个节点,数据库版本也不尽相同。数据库运行在idc机房、用户自建机房、云端等多种环境。数据库因为硬件、网络、应用等原因造成的故障也越来越多。
[0004]为了保证良好的用户体验,公司对数据库基本要求:稳定和高效,防患于未然。
[0005]这对数据库的运维提出了更高的要求,需要每天多次巡检。传统人工巡检一般是登录到数据库服务器执行脚本,在对数据库稳定性越来越高要求,越来越多节点情况下已经无法满足要求,人工巡检主要问题如下:
[0006](1)效率低
[0007]人工登录到数据库服务器运行监控脚本或者在数据库服务器上定时执行监控脚本在节点达到上百个的时候需要很长时间,通有时甚至问题都发生了,数据库服务器尚未巡检完成。重复性的机械操作也容易造成运维人员的疲劳,出错。
[0008](2)信息无法存档
[0009]人工巡检收集到的文本信息要么存放到数据库服务器上,要么发送的运维人员邮箱,无法长时间大量存档,信息之间是孤立的,很难整理做到纵向和横向对比。
[0010](3)无法宏观把控
[0011]人工巡检收集到的文本信息信息之间是孤立的,通常是收集完了很难从宏观上确定数据库运行的整体状况。

技术实现思路

[0012]本专利技术的目标是克服传统人工的弊端实现自动巡检,满足公司对数据库的要求:稳定和高效,防患于未然。提供一种基于Python语言的跨版本Oracle监控系统。
[0013]本专利技术解决其技术问题所采用的技术方案如下:
[0014]本专利技术包括Monitor Host、Monitor proxy、nginx、Monitor Server和Monitor Browse五个部分,具体如下:
[0015]Monitor Host负责在数据库服务器上收集监控信息;
[0016]Monitor proxy负责将监控信息转发
[0017]Nginx负责将Monitor Server内网ip、端口映射到外网,同时将Monitor proxy转
发的信息发送到Monitor Server定义的接口;
[0018]Monitor Server负责将nginx转发过来的信息存储到数据库,同时负责响应Monitor Browse的查询请求;
[0019]Monitor Browse提供监控信息查询功能。
[0020]进一步,所述的Monitor Host具体实现如下:
[0021]1‑
1配置文件
[0022]主要是标识各数据库服务器的连接信息、监控的具体行为参数;
[0023]1‑1‑
1:服务器连接信息:
[0024]IP:数据库服务器的ip地址;
[0025]SERVICE_NAME:数据库Service_name;
[0026]SYSTEM_PASSWORD:system用户密码;
[0027]REGION=服务器所在机房标识;
[0028]1‑1‑
2:关键标识:
[0029]DB_VERSION:数据库版本标识;
[0030]1‑1‑
3:主要目录:
[0031]DATA_DIR:数据库数据目录;
[0032]APP_DIR:数据库程序目录;
[0033]SHELL_WORK_DIR:功能脚本运行目录;
[0034]DUMP_BACKUP_DIR:数据库逻辑备份目录;
[0035]RMAN_BACKUP_DIR:数据库rman备份目录;
[0036]1‑1‑
4:信息收集频率
[0037]GET_TABLESPACE_INTERVAL:数据库表空间收集频率;
[0038]GET_OS_INTERVAL:数据库操作系统收集频率;
[0039]GET_BACKUP_INTERVAL:备份信息收集频率;
[0040]GET_DB_INTERVAL:数据库动态信息收集频率;
[0041]GET_ERROR_INTERVAL:数据库告警收集频率;
[0042]1‑1‑
5:Monitor Proxy转发ip和端口
[0043]IF_PROXIES:信息是否需要转发;
[0044]PROXIES:Monitor Proxy程序所在ip和端口;
[0045]MONITOR_SERVER_URL:IF_PROXIES=1时监控系统转发接口ip和端口;
[0046]1‑
2:Monitor Host的class(类)和method(方法)
[0047]1‑2‑
1class username_monitor
[0048]架构图Username部分:监控每个用户的连接数、所属的profile和过期时间;
[0049]Method get_username主要指标如下:
[0050]Username:用户名称;
[0051]Account_status:用户状态;
[0052]Connections:每用户连接数;
[0053]Profile:用户所属profile;
[0054]Expiry_date:用户过期日期;
[0055]Grace_day:锁定宽限天数;
[0056]Lock_date:锁定日期;
[0057]Method Interface:定义信息发送的接口,主要信息:
[0058]Interface_url:报文接收接口地址(MONITOR_SERVER_URL+接收方法名);
[0059]1‑2‑
2:Class Server_Monitor
[0060]架构图os部分:获取操作系统指标的主要method:
[0061]get_disk:获取数据库服务器上配置文件中DATA_DIR APP_DIR所在磁盘的空间利用率、读写io字节数;
[0062]get_cpu:获取数据库服务器cpu利用率;
[0063]get_mem:获取数据库服务器内存使用率;
[0064]get_io:获取数据库服务器网卡输入输出字节数;
[0065]Method Interfac本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Python语言的跨版本Oracle监控系统,其特征在于包括Monitor Host、Monitor proxy、nginx、Monitor Server和Monitor Browse五个部分,具体如下:Monitor Host负责在数据库服务器上收集监控信息;Monitor proxy负责将监控信息转发Nginx负责将Monitor Server内网ip、端口映射到外网,同时将Monitor proxy转发的信息发送到Monitor Server定义的接口;Monitor Server负责将nginx转发过来的信息存储到数据库,同时负责响应Monitor Browse的查询请求;Monitor Browse提供监控信息查询功能。2.根据权利要求1所述的一种基于Python语言的跨版本Oracle监控系统,其特征在于Monitor Host具体实现如下:1

1配置文件主要是标识各数据库服务器的连接信息、监控的具体行为参数;1
‑1‑
1:服务器连接信息:IP:数据库服务器的ip地址;SERVICE_NAME:数据库Service_name;SYSTEM_PASSWORD:system用户密码;REGION=服务器所在机房标识;1
‑1‑
2:关键标识:DB_VERSION:数据库版本标识;1
‑1‑
3:主要目录:DATA_DIR:数据库数据目录;APP_DIR:数据库程序目录;SHELL_WORK_DIR:功能脚本运行目录;DUMP_BACKUP_DIR:数据库逻辑备份目录;RMAN_BACKUP_DIR:数据库rman备份目录;1
‑1‑
4:信息收集频率GET_TABLESPACE_INTERVAL:数据库表空间收集频率;GET_OS_INTERVAL:数据库操作系统收集频率;GET_BACKUP_INTERVAL:备份信息收集频率;GET_DB_INTERVAL:数据库动态信息收集频率;GET_ERROR_INTERVAL:数据库告警收集频率;1
‑1‑
5:Monitor Proxy转发ip和端口IF_PROXIES:信息是否需要转发;PROXIES:Monitor Proxy程序所在ip和端口;MONITOR_SERVER_URL:IF_PROXIES=1时监控系统转发接口ip和端口;1

2:Monitor Host的class(类)和method(方法)1
‑2‑
1class username_monitor架构图Username部分:监控每个用户的连接数、所属的profile和过期时间;
Method get_username主要指标如下:Username:用户名称;Account_status:用户状态;Connections:每用户连接数;Profile:用户所属profile;Expiry_date:用户过期日期;Grace_day:锁定宽限天数;Lock_date:锁定日期;Method Interface:定义信息发送的接口,主要信息:Interface_url:报文接收接口地址(MONITOR_SERVER_URL+接收方法名);1
‑2‑
2:Class Server_Monitor架构图os部分:获取操作系统指标的主要method:get_disk:获取数据库服务器上配置文件中DATA_DIR APP_DIR所在磁盘的空间利用率、读写io字节数;get_cpu:获取数据库服务器cpu利用率;get_mem:获取数据库服务器内存使用率;get_io:获取数据库服务器网卡输入输出字节数;Method Interface:定义信息发送的接口,接口主要属性Interface_url:报文接收接口地址(MONITOR_SERVER_URL+接收方法名);1
‑2‑
3:Class Oracle_Monitor架构图DB部分:数据库动态性能主要class和method:指标通过运行sql语句获得,数据库的版本根据配置文件中DB_VERSION指定;Method:get_db_status主要指标;Commits_count:事务提交数;Rollbacks_count:事务回滚数;Physical_read_count:物理读数;Physical_write_count:物理写数;Db_block_change_count:数据块修改数;Qps:每秒qps数;TPS:每秒tqs数;Session_count:用户数连接;Session_active_count:活跃用户连接数;Sga:sga大小;Method Interface:定义信息发送的接口,主要属性:Interface_url:报文接收接口地址(MONITOR_SERVER_URL+接收方法名)1
‑2‑
4class:tablespace_monitor架构图Tablespace部分:监控表空间的使用情况,防止出现硬盘空间耗尽和表空间数据库文件耗尽;Method get_tablespace主要指标如下:
Tablespace_name:表空间名称;Contents:表空间类型;file_name:数据库文件;extent_management:段管理类型;segment_space_management:段空间扩展类型;Status:表空间状态;tbs_file_total_m:数据文件大小上限;tbs_file_use...

【专利技术属性】
技术研发人员:易志平徐进阳
申请(专利权)人:浙江万朋教育科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1