一、Oracle 监控指标
Oracle数据库常见性能指标主要有:当前登录数、非阻塞锁数、当前死锁数、阻塞锁数、当前锁数、会话数等内容,如下图所示。
注意:以下是 Oracle 监控所需要的指标,具体根据需要监控哪些、超阈值而定。
1.1 新建主机群组
1.2 新建模板
1.3 创建主机
1.1 新建主机群组
1.1.1 主机群组 —> 创建主机组
1.1.2 新建一个主机组 My_Oracle
1.2 新建模板
注意:A_Oracle模板是没监控项和触发器的,如何创建下面会说到
1.2.1 模板 —> 创建模板
1.2.2 模板名称为:A_Oracle、模板组选择 Templates
1.3 创建主机
1.3.1 主机 —> 创建主机
1.3.2 主机名称为:TESTDB_192.168.111.139、主机群组选择 My_Oracle、添加接口选择Agent
1.3.3 添加宏
{$ORACLE.DSN} ---- > 对应odbc.ini文件中的DSN
{$ORACLE.USER} ---- > 监控用户
{$ORACLE.PASSWORD} ---- > 监控用户密码
{$ORACLE.PORT} ---- > 数据库端口
二、创建监控项、触发器
2.1 在A_Oracle模板下创建监控项 :Oracle 阻塞会话数、触发器:Oracle 阻塞会话数大于50
2.1.1 模板 —> 监控项 —> 创建监控项
2.1.2 填入相应的信息
名称:Oracle 阻塞会话数
类型:数据库监控
键值:db.odbc.select[db_lock,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select count(1) from (select inst_id, DECODE(request,0,' Holder: ','Waiter: ')||sid Xmode, id1, id2, lmode, request, type from gV$LOCK where (id1, id2, type) in (select id1, id2, type from gV$LOCK where request>0) order by request,id1);
2.1.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.1.4 填入相应的信息
名称:Oracle 阻塞会话数大于 50
表达式:last(/A_Oracle/db.odbc.select[db_lock,"{$ORACLE.DSN}"])>50
2.1.5 查看是否可用
可以获取到值则可用
2.2 在A_Oracle模板下创建监控项 :Oracle 长事务数
2.2.1 模板 —> 监控项 —> 创建监控项
2.2.2 填入相应的信息
名称:Oracle 长事务数
类型:数据监控
键值:db.odbc.select[oracle_long_query,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
用户密码:{$ORACLE.PASSWORD}
sql查询:select count(1) from gv$session a, gv$sql b where a.inst_id=b.inst_id and a.sql_address=b.address and a.sql_hash_value=b.hash_value and a.sql_child_number=b.child_number and a.status='ACTIVE' and a.type='USER' and (sysdate-a.SQL_EXEC_START)*24*60>10
2.2.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.2.4 填入相应的信息
名称:Oracle 存在超过 10 分钟的长事务
表达式:last(/TESTDB_192.168.111.139/db.odbc.select[oracle_long_query,"{$ORACLE.DSN}"])>0
2.2.5 查看是否可用
可以获取到值则可用
2.3 在A_Oracle模板下创建监控项 :Oracle 表空间使用率超过90%且剩余空间小于50G
2.3.1 模板 —> 监控项 —> 创建监控项
2.3.2 填入相应的信息
名称:Oracle 表空间使用率超过90%且剩余空间小于50G
类型:数据库监控
键值:db.odbc.select[db_tablespace_90,"{$ORACLE.DSN}"]
SQL查询:select count(*) count from (select tablespace_name , sum(bytes)/1024/1024 free from dba_free_space where tablespace_name not like '%UNDO%' group by tablespace_name) a,(select tablespace_name , sum(bytes)/1024/1024 total ,AUTOEXTENSIBLE from dba_data_files where tablespace_name not like '%UNDO%' group by tablespace_name,AUTOEXTENSIBLE) b where a.tablespace_name(+)=b.tablespace_name and round((b.total-a.free)/b.total*100,2) > 90 and a.free < 51200
2.3.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.3.4 填入相应的信息
名称:Oracle 表空间使用率超过 90% 且剩余空间小于 50G
表达式:last(/A_Oracle/db.odbc.select[db_tablespace_90,"{$ORACLE.DSN}"])>0
2.3.5 查看是否可用
获取到值则可用
2.4 在A_Oracle模板下创建监控项 :Oracle 表空间使用率超过75%且剩余空间小于200G
2.4.1 模板 —> 监控项 —> 创建监控项
2.4.2 填入相应的信息
名称:Oracle 表空间使用率超过75%且剩余空间小于200G
类型:数据库监控
键值:db.odbc.select[db_tablespace,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
sql查询:select count(*) count from (select tablespace_name , sum(bytes)/1024/1024 free from dba_free_space where tablespace_name not like '%UNDO%' group by tablespace_name) a,(select tablespace_name , sum(bytes)/1024/1024 total ,AUTOEXTENSIBLE from dba_data_files where tablespace_name not like '%UNDO%' group by tablespace_name,AUTOEXTENSIBLE) b where a.tablespace_name(+)=b.tablespace_name and round((b.total-a.free)/b.total*100,2) > 75 and a.free < 204800
2.4.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.4.4 填入相应的信息
名称:Oracle 表空间使用率超过 75% 且剩余空间小于 200G
表达式:last(/A_Oracle/db.odbc.select[db_tablespace,"{$ORACLE.DSN}"])>0
2.4.5 查看是否可用
获取到值则可用
2.5 在A_Oracle模板下创建监控项 :Oracle 等待会话数
2.5.1 模板 —> 监控项 —> 创建监控项
2.5.2 填入相应的信息
名称:Oracle等待会话数
类型:数据库监控
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
sql查询:select count(1) from v$session where Seconds_in_wait/60>=1 and STATE='WAITING' and sid in (select HOLDING_SESSION from DBA_WAITERS);
2.5.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器(暂无创建)
2.5.4 填入相应的信息(暂无创建)
2.5.5 查看是否可用
获取到值则可用
2.6 在A_Oracle模板下创建监控项 :Oracle 等待事件信息
2.6.1 模板 —> 监控项 —> 创建监控项
2.6.2 填入相应的信息
名称:Oracle 等待事件信息
类型:数据库监控
键值:db.odbc.get[oracle_wait_event,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select inst_id,event,sql_id,status,count(1),trunc(avg(SECONDS_IN_WAIT)) AVG_Sec_Wait,max(SECONDS_IN_WAIT) Max_Sec_Wait from gv$session where event not in ('class slave wait','SQL*Net message from client','rdbmsipc message') group by inst_id,event,sql_id,status having count(1) > 2 order by 6 desc;
信息:文本
2.6.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器(暂无创建)
2.6.4 填入相应的信息(暂无创建)
2.6.5 查看是否可用
获取到值则可用
2.7 在A_Oracle模板下创建监控项 :Oracle 用户 LOCKED(TIMED)或 EXPIRED(GRACE)
2.7.1 模板 —> 监控项 —> 创建监控项
2.7.2 填入相应的信息
名称:Oracle 用户 LOCKED(TIMED)或 EXPIRED(GRACE)
类型:数据库监控
键值:db.odbc.select[db_account,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select count(1) from dba_users where account_status in ('LOCKED(TIMED)','EXPIRED(GRACE)');
2.7.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.7.4 填入相应的信息
名称:Oracle 用户 LOCKED(TIMED) 或 EXPIRED(GRACE)
表达式:last(/A_Oracle/db.odbc.select[db_account,"{$ORACLE.DSN}"])>0
2.7.5 查看是否可用
获取到值则可用
2.8 在A_Oracle模板下创建监控项 :Oracle 活动会话数
2.8.1 模板 —> 监控项 —> 创建监控项
2.8.2 填入相应的信息
名称:Oracle 活动会话数
类型:数据库监控
键值:db.odbc.select[oracle_active_sessions,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select count(1) count from v$session vs where vs.status='ACTIVE' and vs.username is not null;
2.8.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器(暂不创建)
2.8.4 填入相应的信息
2.8.5 查看是否可用
获取到值则可用
2.9 在A_Oracle模板下创建监控项 :Oracle 日志同步平均等待时间
2.9.1 模板 —> 监控项 —> 创建监控项
2.9.2 填入相应的信息
名称:Oracle 日志同步平均等待时间
类型:数据库监控
键值:db.odbc.select[oracle_log_file_sync,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
信息类型:浮点数
单位:s
SQL查询:SELECT round(time_waited/DECODE(wait_count,0,1,wait_count),2) FROM v$eventmetric m,v$event_name e WHERE m.event_id = e.event_id AND e.name = 'log file sync';
2.9.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器(暂不创建)
2.9.4 填入相应的信息
2.9.5 查看是否可用
获取到值则可用
2.10 在A_Oracle模板下创建监控项 :Oracle 数据量
2.10.1 模板 —> 监控项 —> 创建监控项
2.10.2 填入相应的信息
名称:Oracle 数据量
类型:数据库监控
键值:db.odbc.select[oracle_data_segment_size,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:SELECT sum(bytes/1024/1024/1024) retvalue FROM dba_segments
信息类型:浮点数
单位:G
2.10.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器(暂不创建)
2.10.4 填入相应的信息
2.10.5 查看是否可用
获取到值则可用
2.11 在A_Oracle模板下创建监控项 :Oracle 数据文件大小
2.11.1 模板 —> 监控项 —> 创建监控项
2.11.2 填入相应的信息
名称:Oracle 数据文件大小
类型:数据库监控
键值:db.odbc.select[oracle_data_files_size,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:SELECT to_char(sum(bytes), 'FM99999999999999990') retvalue FROM dba_data_files;
单位:B
2.11.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器(暂不创建)
2.11.4 填入相应的信息
2.11.5 查看是否可用
获取到值则可用
2.12 在A_Oracle模板下创建监控项 :Oracle 数据库错误信息
2.12.1 模板 —> 监控项 —> 创建监控项
2.12.2 填入相应的信息
名称:Oracle 数据库错误信息
类型:数据库监控
键值:db.odbc.get[db_problem,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select (select name from v$database) db_name, to_char(cast(lastinc_time as date),'YYYY-MM-DD HH24:MI:SS') last_time, (sysdate - cast(lastinc_time as date))*86400 duration_secs, PROBLEM_KEY from sys.V_$DIAG_PROBLEM order by 2 desc;
信息类型:文本
2.12.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器(暂不创建)
2.12.4 填入相应的信息
2.12.5 查看是否可用
获取到值则可用
2.13 在A_Oracle模板下创建监控项 :Oracle 数据库补丁信息
2.13.1 模板 —> 监控项 —> 创建监控项
2.13.2 填入相应的信息
名称:Oracle 数据库补丁信息
类型:数据库监控
键值:db.odbc.select[db_opatch,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select listagg(COMMENTS,',') within group (order by COMMENTS) as COMMENTS from (select to_char(ACTION_TIME,'yyyy-mm-dd hh24:mi:ss') ACTION_TIME, ACTION, COMMENTS from sys.DBA_REGISTRY_HISTORY order by 1 desc) where rownum<3
信息类型:文本
更新间隔:1h
2.13.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器(暂不创建)
2.13.4 填入相应的信息
2.13.5 查看是否可用
获取到值则可用
2.14 在A_Oracle模板下创建监控项 :Oracle 数据库监听端口状态
2.14.1 模板 —> 监控项 —> 创建监控项
2.14.2 填入相应的信息
名称:Oracle 数据库监听端口状态
类型:zabbix 客户端
键值:net.tcp.listen[{$ORACLE.PORT}]
2.14.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.14.4 填入相应的信息
名称:Oracle 数据库监听端口无法访问
表达式:last(/A_Oracle/net.tcp.listen[{$ORACLE.PORT}])=0
2.14.5 查看是否可用
获取到值则可用
2.15 在A_Oracle模板下创建监控项 :Oracle 数据库状态
2.15.1 模板 —> 监控项 —> 创建监控项
2.15.2 填入相应的信息
名称:Oracle 数据库状态
类型:数据库监控
键值:db.odbc.select[db_status,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select count(1) from dual;
2.15.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.15.4 填入相应的信息
名称:Oracle 监控连通性异常(10分钟未更新到数据)
表达式:last(/A_Oracle/db.odbc.select[db_status,"{$ORACLE.DSN}"])<>1 or nodata(/A_Oracle/db.odbc.select[db_status,"{$ORACLE.DSN}"],10m)=1
2.15.5 查看是否可用
获取到值则可用
2.16 在A_Oracle模板下创建监控项 :Oracle 数据库版本信息
2.16.1 模板 —> 监控项 —> 创建监控项
2.16.2 填入相应的信息
名称:Oracle 数据库版本信息
类型:数据库监控
键值:db.odbc.select[db_version,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select version from v$instance;
信息类型:字符
更新间隔:10m
2.16.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器(暂不创建)
2.16.4 填入相应的信息
2.16.5 查看是否可用
获取到值则可用
2.17 在A_Oracle模板下创建监控项 :Oracle 可用连接数(<最大连接数的20%)
2.17.1 模板 —> 监控项 —> 创建监控项
2.17.2 填入相应的信息
名称:Oracle 可用连接数(<最大连接数的 20%)
类型:数据库监控
键值:db.odbc.select[db_processes,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select count(1) from (select trim(limit_value-current_utilization)/limit_value from v$resource_limit where resource_name='processes' and trim(limit_value-current_utilization)/limit_value < 0.2)
2.17.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.17.4 填入相应的信息
名称:Oracle 可用连接数小于 20%
表达式:
2.17.5 查看是否可用
获取到值则可用
2.18 在A_Oracle模板下创建监控项 :Oracle 可用连接数(<最大连接数的10%)
2.18.1 模板 —> 监控项 —> 创建监控项
2.18.2 填入相应的信息
名称:Oracle 可用连接数(<最大连接数的 10%)
类型:数据库监控
键值:db.odbc.select[db_processes_10,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select count(1) from (select trim(limit_value-current_utilization)/limit_value from v$resource_limit where resource_name='processes' and trim(limit_value-current_utilization)/limit_value < 0.1)
2.18.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.18.4 填入相应的信息
名称:Oracle 可用连接数小于 10%
表达式:last(/A_Oracle/db.odbc.select[db_processes_10,“{$ORACLE.DSN}”])>0
2.18.5 查看是否可用
获取到值则可用
2.19 在A_Oracle模板下创建监控项 :Oracle RMAN 备份失败任务数
2.19.1 模板 —> 监控项 —> 创建监控项
2.19.2 填入相应的信息
名称:Oracle RMAN 备份失败任务数
类型:数据库监控
键值:db.odbc.select[db_rman_backup,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select count(1) from v$rman_backup_job_details where status='FAILED' and to_date((to_char(start_time)))>sysdate-1;
更新间隔:1h
2.19.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.19.4 填入相应的信息
名称:Oracle RMAN 备份失败
表达式:last(/A_Oracle/db.odbc.select[db_rman_backup,"{$ORACLE.DSN}"])>0
2.19.5 查看是否可用
获取到值则可用
2.20 在A_Oracle模板下创建监控项 :Oracle RMAN 10天内无全备
2.20.1 模板 —> 监控项 —> 创建监控项
2.20.2 填入相应的信息
名称:Oracle RMAN 10天内无全备
类型:数据库监控
键值:db.odbc.select[db_rman_backupfull,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select count(1) from v$rman_backup_job_details where status like 'COMPLETED%' and input_type like 'DB%' and to_date((to_char(start_time)))>sysdate-12;
更新间隔:6h
2.20.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.20.4 填入相应的信息
名称:Oracle RMAN 10天内无全备
表达式:last(/A_Oracle/db.odbc.select[db_rman_backupfull,"{$ORACLE.DSN}"])=0 and bytelength(last(/A_Oracle/db.odbc.select[db_version,"{$ORACLE.DSN}"]))=1
2.20.5 查看是否可用
获取到值则可用
2.21 在A_Oracle模板下创建监控项 :Oracle RMAN 7天内无归档备份
2.21.1 模板 —> 监控项 —> 创建监控项
2.21.2 填入相应的信息
名称:Oracle RMAN 7天内无归档备份
类型:数据库监控
键值:db.odbc.select[db_rman_backuparch,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select count(1) from v$rman_backup_job_details where status like 'COMPLETED%' and input_type like 'ARCHIVELOG%' and to_date((to_char(start_time)))>sysdate-7;
更新间隔:6h
2.21.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.21.4 填入相应的信息
名称:Oracle RMAN 7天内无归档备份
表达式:
2.21.5 查看是否可用
获取到值则可用
2.22 在A_Oracle模板下创建监控项 :Oracle ora_smon 进程数
2.22.1 模板 —> 监控项 —> 创建监控项
2.22.2 填入相应的信息
名称:Oracle ora_smon 进程数
类型:zabbix客户端
键值:proc.num[,,,ora_smon]
更新间隔:3m
2.22.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
2.22.4 填入相应的信息
名称:Oracle ora_smon 进程没有运行
表达式:last(/A_Oracle/proc.num[,,,ora_smon])=0
2.22.5 查看是否可用
获取到值则可用
三、RAC 环境新增监控项
3.1 在A_Oracle模板下创建监控项 :Oracle ASM 归档空间空闲率
3.1.1 模板 —> 监控项 —> 创建监控项
3.1.2 填入相应的信息
名称:Oracle ASM 归档空间空闲率
类型:数据库监控
键值:db.odbc.select[db_asm_arch,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select round(sum(free_mb)/ sum(total_mb)*100,2) as free_per from v$asm_disk_stat where name like '%ARC%' or name like '%FRA%' group by group_number;
信息类型:浮点数
更新间隔:5m
3.1.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
3.1.4 填入相应的信息
分三个等级
名称:Oracle ASM 归档空间使用率超过 50%
表达式:last(/A_Oracle/db.odbc.select[db_asm_arch,"{$ORACLE.DSN}"])<50
名称:Oracle ASM 归档空间使用率超过 75%
表达式:last(/A_Oracle/db.odbc.select[db_asm_arch,"{$ORACLE.DSN}"])<25
名称:Oracle ASM 归档空间使用率超过 90%
表达式:last(/A_Oracle/db.odbc.select[db_asm_arch,"{$ORACLE.DSN}"])<10
3.1.5 查看是否可用
获取到值则可用
3.2 在A_Oracle模板下创建监控项 :Oracle ASM 磁盘组状态异常数(非 CONNECTED 或 MOUNTED)
3.2.1 模板 —> 监控项 —> 创建监控项
3.2.2 填入相应的信息
名称:Oracle ASM 磁盘组状态异常数(非 CONNECTED 或 MOUNTED)
类型:数据库监控
键值:db.odbc.select[asm_diskgroup,{$ORACLE.DSN}]
SQL查询:select count(*) from v$asm_diskgroup where state <> 'CONNECTED' and state <> 'MOUNTED';
信息类型:数字(无正负)
更新间隔:5m
3.3.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
3.3.4 填入相应的信息
名称:Oracle:ASM 磁盘组状态异常(非 CONNECTED 或 MOUNTED)
Operational data:Oracle:ASM 磁盘组状态异常数:{ITEM.LASTVALUE1}
表达式:last(/A_Oracle/db.odbc.select[asm_diskgroup,{$ORACLE.DSN}])>0
3.3.5 查看是否可用
获取到值则可用
3.4 在A_Oracle模板下创建监控项 :Oracle ASM 磁盘组使用率超90%且剩余空间小于100G
3.4.1 模板 —> 监控项 —> 创建监控项
3.4.2 填入相应的信息
名称:Oracle ASM 磁盘组使用率超90%且剩余空间小于100G
类型:数据库监控
键值:db.odbc.select[db_asm_data_90,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select count(1) from (select sum(free_mb),sum(total_mb),sum(free_mb)/sum(total_mb)*100 as p_free from v$asm_disk_stat where name like '%DATA%' group by group_number having sum(free_mb)/1024<100) where p_free<10;
信息类型:数字(无正负)
更新间隔:5m
3.4.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
3.4.4 填入相应的信息
名称:Oracle ASM 磁盘组使用率超过 90% 且剩余空间小于 100G
表达式:last(/A_Oracle/db.odbc.select[db_asm_data_90,"{$ORACLE.DSN}"])>0
3.4.5 查看是否可用
获取到值则可用
3.5 在A_Oracle模板下创建监控项 :Oracle ASM 磁盘组使用率超75%且剩余空间小于300G
3.5.1 模板 —> 监控项 —> 创建监控项
3.5.2 填入相应的信息
名称:Oracle ASM 磁盘组使用率超过 75% 且剩余空间小于 300G
类型:数据库监控
键值:db.odbc.select[db_asm_data,"{$ORACLE.DSN}"]
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:select count(1) from (select sum(free_mb),sum(total_mb),sum(free_mb)/sum(total_mb)*100 as p_free from v$asm_disk_stat where name like '%DATA%' group by group_number having sum(free_mb)/1024<300) where p_free<25;
信息类型:数字(无正负)
更新间隔:5m
3.5.3 创建触发器:模板 —> 选择新建的模板 A_Oracle —> 触发器 —> 创建触发器
3.5.4 填入相应的信息
名称:Oracle ASM 磁盘组使用率超过 75% 且剩余空间小于 300G
表达式:last(/A_Oracle/db.odbc.select[db_asm_data,"{$ORACLE.DSN}"])>0
3.5.5 查看是否可用
获取到值则可用