# Oracle 10g and 11g Monitor For Zabbix **Repository Path**: liu-shangyu1/oracle-10g-and-11g-monitor-for-zabbix ## Basic Information - **Project Name**: Oracle 10g and 11g Monitor For Zabbix - **Description**: No description available - **Primary Language**: Python - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-26 - **Last Updated**: 2024-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, zabbix, 模板, 监控 ## README # Oracle 10g and 11g Monitor For Zabbix Oracle 监控脚本文档 简介 这是一个用于监控 Oracle 数据库的 Python 脚本,它可以连接到 Oracle 数据库实例,获取各种监控数据,如表空间使用情况、会话信息等。 使用方式 python OracleMonitoring.py --host --user --passwd [--port ] --instance_name --type [args [args ...]] --host: Oracle 数据库主机名或 IP 地址。 --user: Oracle 数据库用户名,默认为 zabbix。 --passwd: Oracle 数据库密码,默认为 zabbix。 --port: Oracle 数据库端口,默认为 1521。 --instance_name: Oracle 数据库实例名。 --type: 监控类型,可以是 index、space 或 statis。 : 要执行的函数名称。 [args [args ...]]: 函数的参数(可选)。 参数说明 --host: 必需参数,用于指定 Oracle 数据库的主机名或 IP 地址。 --user: 必需参数,用于指定连接 Oracle 数据库的用户名。 --passwd: 必需参数,用于指定连接 Oracle 数据库的密码。 --port: 可选参数,用于指定 Oracle 数据库的端口,默认为 1521。 --instance_name: 必需参数,用于指定要连接的 Oracle 数据库实例名。 --type: 必需参数,用于指定监控的类型,可以是 index、space 或 statis。 : 必需参数,要执行的函数名称。 [args [args ...]]: 函数的参数(可选)。 函数说明 OracleIndex 类: tableSpaceIndex - 获取所有表空间的名字。 userNameIndex - 获取所有用户的名字和账户状态。 userSegmentIndex - 获取Segments视图中的用户,用来统计每个用户的大小。 asmDiskGroupIndex - 获取所有 ASM 磁盘组的名字。 OracleNorm 类: tablespaceUsed - 获取指定表空间的已使用空间(GB)。(依赖 tableSpaceIndex 规则传递参数) tablespaceMax - 获取指定表空间的最大空间(GB)。(依赖 tableSpaceIndex 规则传递参数) tablespaceFree - 获取指定表空间的剩余空间(GB)。(依赖 tableSpaceIndex 规则传递参数) tablespaceUsedPer - 获取指定表空间的已使用百分比。(依赖 tableSpaceIndex 规则传递参数) userExpired - 获取指定用户距离到期的天数。(依赖 userNameIndex 规则传递参数) asmTotal - 获取指定 ASM 磁盘组的总空间大小(MB)。(依赖 asmDiskGroupIndex 规则传递参数) asmFree - 获取指定 ASM 磁盘组的剩余空间大小(MB)。(依赖 asmDiskGroupIndex 规则传递参数) asmUsed - 获取指定 ASM 磁盘组的已使用空间大小(MB)。(依赖 asmDiskGroupIndex 规则传递参数) asmUsedPre - 获取指定 ASM 磁盘组的已使用百分比。(依赖 asmDiskGroupIndex 规则传递参数) schemaSize - 获取指定 Schema 占用总空间大小。(依赖 userSegmentIndex 规则传递参数) OracleStatic 类: OracleInstanceStatus - 获取 Oracle 实例的状态。 OracleInstanceSessionPer - 获取会话连接占用的百分比。 OracleVersion - 获取 Oracle 数据库的版本。 OracleActiveSession - 获取活跃会话的数量。 OracleInvalidObject - 获取无效对象的数量。 OracleHitCacheRatio - 获取高速缓存命中率。 OracleCursorCacheRatio - 获取游标缓存命中率。 OraclePgaCacheHit - 获取PGA缓存命中率。 OracleSoftParseHit - 获取SQL软解析百分比。 OracleGlobalName - 获取全局数据库名称。 OracleSharePoolFree - 获取共享池可用百分比%。 OracleHostCpuUtilization - 获取主机CPU使用率。 以下是一些示例使用方法: 获取所有表空间的名字: python OracleMonitoring.py --host 10.0.0.1 --user username --passwd password --instance_name instance_name --type index tableSpaceIndex 获取指定表空间的已使用空间(GB): python OracleMonitoring.py --host 10.0.0.1 --user username --passwd password --instance_name instance_name --type space tablespaceUsed tablespace_name 获取 Oracle 实例的状态: python OracleMonitoring.py --host 10.0.0.1 --user username --passwd password --instance_name instance_name --type statis OracleInstanceStatus 注意事项 在使用脚本前,请确保已安装所需的 Python 环境,并安装了必要依赖项(如 cx_Oracle)。 使用脚本时,请注意保护好数据库连接信息,避免泄露敏感信息。 在使用脚本时,请谨慎选择监控的函数和参数,确保获取的数据是正确的,并且不会对数据库造成负载过大的影响。 脚本可根据实际情况进行修改,作者并没有准备好相应的zabbix模板,可以支持Zabbix 5.x/6.x/7.x 等版本。如需制作Zabbix模板,可扫码联系作者远程现场制作模板。 ![输入图片说明](IMG_5224.jpg)