5.0
2021-02-10T14:35:58Z
Templates/Databases
Template DB Oracle by ODBC
Template DB Oracle by ODBC
1. Create an Oracle user for monitoring.
2. Set the user name and password in host macros ({$ORACLE.USER} and {$ORACLE.PASSWORD}).
Do not forget to install the Microsoft ODBC driver on the Zabbix server or the Zabbix proxy.
See Oracle documentation for instructions: https://www.oracle.com/database/technologies/releasenote-odbc-ic.html.
Note! Credentials in the odbc.ini do not work for Oracle.
Note! Be sure that ODBC connects to Oracle with session parameter NLS_NUMERIC_CHARACTERS= '.,' It is important for correct display float numbers in Zabbix.
The "Service's TCP port state" item uses {HOST.CONN} and {$ORACLE.PORT} macros to check the availability of the listener.
Template tooling version used: 0.38
Templates/Databases
Oracle
Zabbix raw items
-
Oracle: Get archive log info
ODBC
db.odbc.get[get_archivelog_stat,"{$ORACLE.DSN}"]
5m
0
0
TEXT
SELECT
d.dest_name, DECODE (d.status, 'VALID',3, 'DEFERRED', 2, 'ERROR', 1, 0) AS status,
d.log_sequence,
d.error
FROM v$archive_dest d , v$database db
WHERE d.status != 'INACTIVE' AND db.log_mode = 'ARCHIVELOG';
{$ORACLE.USER}
{$ORACLE.PASSWORD}
Zabbix raw items
-
Oracle: Get ASM stats
ODBC
db.odbc.get[get_asm_stat,"{$ORACLE.DSN}"]
0
0
TEXT
SELECT
name AS dg_name,
ROUND(total_mb / DECODE(TYPE, 'NORMAL', 2, 'HIGH', 3, 'EXTERN', 1)*1024*1024) AS size_byte,
ROUND(usable_file_mb*1024*1024 ) AS free_size_byte,
ROUND(100-(usable_file_mb /(total_mb / DECODE(TYPE, 'NORMAL', 2, 'HIGH', 3, 'EXTERN', 1)))* 100, 2) AS used_percent
FROM v$asm_diskgroup ;
{$ORACLE.USER}
{$ORACLE.PASSWORD}
Get ASM disk groups stats.
Zabbix raw items
-
Oracle: Get CDB and No-CDB info
ODBC
db.odbc.get[get_cdb_info,"{$ORACLE.DSN}"]
0
0
TEXT
SELECT name as DBNAME,
DECODE(open_mode, 'MOUNTED', 1, 'READ ONLY', 2, 'READ WRITE', 3, 'READ ONLY WITH APPLY', 4, 'MIGRATE', 5, 0) AS open_mode,
DECODE(database_role, 'SNAPSHOT STANDBY', 1, 'LOGICAL STANDBY', 2, 'PHYSICAL STANDBY', 3, 'PRIMARY', 4, 'FAR SYNC', 5, 0) AS ROLE,
DECODE(force_logging, 'YES',1,'NO',0,0) AS force_logging,
DECODE(log_mode, 'MANUAL',2 ,'ARCHIVELOG',1,'NOARCHIVELOG',0,0) AS log_mode
FROM v$database
{$ORACLE.USER}
{$ORACLE.PASSWORD}
Get info about CDB and No-CDB databases on instansce.
Zabbix raw items
-
Oracle: Get instance state
ODBC
db.odbc.get[get_instance_state,"{$ORACLE.DSN}"]
0
0
TEXT
SELECT
INSTANCE_NAME,
HOST_NAME,
VERSION || '-' || EDITION AS VERSION,
floor((SYSDATE - startup_time)*60*60*24) AS UPTIME,
decode(status,'STARTED',1,'MOUNTED',2,'OPEN',3,'OPEN MIGRATE',4, 0) AS STATUS,
decode(archiver,'STOPPED',1,'STARTED',2,'FAILED',3, 0) AS ARCHIVER,
decode(instance_role,'PRIMARY_INSTANCE',1,'SECONDARY_INSTANCE',2, 0) AS INSTANCE_ROLE
FROM v$instance;
{$ORACLE.USER}
{$ORACLE.PASSWORD}
The item gets state of the current instance.
Zabbix raw items
-
Oracle: Get PDB info
ODBC
db.odbc.get[get_pdb_info,"{$ORACLE.DSN}"]
0
0
TEXT
SELECT
name as DBNAME,
DECODE(open_mode, 'MOUNTED', 1, 'READ ONLY', 2, 'READ WRITE', 3, 'READ ONLY WITH APPLY', 4, 'MIGRATE', 5, 0) AS open_mode
FROM v$pdbs;
{$ORACLE.USER}
{$ORACLE.PASSWORD}
Get info about PDB databases on instansce.
Zabbix raw items
-
Oracle: Get system metrics (1)
ODBC
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
0;m0-59
0
0
TEXT
SELECT 'SYS::' || METRIC_NAME AS METRIC, ROUND(VALUE,3) AS VALUE
FROM V$SYSMETRIC WHERE GROUP_ID = 2
UNION
SELECT 'SYSPARAM::' || INITCAP(NAME), to_number(VALUE)
FROM V$SYSTEM_PARAMETER WHERE NAME IN ('sessions', 'processes', 'db_files')
UNION
SELECT 'SESSION::Long time locked' ,count(*) FROM V$SESSION s WHERE s.BLOCKING_SESSION IS NOT NULL AND s.BLOCKING_SESSION_STATUS='VALID' AND s.SECONDS_IN_WAIT > {$ORACLE.SESSION.LOCK.MAX.TIME}
UNION
SELECT 'SESSION::Lock rate' ,(cnt_block / cnt_all)* 100 pct
FROM ( SELECT COUNT(*) cnt_block FROM v$session WHERE blocking_session IS NOT NULL), ( SELECT COUNT(*) cnt_all FROM v$session)
UNION
SELECT 'SESSION::Total', COUNT(*) FROM V$SESSION
UNION
SELECT 'SESSION::' || INITCAP(STATUS)|| ' ' || INITCAP(TYPE), COUNT(*) FROM V$SESSION GROUP BY STATUS, TYPE
UNION
SELECT 'SESSION::Concurrency rate', NVL(ROUND(SUM(duty_act.cnt*100 / num_cores.val)), 0)
FROM
( SELECT DECODE(session_state, 'ON CPU', 'CPU', wait_class) wait_class, ROUND(COUNT(*)/(60 * 15), 1) cnt
FROM v$active_session_history sh
WHERE sh.sample_time >= SYSDATE - 15 / 1440 AND DECODE(session_state, 'ON CPU', 'CPU', wait_class) IN('Concurrency')
GROUP BY DECODE(session_state, 'ON CPU', 'CPU', wait_class)) duty_act,
( SELECT SUM(value) val FROM v$osstat WHERE stat_name = 'NUM_CPU_CORES') num_cores
UNION
SELECT 'PGA::' || INITCAP(NAME), VALUE FROM V$PGASTAT
UNION
SELECT 'PROC::Procnum', COUNT(*) FROM v$process
UNION
SELECT 'DATAFILE::Count', COUNT(*) FROM v$datafile;
{$ORACLE.USER}
{$ORACLE.PASSWORD}
The item gets system metric values.
Zabbix raw items
-
Oracle: Get system metrics (2)
ODBC
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
0;m0-59
0
0
TEXT
SELECT 'SGA::' || INITCAP(pool) AS METRIC , SUM(bytes) AS VALUE FROM V$SGASTAT
WHERE pool IN ( 'java pool', 'large pool' ) GROUP BY pool
UNION
SELECT 'SGA::Shared Pool', SUM(bytes) FROM V$SGASTAT
WHERE pool = 'shared pool' AND name NOT IN ('library cache', 'dictionary cache', 'free memory', 'sql area')
UNION
SELECT 'SGA::' || INITCAP(name), bytes FROM V$SGASTAT
WHERE pool IS NULL AND name IN ('log_buffer', 'fixed_sga')
UNION
SELECT 'SGA::Buffer_Cache', SUM(bytes) FROM V$SGASTAT
WHERE pool IS NULL AND name IN ('buffer_cache', 'db_block_buffers')
UNION
SELECT 'REDO::Available', count(*) from v$log t where t.status in ('INACTIVE', 'UNUSED')
UNION
SELECT 'USER::Expire password', ROUND(DECODE(SIGN(NVL(u.expiry_date, SYSDATE + 999) - SYSDATE),-1, 0, NVL(u.expiry_date, SYSDATE + 999) - SYSDATE)) exp_passwd_days_before
FROM dba_users u WHERE username = UPPER('{$ORACLE.USER}')
UNION
SELECT 'FRA::Space Limit', space_limit FROM V$RECOVERY_FILE_DEST
UNION
SELECT 'FRA::Space Used', space_used FROM V$RECOVERY_FILE_DEST
UNION
SELECT 'FRA::Space Reclaimable', space_reclaimable FROM V$RECOVERY_FILE_DEST
UNION
SELECT 'FRA::Number Of Files', number_of_files FROM V$RECOVERY_FILE_DEST
UNION
SELECT 'FRA::Usable Pct', DECODE(space_limit, 0, 0,(100-(100 *(space_used-space_reclaimable)/ space_limit))) AS VALUE FROM V$RECOVERY_FILE_DEST
UNION
SELECT 'FRA::Restore Point', COUNT(*) FROM V$RESTORE_POINT;
{$ORACLE.USER}
{$ORACLE.PASSWORD}
The item gets system metric values.
Zabbix raw items
-
Oracle: Get tablespaces stats
ODBC
db.odbc.get[tablespace_stats,"{$ORACLE.DSN}"]
0
0
TEXT
SELECT df.tablespace_name AS TABLESPACE, df.type AS TYPE, NVL(SUM(df.BYTES), 0) AS FILE_BYTES, NVL(SUM(df.MAX_BYTES), 0) AS MAX_BYTES, NVL(SUM(f.FREE), 0) AS FREE_BYTES, SUM(df.BYTES)-SUM(f.FREE) AS USED_BYTES, ROUND(DECODE(SUM(df.MAX_BYTES), 0, 0, (SUM(df.BYTES) / SUM(df.MAX_BYTES) * 100)), 2) AS USED_PCT_MAX, ROUND(DECODE(SUM(df.BYTES), 0, 0,(SUM(df.BYTES)-SUM(f.FREE))/ SUM(df.BYTES)* 100), 2) AS USED_FILE_PCT, DECODE(df.STATUS, 'ONLINE', 1, 'OFFLINE', 2, 'READ ONLY', 3, 0) AS STATUS FROM ( SELECT ddf.file_id, dt.contents AS TYPE, dt.STATUS , ddf.file_name, ddf.tablespace_name, TRUNC(ddf.bytes) AS bytes, TRUNC(GREATEST(ddf.bytes, ddf.maxbytes)) AS max_bytes FROM dba_data_files ddf, dba_tablespaces dt WHERE ddf.tablespace_name = dt.tablespace_name ) df, ( SELECT TRUNC(SUM(bytes)) AS FREE, file_id FROM dba_free_space GROUP BY file_id ) f WHERE df.file_id = f.file_id (+) GROUP BY df.tablespace_name, df.TYPE, df.status UNION ALL SELECT Y.name AS TABLESPACE, Y.type AS TYPE, NVL(SUM(Y.BYTES), 0) AS FILE_BYTES, NVL(SUM(Y.MAX_BYTES), 0) AS MAX_BYTES, NVL(MAX(NVL(Y.FREE_BYTES, 0)), 0) AS FREE, SUM(Y.BYTES)-SUM(Y.FREE_BYTES) AS USED_BYTES, ROUND(DECODE(SUM(Y.MAX_BYTES), 0, 0, (SUM(Y.BYTES) / SUM(Y.MAX_BYTES) * 100)), 2) AS USED_PCT_MAX, ROUND(DECODE(SUM(Y.BYTES), 0, 0,(SUM(Y.BYTES)-SUM(Y.FREE_BYTES))/ SUM(Y.BYTES)* 100), 2) AS USED_FILE_PCT, DECODE(Y.TBS_STATUS, 'ONLINE', 1, 'OFFLINE', 2, 'READ ONLY', 3, 0) AS STATUS FROM ( SELECT dtf.tablespace_name AS name, dt.contents AS TYPE, dt.STATUS AS tbs_status, dtf.status AS status, dtf.bytes AS bytes, (SELECT ((f.total_blocks - s.tot_used_blocks)* vp.value) FROM ( SELECT tablespace_name, SUM(used_blocks) tot_used_blocks FROM gv$sort_segment WHERE tablespace_name != 'DUMMY' GROUP BY tablespace_name) s, ( SELECT tablespace_name, SUM(blocks) total_blocks FROM dba_temp_files WHERE tablespace_name != 'DUMMY' GROUP BY tablespace_name) f, ( SELECT value FROM v$parameter WHERE name = 'db_block_size') vp WHERE f.tablespace_name = s.tablespace_name AND f.tablespace_name = dtf.tablespace_name ) AS free_bytes, CASE WHEN dtf.maxbytes = 0 THEN dtf.bytes ELSE dtf.maxbytes END AS max_bytes FROM sys.dba_temp_files dtf, sys.dba_tablespaces dt WHERE dtf.tablespace_name = dt.tablespace_name ) Y GROUP BY Y.name, Y.TYPE, Y.tbs_status;
{$ORACLE.USER}
{$ORACLE.PASSWORD}
Get tablespaces stats.
Zabbix raw items
-
Oracle: Service's TCP port state
net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}]
30s
7d
Test the availability of Oracle on TCP port.
Oracle
Service state
DISCARD_UNCHANGED_HEARTBEAT
10m
-
Oracle: Active parallel sessions
DEPENDENT
oracle.active_parallel_sessions
0
7d
FLOAT
The number of active parallel sessions.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Active Parallel Sessions')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Active serial sessions
DEPENDENT
oracle.active_serial_sessions
0
7d
FLOAT
The number of active serial sessions.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Active Serial Sessions')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Average active sessions
DEPENDENT
oracle.active_sessions
0
7d
FLOAT
The average active sessions at a point in time. It is the number of sessions that are either working or waiting.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Average Active Sessions')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Archiver state
DEPENDENT
oracle.archiver_state
0
7d
Automatic archiving status.
Oracle
Oracle archiver state
JSONPATH
$..ARCHIVER.first()
db.odbc.get[get_instance_state,"{$ORACLE.DSN}"]
-
Oracle: Buffer cache hit ratio
DEPENDENT
oracle.buffer_cache_hit_ratio
0
7d
FLOAT
%
Ratio of buffer cache hits. (LogRead - PhyRead)/LogRead
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Buffer Cache Hit Ratio')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Global cache blocks corrupted
DEPENDENT
oracle.cache_blocks_corrupt
0
7d
The number of blocks that encountered a corruption or checksum failure during interconnect.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Global Cache Blocks Corrupted')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Global cache blocks lost
DEPENDENT
oracle.cache_blocks_lost
0
7d
The number of global cache blocks lost
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Global Cache Blocks Lost')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Cursor cache hit ratio
DEPENDENT
oracle.cursor_cache_hit_ratio
0
7d
FLOAT
%
Ratio of cursor cache hits. CursorCacheHit/SoftParse
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Cursor Cache Hit Ratio')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Database CPU time ratio
DEPENDENT
oracle.database_cpu_time_ratio
0
7d
FLOAT
%
Calculated by dividing the total CPU used by the database by the Oracle time model statistic DB time.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Database CPU Time Ratio')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Database wait time ratio
DEPENDENT
oracle.database_wait_time_ratio
0
7d
FLOAT
%
Wait time: the time that the server process spends waiting for available shared resources (to be released by other server processes) such as latches, locks, data buffers, and so on
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Database Wait Time Ratio')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Datafiles count
DEPENDENT
oracle.db_files_count
0
7d
Current number of datafile.
Oracle
JSONPATH
$[?(@.METRIC=='DATAFILE::Count')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Datafiles limit
DEPENDENT
oracle.db_files_limit
0
7d
Max allowable number of datafile.
Oracle
JSONPATH
$[?(@.METRIC=='SYSPARAM::Db_Files')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Disk sort per second
DEPENDENT
oracle.disk_sorts
0
7d
FLOAT
Rps
The number of sorts going to disk per second
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Disk Sort Per Sec')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Enqueue timeouts per second
DEPENDENT
oracle.enqueue_timeouts_rate
0
7d
FLOAT
Rps
Enqueue timeouts per second.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Enqueue Timeouts Per Sec')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: FRA, Number of files
DEPENDENT
oracle.fra_number_of_files
0
7d
Number of files in the fast recovery area
Oracle
JSONPATH
$[?(@.METRIC=='FRA::Number Of Files')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: FRA, Number of restore points
DEPENDENT
oracle.fra_restore_point
0
7d
FLOAT
Oracle
JSONPATH
$[?(@.METRIC=='FRA::Restore Point')].VALUE.first()
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: FRA, Space limit
DEPENDENT
oracle.fra_space_limit
0
7d
B
Maximum amount of disk space (in bytes) that the database can use for the fast recovery area.
Oracle
JSONPATH
$[?(@.METRIC=='FRA::Space Limit')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: FRA, Space reclaimable
DEPENDENT
oracle.fra_space_reclaimable
0
7d
B
Total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low priority files from the fast recovery area.
Oracle
JSONPATH
$[?(@.METRIC=='FRA::Space Reclaimable')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: FRA, Used space
DEPENDENT
oracle.fra_space_used
0
7d
B
Amount of disk space (in bytes) used by fast recovery area files created in current and all previous fast recovery areas.
Oracle
JSONPATH
$[?(@.METRIC=='FRA::Space Used')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: FRA, Usable space in %
DEPENDENT
oracle.fra_usable_pct
0
7d
FLOAT
%
Oracle
JSONPATH
$[?(@.METRIC=='FRA::Usable Pct')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: GC CR block received per second
DEPENDENT
oracle.gc_cr_block_received_rate
0
7d
FLOAT
Rps
GC CR block received per second.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::GC CR Block Received Per Second')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Instance hostname
DEPENDENT
oracle.instance_hostname
0
7d
0
CHAR
Name of the host machine.
Oracle
JSONPATH
$..HOST_NAME.first()
db.odbc.get[get_instance_state,"{$ORACLE.DSN}"]
{diff()}=1 and {strlen()}>0
Oracle: Instance hostname has changed (new hostname received: {ITEM.VALUE})
INFO
Oracle DB Instance hostname has changed. Ack to close.
YES
-
Oracle: Instance name
DEPENDENT
oracle.instance_name
0
7d
0
CHAR
Name of the instance.
Oracle
JSONPATH
$..INSTANCE_NAME.first()
db.odbc.get[get_instance_state,"{$ORACLE.DSN}"]
{diff()}=1 and {strlen()}>0
Oracle: Instance name has changed (new name received: {ITEM.VALUE})
INFO
Oracle DB Instance name has changed. Ack to close.
YES
-
Oracle: Instance status
DEPENDENT
oracle.instance_status
0
7d
Status of the instance.
Oracle
Oracle instance status
JSONPATH
$..STATUS.first()
db.odbc.get[get_instance_state,"{$ORACLE.DSN}"]
-
Oracle: Instance role
DEPENDENT
oracle.instance.role
0
7d
Indicates whether the instance is an active instance or an inactive secondary instance.
Oracle
Oracle instance role
JSONPATH
$..INSTANCE_ROLE.first()
db.odbc.get[get_instance_state,"{$ORACLE.DSN}"]
-
Oracle: Library cache hit ratio
DEPENDENT
oracle.library_cache_hit_ratio
0
7d
FLOAT
%
Ratio of library cache hits. Hits/Pins
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Library Cache Hit Ratio')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Logons per second
DEPENDENT
oracle.logons_rate
0
7d
FLOAT
Rps
The number of logon attempts.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Logons Per Sec')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Long table scans per second
DEPENDENT
oracle.long_table_scans_rate
0
7d
FLOAT
Rps
The number of long table scans per second. A table is considered 'long' if the table is not cached and if its high-water mark is greater than 5 blocks.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Long Table Scans Per Sec')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Memory sorts ratio
DEPENDENT
oracle.memory_sorts_ratio
0
7d
FLOAT
%
The percentage of sorts (from ORDER BY clauses or index building) that are done to disk vs in-memory.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Memory Sorts Ratio')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: PGA, Global memory bound
DEPENDENT
oracle.pga_global_bound
0
7d
B
Maximum size of a work area executed in automatic mode.
Oracle
JSONPATH
$[?(@.METRIC=='PGA::Global Memory Bound')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: PGA, Aggregate target parameter
DEPENDENT
oracle.pga_target
0
7d
B
Current value of the PGA_AGGREGATE_TARGET initialization parameter. If this parameter is not set, then its value is 0 and automatic management of PGA memory is disabled.
Oracle
JSONPATH
$[?(@.METRIC=='PGA::Aggregate Pga Target Parameter')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Physical reads bytes per second
DEPENDENT
oracle.physical_read_bytes_rate
0
7d
FLOAT
Bps
Read bytes per second.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Physical Read Bytes Per Sec')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Physical reads per second
DEPENDENT
oracle.physical_reads_rate
0
7d
FLOAT
Rps
Reads per second.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Physical Reads Per Sec')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Physical writes bytes per second
DEPENDENT
oracle.physical_write_bytes_rate
0
7d
FLOAT
Bps
Write bytes per second.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Physical Write Bytes Per Sec')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Physical writes per second
DEPENDENT
oracle.physical_writes_rate
0
7d
FLOAT
Rps
Writes per second.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Physical Writes Per Sec')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Number of processes
DEPENDENT
oracle.processes_count
0
7d
Oracle
JSONPATH
$[?(@.METRIC=='PROC::Procnum')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Processes limit
DEPENDENT
oracle.processes_limit
0
7d
Max user processes.
Oracle
JSONPATH
$[?(@.METRIC=='SYSPARAM::Processes')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Redo logs available to switch
DEPENDENT
oracle.redo_logs_available
0
7d
Number of available for log switching inactive/unused REDO logs.
Oracle
JSONPATH
$[?(@.METRIC=='REDO::Available')].VALUE.first()
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
{max(5m)} < {$ORACLE.REDO.MIN.WARN}
Oracle: Number of REDO logs available for switching is too low (less {$ORACLE.REDO.MIN.WARN} for 5 min)
WARNING
Number of available for log switching inactive/unused REDOs is low (Database down risk)
-
Oracle: Rows per sort
DEPENDENT
oracle.rows_per_sort
0
7d
FLOAT
The average number of rows per sort for all types of sorts performed.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Rows Per Sort')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: SQL service response time
DEPENDENT
oracle.service_response_time
0
7d
FLOAT
s
SQL service response time in seconds.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::SQL Service Response Time')].VALUE.first()
MULTIPLIER
0.01
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Active background sessions
DEPENDENT
oracle.session_active_background
0
7d
FLOAT
The number of active background sessions.
Oracle
JSONPATH
$[?(@.METRIC=='SESSION::Active Background')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Active user sessions
DEPENDENT
oracle.session_active_user
0
7d
FLOAT
The number of active user sessions.
Oracle
JSONPATH
$[?(@.METRIC=='SESSION::Active User')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Sessions concurrency
DEPENDENT
oracle.session_concurrency_rate
0
7d
FLOAT
%
The percentage of concurrency. Concurrency is a DB behaviour when different transactions request to change the same resource - in case of modifying data transactions sequentially block temporarily the right to change data, the rest of the transactions are waiting for access. In the case when access for resource is locked for a long time, then the concurrency grows (like the transaction queue) and this often has an extremely negative impact on performance. A high contention value does not indicate the root cause of the problem, but is a signal to search for it.
Oracle
JSONPATH
$[?(@.METRIC=='SESSION::Concurrency rate')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
{min(5m)} > {$ORACLE.CONCURRENCY.MAX.WARN}
Oracle: Too high database concurrency (over {$ORACLE.CONCURRENCY.MAX.WARN}% for 5 min)
WARNING
Concurrency rate is over {$ORACLE.CONCURRENCY.MAX.WARN}%. A high contention value does not indicate the root cause of the problem, but is a signal to search for it. In the case of high competition, an analysis of resource consumption should be carried out, the most "heavy" queries made in the database, possibly - session tracing. All this will help determine the root cause and possible optimization points both in the database configuration and in the logic of building queries of the application itself.
-
Oracle: Session count
DEPENDENT
oracle.session_count
0
7d
FLOAT
Session count.
Oracle
JSONPATH
$[?(@.METRIC=='SESSION::Total')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Inactive user sessions
DEPENDENT
oracle.session_inactive_user
0
7d
FLOAT
The number of inactive user sessions.
Oracle
JSONPATH
$[?(@.METRIC=='SESSION::Inactive User')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Sessions limit
DEPENDENT
oracle.session_limit
0
7d
User and system sessions.
Oracle
JSONPATH
$[?(@.METRIC=='SYSPARAM::Sessions')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Sessions lock rate
DEPENDENT
oracle.session_lock_rate
0
7d
FLOAT
%
The percentage of locked sessions. Locks are mechanisms that prevent destructive interaction between transactions accessing the same resource—either user objects such as tables and rows or system objects not visible to users, such as shared data structures in memory and data dictionary rows.
Oracle
JSONPATH
$[?(@.METRIC=='SESSION::Lock rate')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
{min(5m)} > {$ORACLE.SESSIONS.LOCK.MAX.WARN}
Oracle: Too many locked sessions (over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% for 5 min)
WARNING
Number of locked sessions is over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% of the running sessions.
-
Oracle: Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s
DEPENDENT
oracle.session_long_time_locked
0
7d
FLOAT
Count of the prolongely locked sessions. (You can change maximum session lock duration in seconds for query by {$ORACLE.SESSION.LOCK.MAX.TIME} macro. Default 600 sec)
Oracle
JSONPATH
$[?(@.METRIC=='SESSION::Long time locked')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
{min(5m)} > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN}
Oracle: Too many sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s (over {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} for 5 min)
WARNING
Number of sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME} seconds is too high. Long-term locks can negatively affect database performance, therefore, if they are detected, you should first find the most difficult queries from the database point of view and analyze possible resource leaks.
-
Oracle: SGA, buffer cache
DEPENDENT
oracle.sga_buffer_cache
0
7d
B
The size of the cache of standard blocks.
Oracle
JSONPATH
$[?(@.METRIC=='SGA::Buffer_Cache')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: SGA, fixed
DEPENDENT
oracle.sga_fixed
0
7d
B
The fixed SGA is an internal housekeeping area.
Oracle
JSONPATH
$[?(@.METRIC=='SGA::Fixed_Sga')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: SGA, java pool
DEPENDENT
oracle.sga_java_pool
0
7d
B
Memory is allocated from the java pool.
Oracle
JSONPATH
$[?(@.METRIC=='SGA::Java Pool')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: SGA, large pool
DEPENDENT
oracle.sga_large_pool
0
7d
B
Memory is allocated from the large pool.
Oracle
JSONPATH
$[?(@.METRIC=='SGA::Large Pool')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: SGA, log buffer
DEPENDENT
oracle.sga_log_buffer
0
7d
B
The number of bytes allocated for the redo log buffer.
Oracle
JSONPATH
$[?(@.METRIC=='SGA::Log_Buffer')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: SGA, shared pool
DEPENDENT
oracle.sga_shared_pool
0
7d
B
Memory is allocated from the shared pool.
Oracle
JSONPATH
$[?(@.METRIC=='SGA::Shared Pool')].VALUE.first()
CUSTOM_VALUE
0
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
-
Oracle: Shared pool free %
DEPENDENT
oracle.shared_pool_free
0
7d
FLOAT
%
Shared pool free memory percent. Free/Total
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Shared Pool Free %')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
{max(5m)}<{$ORACLE.SHARED.FREE.MIN.WARN}
Oracle: Shared pool free is too low (less {$ORACLE.SHARED.FREE.MIN.WARN}% for 5m)
WARNING
The shared pool free memory percent has been less than {$ORACLE.SHARED.FREE.MIN.WARN}% in the last 5 minutes.
-
Oracle: Total sorts per user call
DEPENDENT
oracle.sorts_per_user_call
0
7d
FLOAT
Total sorts per user call.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Total Sorts Per User Call')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Temp space used
DEPENDENT
oracle.temp_space_used
0
7d
FLOAT
B
Temp space used.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::Temp Space Used')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: PGA, Total allocated
DEPENDENT
oracle.total_pga_allocated
0
7d
B
Current amount of PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the PGA_AGGREGATE_TARGET initialization parameter. However, it is possible for the PGA allocated to exceed that value by a small percentage and for a short period of time when the work area workload is increasing very rapidly or when PGA_AGGREGATE_TARGET is set to a small value.
Oracle
JSONPATH
$[?(@.METRIC=='PGA::Total Pga Allocated')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: PGA, Total freeable
DEPENDENT
oracle.total_pga_freeable
0
7d
B
Number of bytes of PGA memory in all processes that could be freed back to the operating system.
Oracle
JSONPATH
$[?(@.METRIC=='PGA::Total Freeable Pga Memory')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: PGA, Total inuse
DEPENDENT
oracle.total_pga_used
0
7d
B
Indicates how much PGA memory is currently consumed by work areas. This number can be used to determine how much memory is consumed by other consumers of the PGA memory (for example, PL/SQL or Java).
Oracle
JSONPATH
$[?(@.METRIC=='PGA::Total Pga Inuse')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Uptime
DEPENDENT
oracle.uptime
0
7d
0d
s
Oracle instance uptime in seconds.
Oracle
JSONPATH
$..UPTIME.first()
db.odbc.get[get_instance_state,"{$ORACLE.DSN}"]
{last()}<10m
Oracle: has been restarted (uptime < 10m)
INFO
Uptime is less than 10 minutes
YES
{nodata(5m)}=1
Oracle: Failed to fetch info data (or no data for 5m)
WARNING
Zabbix has not received data for items for the last 5 minutes. The database might be unavailable for connecting.
Oracle: Port {$ORACLE.PORT} is unavailable
{Template DB Oracle by ODBC:net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}].max(#3)}=0 and {Template DB Oracle by ODBC:proc.num[,,,"tnslsnr LISTENER"].max(#3)}>0
-
Oracle: User '{$ORACLE.USER}' expire password
DEPENDENT
oracle.user_expire_password
0
7d
FLOAT
days
The number of days before zabbix account password expired.
Oracle
JSONPATH
$[?(@.METRIC=='USER::Expire password')].VALUE.first()
db.odbc.get[get_system_metrics_2,"{$ORACLE.DSN}"]
{last()} < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN}
Oracle: Zabbix account will expire soon (under {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} days)
WARNING
Password for zabbix user in the database will expire soon.
-
Oracle: User rollbacks per second
DEPENDENT
oracle.user_rollbacks_rate
0
7d
FLOAT
Rps
The number of times that users manually issue the ROLLBACK statement or an error occurred during a user's transactions.
Oracle
JSONPATH
$[?(@.METRIC=='SYS::User Rollbacks Per Sec')].VALUE.first()
db.odbc.get[get_system_metrics_1,"{$ORACLE.DSN}"]
-
Oracle: Version
DEPENDENT
oracle.version
0
7d
0
CHAR
Oracle Server version.
Oracle
JSONPATH
$..VERSION.first()
DISCARD_UNCHANGED_HEARTBEAT
1d
db.odbc.get[get_instance_state,"{$ORACLE.DSN}"]
{diff()}=1 and {strlen()}>0
Oracle: Version has changed (new version value received: {ITEM.VALUE})
INFO
Oracle DB version has changed. Ack to close.
YES
-
Oracle: Number of LISTENER processes
proc.num[,,,"tnslsnr LISTENER"]
30s
7d
Number of LISTENER processes running
Oracle
DISCARD_UNCHANGED_HEARTBEAT
10m
{max(#3)}=0
Oracle: LISTENER process is not running
DISASTER
Archive log discovery
ODBC
db.odbc.discovery[archivelog,"{$ORACLE.DSN}"]
1h
SELECT d.dest_name
FROM v$archive_dest d , v$database db WHERE d.status != 'INACTIVE' AND db.log_mode = 'ARCHIVELOG';
{$ORACLE.USER}
{$ORACLE.PASSWORD}
Log archive destinations.
Archivelog '{#DEST_NAME}': Error
DEPENDENT
oracle.archivelog_error["{#DEST_NAME}"]
0
7d
0
TEXT
Displays the error text
Oracle Archivelog
JSONPATH
$[?(@.DEST_NAME=='{#DEST_NAME}')].ERROR.first()
DISCARD_UNCHANGED_HEARTBEAT
1h
db.odbc.get[get_archivelog_stat,"{$ORACLE.DSN}"]
Archivelog '{#DEST_NAME}': Last sequence
DEPENDENT
oracle.archivelog_log_sequence["{#DEST_NAME}"]
0
7d
Identifies the sequence number of the last archived redo log to be archived
Oracle Archivelog
JSONPATH
$[?(@.DEST_NAME=='{#DEST_NAME}')].LOG_SEQUENCE.first()
db.odbc.get[get_archivelog_stat,"{$ORACLE.DSN}"]
Archivelog '{#DEST_NAME}': Status
DEPENDENT
oracle.archivelog_log_status["{#DEST_NAME}"]
0
7d
Identifies the current status of the destination: 1 - 'Valid', 2 - 'Dederred',3 - 'Error', 0 - 'Unknown'
Oracle Archivelog
Oracle Archivelog status
JSONPATH
$[?(@.DEST_NAME=='{#DEST_NAME}')].STATUS.first()
DISCARD_UNCHANGED_HEARTBEAT
1h
db.odbc.get[get_archivelog_stat,"{$ORACLE.DSN}"]
{last()}<2
Archivelog '{#DEST_NAME}': Log Archive is not valid
HIGH
ARL destination not in 3 - Valid or 2 - Deferred.
ASM disk groups discovery
ODBC
db.odbc.discovery[asm,"{$ORACLE.DSN}"]
1h
SELECT name AS dg_name FROM v$asm_diskgroup;
{$ORACLE.USER}
{$ORACLE.PASSWORD}
ASM disk groups
ASM '{#DG_NAME}': Free size
DEPENDENT
oracle.asm_free_size["{#DG_NAME}"]
0
7d
B
Free size of ASM disk group.
Oracle ASM
JSONPATH
$[?(@.DG_NAME=='{#DG_NAME}')].FREE_SIZE_BYTE.first()
db.odbc.get[get_asm_stat,"{$ORACLE.DSN}"]
ASM '{#DG_NAME}': Total size
DEPENDENT
oracle.asm_total_size["{#DG_NAME}"]
0
7d
B
Total size of ASM disk group.
Oracle ASM
JSONPATH
$[?(@.DG_NAME=='{#DG_NAME}')].SIZE_BYTE.first()
db.odbc.get[get_asm_stat,"{$ORACLE.DSN}"]
ASM '{#DG_NAME}': Free size
DEPENDENT
oracle.asm_used_pct["{#DG_NAME}"]
0
7d
FLOAT
%
Usage percent of ASM disk group.
Oracle ASM
JSONPATH
$[?(@.DG_NAME=='{#DG_NAME}')].USED_PERCENT.first()
db.odbc.get[get_asm_stat,"{$ORACLE.DSN}"]
{min(5m)}>{$ORACLE.ASM.USED.PCT.MAX.WARN}
ASM '{#DG_NAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.WARN}% for 5m)
WARNING
Usage percent of ASM disk group is over {$ORACLE.ASM.USED.PCT.MAX.WARN}
ASM '{#DG_NAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m)
{Template DB Oracle by ODBC:oracle.asm_used_pct["{#DG_NAME}"].min(5m)}>{$ORACLE.ASM.USED.PCT.MAX.HIGH}
{min(5m)}>{$ORACLE.ASM.USED.PCT.MAX.HIGH}
ASM '{#DG_NAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m)
HIGH
Usage percent of ASM disk group is over {$ORACLE.ASM.USED.PCT.MAX.WARN}
ASM '{#DG_NAME}': ASM disk group '{#DG_NAME}'
1A7C11
-
Template DB Oracle by ODBC
oracle.asm_free_size["{#DG_NAME}"]
1
2774A4
-
Template DB Oracle by ODBC
oracle.asm_total_size["{#DG_NAME}"]
Database discovery
ODBC
db.odbc.discovery[db_list,"{$ORACLE.DSN}"]
1h
SELECT name as DBNAME, DECODE(CDB, 'YES', 'CDB', 'No-CDB') AS TYPE FROM V$DATABASE;
{$ORACLE.USER}
{$ORACLE.PASSWORD}
AND
{#DBNAME}
{$ORACLE.DBNAME.MATCHES}
A
{#DBNAME}
{$ORACLE.DBNAME.NOT_MATCHES}
NOT_MATCHES_REGEX
B
Scanning databases in DBMS.
Oracle Database '{#DBNAME}': Force logging
DEPENDENT
oracle.db_force_logging["{#DBNAME}"]
0
7d
Indicates whether the database is under force logging mode (YES) or not (NO)
Oracle {#TYPE}
Oracle force log status
JSONPATH
$[?(@.DBNAME=='{#DBNAME}')].FORCE_LOGGING.first()
DISCARD_UNCHANGED_HEARTBEAT
15m
db.odbc.get[get_cdb_info,"{$ORACLE.DSN}"]
Oracle Database '{#DBNAME}': Log mode
DEPENDENT
oracle.db_log_mode["{#DBNAME}"]
0
7d
Archive log mode, 0 - 'NOARCHIVELOG', 1 - 'ARCHIVELOG', 2 - 'MANUAL'
Oracle {#TYPE}
Oracle log mode
JSONPATH
$[?(@.DBNAME=='{#DBNAME}')].LOG_MODE.first()
DISCARD_UNCHANGED_HEARTBEAT
15m
db.odbc.get[get_cdb_info,"{$ORACLE.DSN}"]
Oracle Database '{#DBNAME}': Open status
DEPENDENT
oracle.db_open_mode["{#DBNAME}"]
0
7d
1 - 'MOUNTED', 2 - 'READ WRITE', 3 - 'READ ONLY', 4 - 'READ ONLY WITH APPLY' (A physical standby database is open in real-time query mode)
Oracle {#TYPE}
Oracle DB open status
JSONPATH
$[?(@.DBNAME=='{#DBNAME}')].OPEN_MODE.first()
DISCARD_UNCHANGED_HEARTBEAT
15m
db.odbc.get[get_cdb_info,"{$ORACLE.DSN}"]
{last()}=1
Oracle Database '{#DBNAME}': Open status in mount mode
WARNING
The Oracle DB has a MOUNTED state.
{diff()}=1
Oracle Database '{#DBNAME}': Open status has changed (new value received: {ITEM.VALUE})
INFO
Oracle DB open status has changed. Ack to close.
YES
Oracle Database '{#DBNAME}': Open status in mount mode
{Template DB Oracle by ODBC:oracle.db_open_mode["{#DBNAME}"].last()}=1
Oracle Database '{#DBNAME}': Role
DEPENDENT
oracle.db_role["{#DBNAME}"]
0
7d
Current role of the database, 1 - 'SNAPSHOT STANDBY', 2 - 'LOGICAL STANDBY', 3 - 'PHYSICAL STANDBY', 4 - 'PRIMARY ', 5 -'FAR SYNC'
Oracle {#TYPE}
Oracle DB role
JSONPATH
$[?(@.DBNAME=='{#DBNAME}')].ROLE.first()
DISCARD_UNCHANGED_HEARTBEAT
15m
db.odbc.get[get_cdb_info,"{$ORACLE.DSN}"]
{diff()}=1
Oracle Database '{#DBNAME}': Role has changed (new value received: {ITEM.VALUE})
INFO
Oracle DB role has changed. Ack to close.
YES
{Template DB Oracle by ODBC:oracle.db_force_logging["{#DBNAME}"].last()} = 0 and {Template DB Oracle by ODBC:oracle.db_log_mode["{#DBNAME}"].last()} = 1
Oracle Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog
WARNING
Force Logging mode - it is very important metric for Databases in 'ARCHIVELOG'. This feature allows to forcibly write all transactions to the REDO.
PDB discovery
ODBC
db.odbc.discovery[pdb_list,"{$ORACLE.DSN}"]
1h
SELECT name as DBNAME FROM V$PDBS;
{$ORACLE.USER}
{$ORACLE.PASSWORD}
AND
{#DBNAME}
{$ORACLE.DBNAME.MATCHES}
A
{#DBNAME}
{$ORACLE.DBNAME.NOT_MATCHES}
NOT_MATCHES_REGEX
B
Scanning PDB in DBMS.
Oracle Database '{#DBNAME}': Open status
DEPENDENT
oracle.pdb_open_mode["{#DBNAME}"]
0
7d
1 - 'MOUNTED', 2 - 'READ WRITE', 3 - 'READ ONLY', 4 - 'READ ONLY WITH APPLY' (A physical standby database is open in real-time query mode)
Oracle PDB
Oracle DB open status
JSONPATH
$[?(@.DBNAME=='{#DBNAME}')].OPEN_MODE.first()
DISCARD_UNCHANGED_HEARTBEAT
15m
db.odbc.get[get_pdb_info,"{$ORACLE.DSN}"]
{last()}=1
Oracle Database '{#DBNAME}': Open status in mount mode
WARNING
The Oracle DB has a MOUNTED state.
{diff()}=1
Oracle Database '{#DBNAME}': Open status has changed (new value received: {ITEM.VALUE})
INFO
Oracle DB open status has changed. Ack to close.
YES
Tablespace discovery
ODBC
db.odbc.discovery[tbsname,"{$ORACLE.DSN}"]
1h
SELECT
tablespace_name AS tablespace,
contents FROM DBA_TABLESPACES;
{$ORACLE.USER}
{$ORACLE.PASSWORD}
AND
{#TABLESPACE}
{$ORACLE.TABLESPACE.NAME.MATCHES}
A
{#TABLESPACE}
{$ORACLE.TABLESPACE.NAME.NOT_MATCHES}
NOT_MATCHES_REGEX
B
Scanning tablespaces in DBMS.
Oracle TBS '{#TABLESPACE}': Tablespace allocated, bytes
DEPENDENT
oracle.tbs_alloc_bytes["{#TABLESPACE}"]
0
7d
B
Currently allocated bytes for tablespace (sum of the current size of datafiles).
Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}
JSONPATH
$[?(@.TABLESPACE=='{#TABLESPACE}')].FILE_BYTES.first()
db.odbc.get[tablespace_stats,"{$ORACLE.DSN}"]
Oracle TBS '{#TABLESPACE}': Tablespace free, bytes
DEPENDENT
oracle.tbs_free_bytes["{#TABLESPACE}"]
0
7d
B
Free bytes of allocated space.
Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}
JSONPATH
$[?(@.TABLESPACE=='{#TABLESPACE}')].FREE_BYTES.first()
db.odbc.get[tablespace_stats,"{$ORACLE.DSN}"]
Oracle TBS '{#TABLESPACE}': Tablespace MAX size, bytes
DEPENDENT
oracle.tbs_max_bytes["{#TABLESPACE}"]
0
7d
B
Maximum size of tablespace.
Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}
JSONPATH
$[?(@.TABLESPACE=='{#TABLESPACE}')].MAX_BYTES.first()
db.odbc.get[tablespace_stats,"{$ORACLE.DSN}"]
Oracle TBS '{#TABLESPACE}': Open status
DEPENDENT
oracle.tbs_status["{#TABLESPACE}"]
0
7d
Tablespace status. 1 - 'ONLINE' 2 - 'OFFLINE' 3- 'READ ONLY'
Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}
Oracle tablespace status
JSONPATH
$[?(@.TABLESPACE=='{#TABLESPACE}')].STATUS.first()
db.odbc.get[tablespace_stats,"{$ORACLE.DSN}"]
{last()}=2
Oracle TBS '{#TABLESPACE}': Tablespase is OFFLINE
WARNING
The tablespase is in the offline state.
{diff()}=1
Oracle TBS '{#TABLESPACE}': Tablespace status has changed (new value received: {ITEM.VALUE})
INFO
Oracle tablespace status has changed. Ack to close.
YES
Oracle TBS '{#TABLESPACE}': Tablespase is OFFLINE
{Template DB Oracle by ODBC:oracle.tbs_status["{#TABLESPACE}"].last()}=2
Oracle TBS '{#TABLESPACE}': Tablespace used, bytes
DEPENDENT
oracle.tbs_used_bytes["{#TABLESPACE}"]
0
7d
B
Currently used bytes for tablespace (current size of datafiles-free space).
Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}
JSONPATH
$[?(@.TABLESPACE=='{#TABLESPACE}')].USED_BYTES.first()
db.odbc.get[tablespace_stats,"{$ORACLE.DSN}"]
Oracle TBS '{#TABLESPACE}': Tablespace usage, percent
DEPENDENT
oracle.tbs_used_file_pct["{#TABLESPACE}"]
0
7d
FLOAT
%
Used bytes/Allocated bytes*100
Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}
JSONPATH
$[?(@.TABLESPACE=='{#TABLESPACE}')].USED_FILE_PCT.first()
db.odbc.get[tablespace_stats,"{$ORACLE.DSN}"]
{min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.WARN}
Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m).
WARNING
Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m).
{Template DB Oracle by ODBC:oracle.tbs_used_file_pct["{#TABLESPACE}"].min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.HIGH}
{min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.HIGH}
Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m).
HIGH
Oracle TBS '{#TABLESPACE}': Tablespace allocated, percent
DEPENDENT
oracle.tbs_used_pct["{#TABLESPACE}"]
0
7d
FLOAT
%
Allocated bytes/Max bytes*100
Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}
JSONPATH
$[?(@.TABLESPACE=='{#TABLESPACE}')].USED_PCT_MAX.first()
db.odbc.get[tablespace_stats,"{$ORACLE.DSN}"]
{min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.WARN}
Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m).
WARNING
Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m).
{Template DB Oracle by ODBC:oracle.tbs_used_pct["{#TABLESPACE}"].min(5m)}>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}
{min(5m)}>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}
Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m).
HIGH
Oracle TBS '{#TABLESPACE}': Tablespace '{#TABLESPACE}'
1A7C11
-
Template DB Oracle by ODBC
oracle.tbs_alloc_bytes["{#TABLESPACE}"]
1
2774A4
-
Template DB Oracle by ODBC
oracle.tbs_max_bytes["{#TABLESPACE}"]
2
F63100
-
Template DB Oracle by ODBC
oracle.tbs_used_bytes["{#TABLESPACE}"]
{$ORACLE.ASM.USED.PCT.MAX.HIGH}
95
Maximum percentage of used ASM disk group for high trigger expression.
{$ORACLE.ASM.USED.PCT.MAX.WARN}
90
Maximum percentage of used ASM disk group for warning trigger expression.
{$ORACLE.CONCURRENCY.MAX.WARN}
80
Maximum percentage of sessions concurrency usage for trigger expression.
{$ORACLE.DB.FILE.MAX.WARN}
80
Maximum percentage of database files for trigger expression.
{$ORACLE.DBNAME.MATCHES}
.*
This macro is used in database discovery. It can be overridden on a host or linked template level.
{$ORACLE.DBNAME.NOT_MATCHES}
PDB\$SEED
This macro is used in database discovery. It can be overridden on a host or linked template level.
{$ORACLE.DSN}
<Put your DSN here>
System data source name
{$ORACLE.EXPIRE.PASSWORD.MIN.WARN}
7
Number of days of warning before password expires (for trigger expression).
{$ORACLE.PASSWORD}
<Put your password here>
Oracle user password.
{$ORACLE.PGA.USE.MAX.WARN}
90
Maximum percentage of PGA usage alert threshold (for trigger expression).
{$ORACLE.PORT}
1521
Oracle DB TCP port.
{$ORACLE.PROCESSES.MAX.WARN}
80
Maximum percentage of active processes alert threshold (for trigger expression).
{$ORACLE.REDO.MIN.WARN}
3
Minimum number of REDO logs alert threshold (for trigger expression).
{$ORACLE.SESSION.LOCK.MAX.TIME}
600
Maximum session lock duration in seconds for count the session as a prolongely locked query.
{$ORACLE.SESSION.LONG.LOCK.MAX.WARN}
3
Maximum number of the prolongely locked sessions alert threshold (for trigger expression).
{$ORACLE.SESSIONS.LOCK.MAX.WARN}
20
Maximum percentage of locked sessions alert threshold (for trigger expression).
{$ORACLE.SESSIONS.MAX.WARN}
80
Maximum percentage of active sessions alert threshold (for trigger expression).
{$ORACLE.SHARED.FREE.MIN.WARN}
5
Minimum percentage of free shared pool alert threshold (for trigger expression).
{$ORACLE.TABLESPACE.NAME.MATCHES}
.*
This macro is used in tablespace discovery. It can be overridden on a host or linked template level.
{$ORACLE.TABLESPACE.NAME.NOT_MATCHES}
CHANGE_IF_NEEDED
This macro is used in tablespace discovery. It can be overridden on a host or linked template level.
{$ORACLE.TBS.USED.PCT.MAX.HIGH}
95
Maximum percentage of used (Used bytes/Allocated bytes) tablespace high severity alert threshold (for trigger expression).
{$ORACLE.TBS.USED.PCT.MAX.WARN}
90
Maximum percentage of used (Used bytes/Allocated bytes) tablespace warning severity alert threshold (for trigger expression).
{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}
90
Maximum percentage of utilization (Allocated bytes/Max bytes) tablespace high severity alert threshold (for trigger expression).
{$ORACLE.TBS.UTIL.PCT.MAX.WARN}
80
Maximum percentage of utilization (Allocated bytes/Max bytes) tablespace warning severity alert threshold (for trigger expression).
{$ORACLE.USER}
<Put your username here>
Oracle username.
{Template DB Oracle by ODBC:net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}].max(#3)}=0 and {Template DB Oracle by ODBC:proc.num[,,,"tnslsnr LISTENER"].max(#3)}>0
Oracle: Port {$ORACLE.PORT} is unavailable
DISASTER
The TCP port of the Oracle Server service is currently unavailable.
{Template DB Oracle by ODBC:oracle.processes_count.min(5m)} * 100 / {Template DB Oracle by ODBC:oracle.processes_limit.last()} > {$ORACLE.PROCESSES.MAX.WARN}
Oracle: Too many active processes (over {$ORACLE.PROCESSES.MAX.WARN}% for 5 min)
WARNING
Active processes are using more than {$ORACLE.PROCESSES.MAX.WARN}% of the available number of processes.
{Template DB Oracle by ODBC:oracle.session_count.min(5m)} * 100 / {Template DB Oracle by ODBC:oracle.session_limit.last()} > {$ORACLE.SESSIONS.MAX.WARN}
Oracle: Too many active sessions (over {$ORACLE.SESSIONS.MAX.WARN}% for 5 min)
WARNING
Active sessions are using more than {$ORACLE.SESSIONS.MAX.WARN}% of the available sessions.
{Template DB Oracle by ODBC:oracle.db_files_count.min(5m)} * 100 / {Template DB Oracle by ODBC:oracle.db_files_limit.last()} > {$ORACLE.DB.FILE.MAX.WARN}
Oracle: Too many database files (over {$ORACLE.DB.FILE.MAX.WARN}% for 5 min)
WARNING
Number of datafiles is higher than {$ORACLE.DB.FILE.MAX.WARN}% of the available datafile files limit.
{Template DB Oracle by ODBC:oracle.total_pga_used.min(5m)} * 100 / {Template DB Oracle by ODBC:oracle.pga_target.last()} > {$ORACLE.PGA.USE.MAX.WARN}
Oracle: Total PGA inuse is too high (over {$ORACLE.PGA.USE.MAX.WARN}% for 5 min)
WARNING
Total PGA in use is more than {$ORACLE.PGA.USE.MAX.WARN}% of PGA_AGGREGATE_TARGET.
Oracle: Datafiles
1A7C11
-
Template DB Oracle by ODBC
oracle.db_files_count
1
2774A4
-
Template DB Oracle by ODBC
oracle.db_files_limit
Oracle: PGA
1A7C11
-
Template DB Oracle by ODBC
oracle.total_pga_used
1
2774A4
-
Template DB Oracle by ODBC
oracle.pga_target
2
F63100
-
Template DB Oracle by ODBC
oracle.total_pga_allocated
Oracle: Physical Read\Write Rate
1A7C11
-
Template DB Oracle by ODBC
oracle.physical_writes_rate
1
2774A4
-
Template DB Oracle by ODBC
oracle.physical_reads_rate
Oracle: Physical Read\Write Rate, Bytes
1A7C11
-
Template DB Oracle by ODBC
oracle.physical_write_bytes_rate
1
2774A4
-
Template DB Oracle by ODBC
oracle.physical_read_bytes_rate
Oracle: Processes
1A7C11
-
Template DB Oracle by ODBC
oracle.processes_count
1
2774A4
-
Template DB Oracle by ODBC
oracle.processes_limit
Oracle: Sessions
1A7C11
-
Template DB Oracle by ODBC
oracle.session_count
1
2774A4
-
Template DB Oracle by ODBC
oracle.session_active_background
2
F63100
-
Template DB Oracle by ODBC
oracle.session_inactive_user
3
A54F10
-
Template DB Oracle by ODBC
oracle.session_active_user
4
FC6EA3
-
Template DB Oracle by ODBC
oracle.session_limit
Oracle: SGA Memory Usage
STACKED
1A7C11
-
Template DB Oracle by ODBC
oracle.sga_java_pool
1
2774A4
-
Template DB Oracle by ODBC
oracle.sga_large_pool
2
F63100
-
Template DB Oracle by ODBC
oracle.sga_shared_pool
3
A54F10
-
Template DB Oracle by ODBC
oracle.sga_log_buffer
4
FC6EA3
-
Template DB Oracle by ODBC
oracle.sga_fixed
5
6C59DC
-
Template DB Oracle by ODBC
oracle.sga_buffer_cache
Service state
0
Down
1
Up
Oracle DB open status
0
Unknown
1
Mounted
2
Read Only
3
Read-Write
4
Read Only with Apply
Oracle DB role
0
Unknown
1
Snapshot standby
2
Logical standby
3
Physical standby
4
Primary
5
Far sync
Oracle instance status
0
Unknown
1
Started
2
Mounted
3
Open
4
Open migrate
Oracle instance role
0
Unknown
1
Primary
2
Secondary
Oracle archiver state
0
Unknown
1
Stopped
2
Started
3
Failed
Oracle tablespace status
0
Unknown
1
Online
2
Offline
3
Read-Only
Oracle Archivelog status
0
Unknown
1
Error
2
Deferred
3
Valid
Oracle force log status
0
No
1
Yes
Oracle log mode
0
NOARCHIVELOG
1
ARCHIVELOG
2
MANUAL