Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_agent2?at=release/7.4
The template is developed to monitor a single DBMS Oracle Database instance with Zabbix agent 2.
Oracle Database 12c2 and newer.
Important! This integration queries the V$ACTIVE_SESSION_HISTORY dynamic performance view which is part of the Oracle Diagnostics Pack. Please make sure that you have the licence required for using this management pack.
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup and configure Zabbix agent 2 compiled with the Oracle monitoring plugin. See the setup instructions for Oracle Database plugin.
Set the {$ORACLE.CONNSTRING} macro value using either <protocol(host:port)> or named session.
If you want to override parameters from Zabbix agent configuration file, set the user name, password and service name in host macros ({$ORACLE.USER}, {$ORACLE.PASSWORD}, and {$ORACLE.SERVICE}).
User can contain sysdba, sysoper, sysasm privileges. It must be used with as as a separator e.g user as sysdba, privilege can be upper or lowercase, and must be at the end of username string.
Test availability:
zabbix_get -s oracle-host -k oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]
| Name | Description | Default |
|---|---|---|
| {$ORACLE.USER} | Oracle username. |
|
| {$ORACLE.PASSWORD} | Oracle user's password. |
|
| {$ORACLE.CONNSTRING} | Oracle URI or a session name. |
|
| {$ORACLE.SERVICE} | Oracle Service Name. |
ORA |
| {$ORACLE.DBNAME.MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
PDB\$SEED |
| {$ORACLE.TABLESPACE.CONTAINER.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.CONTAINER.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
80 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for the Warning trigger expression. |
80 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for the Warning trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for the Warning trigger expression. |
80 |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression. |
90 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression. |
20 |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression. |
3 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of session concurrency for the Warning trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of redo logs for the Warning trigger expression. |
3 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression. |
5 |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of days before the password expires for the Warning trigger expression. |
7 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression. |
90 |
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression. |
95 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Ping | Test the connection to Oracle Database state. |
Zabbix agent | oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Get instance state | Gets the state of the current instance. |
Zabbix agent | oracle.instance.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Version | The Oracle Server version. |
Zabbix agent | oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Uptime | The Oracle instance uptime expressed in seconds. |
Dependent item | oracle.uptime Preprocessing
|
| Instance status | The status of the instance. |
Dependent item | oracle.instance_status Preprocessing
|
| Archiver state | The status of automatic archiving. |
Dependent item | oracle.archiver_state Preprocessing
|
| Instance name | The name of the instance. |
Dependent item | oracle.instance_name Preprocessing
|
| Instance hostname | The name of the host machine. |
Dependent item | oracle.instance_hostname Preprocessing
|
| Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
Dependent item | oracle.instance.role Preprocessing
|
| Get system metrics | Gets the values of the system metrics. |
Zabbix agent | oracle.sys.metrics["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
Dependent item | oracle.buffer_cache_hit_ratio Preprocessing
|
| Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
Dependent item | oracle.cursor_cache_hit_ratio Preprocessing
|
| Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
Dependent item | oracle.library_cache_hit_ratio Preprocessing
|
| Shared pool free % | Free memory of a shared pool expressed in %. |
Dependent item | oracle.shared_pool_free Preprocessing
|
| Physical reads per second | Reads per second. |
Dependent item | oracle.physical_reads_rate Preprocessing
|
| Physical writes per second | Writes per second. |
Dependent item | oracle.physical_writes_rate Preprocessing
|
| Physical reads bytes per second | Read bytes per second. |
Dependent item | oracle.physical_read_bytes_rate Preprocessing
|
| Physical writes bytes per second | Write bytes per second. |
Dependent item | oracle.physical_write_bytes_rate Preprocessing
|
| Enqueue timeouts per second | Enqueue timeouts per second. |
Dependent item | oracle.enqueue_timeouts_rate Preprocessing
|
| GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
Dependent item | oracle.gc_cr_block_received_rate Preprocessing
|
| Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
Dependent item | oracle.cache_blocks_corrupt Preprocessing
|
| Global cache blocks lost | The number of lost global cache blocks. |
Dependent item | oracle.cache_blocks_lost Preprocessing
|
| Logons per second | The number of logon attempts. |
Dependent item | oracle.logons_rate Preprocessing
|
| Average active sessions | The average number of active sessions at a point in time that are either working or waiting. |
Dependent item | oracle.active_sessions Preprocessing
|
| Active serial sessions | The number of active serial sessions. |
Dependent item | oracle.active_serial_sessions Preprocessing
|
| Active parallel sessions | The number of active parallel sessions. |
Dependent item | oracle.active_parallel_sessions Preprocessing
|
| Long table scans per second | The number of long table scans per second. A table is considered long if it is not cached and if its high water mark is greater than five blocks. |
Dependent item | oracle.long_table_scans_rate Preprocessing
|
| SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
Dependent item | oracle.service_response_time Preprocessing
|
| User rollbacks per second | The number of times that users manually issued the |
Dependent item | oracle.user_rollbacks_rate Preprocessing
|
| Total sorts per user call | The total sorts per user call. |
Dependent item | oracle.sorts_per_user_call Preprocessing
|
| Rows per sort | The average number of rows per sort for all types of sorts performed. |
Dependent item | oracle.rows_per_sort Preprocessing
|
| Disk sort per second | The number of sorts going to disk per second. |
Dependent item | oracle.disk_sorts Preprocessing
|
| Memory sorts ratio | The percentage of sorts (from |
Dependent item | oracle.memory_sorts_ratio Preprocessing
|
| Database wait time ratio | 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, etc. |
Dependent item | oracle.database_wait_time_ratio Preprocessing
|
| Database CPU time ratio | The ratio calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
Dependent item | oracle.database_cpu_time_ratio Preprocessing
|
| Temp space used | Used temporary space. |
Dependent item | oracle.temp_space_used Preprocessing
|
| Get system parameters | Get a set of system parameter values. |
Zabbix agent | oracle.sys.params["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Sessions limit | The user and system sessions. |
Dependent item | oracle.session_limit Preprocessing
|
| Datafiles limit | The maximum allowable number of datafiles. |
Dependent item | oracle.db_files_limit Preprocessing
|
| Processes limit | The maximum number of user processes. |
Dependent item | oracle.processes_limit Preprocessing
|
| Get sessions stats | Get sessions statistics. {$ORACLE.SESSION.LOCK.MAX.TIME} -- maximum seconds in the current wait condition for counting long time locked sessions. Default: 600 seconds. |
Zabbix agent | oracle.sessions.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{$ORACLE.SESSION.LOCK.MAX.TIME}"] |
| Session count | The session count. |
Dependent item | oracle.session_count Preprocessing
|
| Active user sessions | The number of active user sessions. |
Dependent item | oracle.session_active_user Preprocessing
|
| Active background sessions | The number of active background sessions. |
Dependent item | oracle.session_active_background Preprocessing
|
| Inactive user sessions | The number of inactive user sessions. |
Dependent item | oracle.session_inactive_user Preprocessing
|
| Sessions lock rate | 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. |
Dependent item | oracle.session_lock_rate Preprocessing
|
| Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of the maximum session lock in seconds for a query using the |
Dependent item | oracle.session_long_time_locked Preprocessing
|
| Sessions concurrency | The percentage of concurrency. Concurrency is a database behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, and the rest of the transactions wait for access. When the access to a resource is locked for a long time, the concurrency grows (like the transaction queue), often leaving 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. |
Dependent item | oracle.session_concurrency_rate Preprocessing
|
| Get PGA stats | Get PGA statistics. |
Zabbix agent | oracle.pga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| PGA, Total inuse | The amount of Program Global Area (PGA) memory 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). |
Dependent item | oracle.total_pga_used Preprocessing
|
| PGA, Aggregate target parameter | The current value of the |
Dependent item | oracle.pga_target Preprocessing
|
| PGA, Total allocated | The current amount of the PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the |
Dependent item | oracle.total_pga_allocated Preprocessing
|
| PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the OS. |
Dependent item | oracle.total_pga_freeable Preprocessing
|
| PGA, Global memory bound | The maximum size of a work area executed in automatic mode. |
Dependent item | oracle.pga_global_bound Preprocessing
|
| Get FRA stats | Get FRA statistics. |
Zabbix agent | oracle.fra.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
Dependent item | oracle.fra_space_limit Preprocessing
|
| FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
Dependent item | oracle.fra_space_used Preprocessing
|
| FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low-priority files from the FRA. |
Dependent item | oracle.fra_space_reclaimable Preprocessing
|
| FRA, Number of files | The number of files in the FRA. |
Dependent item | oracle.fra_number_of_files Preprocessing
|
| FRA, Usable space in % | Percentage of space usable in the FRA. |
Dependent item | oracle.fra_usable_pct Preprocessing
|
| FRA, Number of restore points | Number of restore points in the FRA. |
Dependent item | oracle.fra_restore_point Preprocessing
|
| Get SGA stats | Get SGA statistics. |
Zabbix agent | oracle.sga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| SGA, java pool | The memory is allocated from the Java pool. |
Dependent item | oracle.sga_java_pool Preprocessing
|
| SGA, large pool | The memory is allocated from a large pool. |
Dependent item | oracle.sga_large_pool Preprocessing
|
| SGA, shared pool | The memory is allocated from a shared pool. |
Dependent item | oracle.sga_shared_pool Preprocessing
|
| SGA, log buffer | The number of bytes allocated for the redo log buffer. |
Dependent item | oracle.sga_log_buffer Preprocessing
|
| SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
Dependent item | oracle.sga_fixed Preprocessing
|
| SGA, buffer cache | The size of standard block cache. |
Dependent item | oracle.sga_buffer_cache Preprocessing
|
| User's expire password | The number of days before the Zabbix account password expires. |
Zabbix agent | oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
Zabbix agent | oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Number of processes | The current number of user processes. |
Zabbix agent | oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Datafiles count | The current number of datafiles. |
Zabbix agent | oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Connection to database is unavailable | Connection to Oracle Database is currently unavailable. |
last(/Oracle by Zabbix agent 2/oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"])=0 |
Disaster | |
| Oracle: Version has changed | The Oracle Database version has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],#2) and length(last(/Oracle by Zabbix agent 2/oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]))>0 |
Info | Manual close: Yes |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by Zabbix agent 2/oracle.uptime,30m)=1 |
Info | |
| Oracle: Host has been restarted | Uptime is less than 10 minutes. |
last(/Oracle by Zabbix agent 2/oracle.uptime)<10m |
Info | Manual close: Yes |
| Oracle: Instance name has changed | An Oracle Database instance name has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.instance_name,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_name,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_name))>0 |
Info | Manual close: Yes |
| Oracle: Instance hostname has changed | An Oracle Database instance hostname has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_hostname))>0 |
Info | Manual close: Yes |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than |
max(/Oracle by Zabbix agent 2/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
Warning | |
| Oracle: Too many active sessions | Active sessions are using more than |
min(/Oracle by Zabbix agent 2/oracle.session_count,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
Warning | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds |
min(/Oracle by Zabbix agent 2/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding |
min(/Oracle by Zabbix agent 2/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too high database concurrency | The concurrency rate exceeds |
min(/Oracle by Zabbix agent 2/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
Warning | |
| Oracle: Total PGA inuse is too high | The total PGA in use is more than |
min(/Oracle by Zabbix agent 2/oracle.total_pga_used,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
Warning | |
| Oracle: Zabbix account will expire soon | The password for the Zabbix user in the database expires soon. |
last(/Oracle by Zabbix agent 2/oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
Warning | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused redos available for log switching is low (risk of database downtime). |
max(/Oracle by Zabbix agent 2/oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) < {$ORACLE.REDO.MIN.WARN} |
Warning | |
| Oracle: Too many active processes | Active processes are using more than |
min(/Oracle by Zabbix agent 2/oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
Warning | |
| Oracle: Too many database files | The number of datafiles is higher than |
min(/Oracle by Zabbix agent 2/oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Scanning databases in the database management system (DBMS). |
Zabbix agent | oracle.db.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get CDB and No-CDB info | Gets the information about the CDB and non-CDB database on an instance. |
Zabbix agent | oracle.cdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"] |
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.db_open_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Role | The current role of the database where: 1 - SNAPSHOT STANDBY; 2 - LOGICAL STANDBY; 3 - PHYSICAL STANDBY; 4 - PRIMARY; 5 - FAR SYNC. |
Dependent item | oracle.db_role["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Log mode | The archive log mode where: 0 - NOARCHIVELOG; 1 - ARCHIVELOG; 2 - MANUAL. |
Dependent item | oracle.db_log_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode ( |
Dependent item | oracle.db_force_logging["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes Depends on:
|
| Oracle: Database '{#DBNAME}': Role has changed | The Oracle Database role has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Oracle: Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force logging mode is a very important metric for databases in |
last(/Oracle by Zabbix agent 2/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by Zabbix agent 2/oracle.db_log_mode["{#DBNAME}"]) = 1 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| PDB discovery | Scanning a pluggable database (PDB) in DBMS. |
Zabbix agent | oracle.pdb.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get PDB info | Gets the information about the PDB database on an instance. |
Zabbix agent | oracle.pdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#CON_ID}"] |
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.pdb_open_mode["{#CON_ID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#CON_ID}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#CON_ID}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#CON_ID}"],#2) |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Tablespace discovery | Scanning tablespaces in DBMS. |
Zabbix agent | oracle.ts.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Get tablespaces stats | Gets the statistics of the tablespace. |
Zabbix agent | oracle.ts.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#TABLESPACE}","{#CONTENTS}","{#CON_ID}"] |
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
Dependent item | oracle.tbs_alloc_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
Dependent item | oracle.tbs_max_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles minus the free space). |
Dependent item | oracle.tbs_used_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
Dependent item | oracle.tbs_free_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
Dependent item | oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
Dependent item | oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX, percent | Used bytes/max bytes*100. |
Dependent item | oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - ONLINE; 2 - OFFLINE; 3 - READ ONLY. |
Dependent item | oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization from MAX is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"])=2 |
Warning | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Destinations of the log archive. |
Zabbix agent | oracle.archive.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archivelog '{#DEST_NAME}': Get archive log info | Gets the archive log statistics. |
Zabbix agent | oracle.archive.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DEST_NAME}"] |
| Archivelog '{#DEST_NAME}': Error | Displays the error message. |
Dependent item | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived. |
Dependent item | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination where: 1 - VALID; 2 - DEFERRED; 3 - ERROR; 0 - UNKNOWN. |
Dependent item | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: |
last(/Oracle by Zabbix agent 2/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM disk groups discovery | The ASM disk groups. |
Zabbix agent | oracle.diskgroups.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM '{#DGNAME}': Get ASM stats | Gets the ASM disk group statistics. |
Zabbix agent | oracle.diskgroups.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DGNAME}"] |
| ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
Dependent item | oracle.asm_total_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
Dependent item | oracle.asm_free_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Used size, percent | Usage of the ASM disk group expressed in %. |
Dependent item | oracle.asm_used_pct["{#DGNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
High |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_agent2?at=release/7.2
The template is developed to monitor a single DBMS Oracle Database instance with Zabbix agent 2.
Oracle Database 12c2 and newer.
Important! This integration queries the V$ACTIVE_SESSION_HISTORY dynamic performance view which is part of the Oracle Diagnostics Pack. Please make sure that you have the licence required for using this management pack.
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup and configure Zabbix agent 2 compiled with the Oracle monitoring plugin. See the setup instructions for Oracle Database plugin.
Set the {$ORACLE.CONNSTRING} macro value using either <protocol(host:port)> or named session.
If you want to override parameters from Zabbix agent configuration file, set the user name, password and service name in host macros ({$ORACLE.USER}, {$ORACLE.PASSWORD}, and {$ORACLE.SERVICE}).
User can contain sysdba, sysoper, sysasm privileges. It must be used with as as a separator e.g user as sysdba, privilege can be upper or lowercase, and must be at the end of username string.
Test availability:
zabbix_get -s oracle-host -k oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]
| Name | Description | Default |
|---|---|---|
| {$ORACLE.USER} | Oracle username. |
zabbix |
| {$ORACLE.PASSWORD} | Oracle user's password. |
zabbix_password |
| {$ORACLE.CONNSTRING} | Oracle URI or a session name. |
tcp://localhost:1521 |
| {$ORACLE.SERVICE} | Oracle Service Name. |
ORA |
| {$ORACLE.DBNAME.MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
PDB\$SEED |
| {$ORACLE.TABLESPACE.CONTAINER.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.CONTAINER.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
80 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for the Warning trigger expression. |
80 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for the Warning trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for the Warning trigger expression. |
80 |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression. |
90 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression. |
20 |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression. |
3 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of session concurrency for the Warning trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of redo logs for the Warning trigger expression. |
3 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression. |
5 |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of days before the password expires for the Warning trigger expression. |
7 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression. |
90 |
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression. |
95 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Ping | Test the connection to Oracle Database state. |
Zabbix agent | oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Get instance state | Gets the state of the current instance. |
Zabbix agent | oracle.instance.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Version | The Oracle Server version. |
Zabbix agent | oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Uptime | The Oracle instance uptime expressed in seconds. |
Dependent item | oracle.uptime Preprocessing
|
| Instance status | The status of the instance. |
Dependent item | oracle.instance_status Preprocessing
|
| Archiver state | The status of automatic archiving. |
Dependent item | oracle.archiver_state Preprocessing
|
| Instance name | The name of the instance. |
Dependent item | oracle.instance_name Preprocessing
|
| Instance hostname | The name of the host machine. |
Dependent item | oracle.instance_hostname Preprocessing
|
| Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
Dependent item | oracle.instance.role Preprocessing
|
| Get system metrics | Gets the values of the system metrics. |
Zabbix agent | oracle.sys.metrics["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
Dependent item | oracle.buffer_cache_hit_ratio Preprocessing
|
| Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
Dependent item | oracle.cursor_cache_hit_ratio Preprocessing
|
| Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
Dependent item | oracle.library_cache_hit_ratio Preprocessing
|
| Shared pool free % | Free memory of a shared pool expressed in %. |
Dependent item | oracle.shared_pool_free Preprocessing
|
| Physical reads per second | Reads per second. |
Dependent item | oracle.physical_reads_rate Preprocessing
|
| Physical writes per second | Writes per second. |
Dependent item | oracle.physical_writes_rate Preprocessing
|
| Physical reads bytes per second | Read bytes per second. |
Dependent item | oracle.physical_read_bytes_rate Preprocessing
|
| Physical writes bytes per second | Write bytes per second. |
Dependent item | oracle.physical_write_bytes_rate Preprocessing
|
| Enqueue timeouts per second | Enqueue timeouts per second. |
Dependent item | oracle.enqueue_timeouts_rate Preprocessing
|
| GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
Dependent item | oracle.gc_cr_block_received_rate Preprocessing
|
| Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
Dependent item | oracle.cache_blocks_corrupt Preprocessing
|
| Global cache blocks lost | The number of lost global cache blocks. |
Dependent item | oracle.cache_blocks_lost Preprocessing
|
| Logons per second | The number of logon attempts. |
Dependent item | oracle.logons_rate Preprocessing
|
| Average active sessions | The average number of active sessions at a point in time that are either working or waiting. |
Dependent item | oracle.active_sessions Preprocessing
|
| Active serial sessions | The number of active serial sessions. |
Dependent item | oracle.active_serial_sessions Preprocessing
|
| Active parallel sessions | The number of active parallel sessions. |
Dependent item | oracle.active_parallel_sessions Preprocessing
|
| Long table scans per second | The number of long table scans per second. A table is considered long if it is not cached and if its high water mark is greater than five blocks. |
Dependent item | oracle.long_table_scans_rate Preprocessing
|
| SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
Dependent item | oracle.service_response_time Preprocessing
|
| User rollbacks per second | The number of times that users manually issued the |
Dependent item | oracle.user_rollbacks_rate Preprocessing
|
| Total sorts per user call | The total sorts per user call. |
Dependent item | oracle.sorts_per_user_call Preprocessing
|
| Rows per sort | The average number of rows per sort for all types of sorts performed. |
Dependent item | oracle.rows_per_sort Preprocessing
|
| Disk sort per second | The number of sorts going to disk per second. |
Dependent item | oracle.disk_sorts Preprocessing
|
| Memory sorts ratio | The percentage of sorts (from |
Dependent item | oracle.memory_sorts_ratio Preprocessing
|
| Database wait time ratio | 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, etc. |
Dependent item | oracle.database_wait_time_ratio Preprocessing
|
| Database CPU time ratio | The ratio calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
Dependent item | oracle.database_cpu_time_ratio Preprocessing
|
| Temp space used | Used temporary space. |
Dependent item | oracle.temp_space_used Preprocessing
|
| Get system parameters | Get a set of system parameter values. |
Zabbix agent | oracle.sys.params["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Sessions limit | The user and system sessions. |
Dependent item | oracle.session_limit Preprocessing
|
| Datafiles limit | The maximum allowable number of datafiles. |
Dependent item | oracle.db_files_limit Preprocessing
|
| Processes limit | The maximum number of user processes. |
Dependent item | oracle.processes_limit Preprocessing
|
| Get sessions stats | Get sessions statistics. {$ORACLE.SESSION.LOCK.MAX.TIME} -- maximum seconds in the current wait condition for counting long time locked sessions. Default: 600 seconds. |
Zabbix agent | oracle.sessions.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{$ORACLE.SESSION.LOCK.MAX.TIME}"] |
| Session count | The session count. |
Dependent item | oracle.session_count Preprocessing
|
| Active user sessions | The number of active user sessions. |
Dependent item | oracle.session_active_user Preprocessing
|
| Active background sessions | The number of active background sessions. |
Dependent item | oracle.session_active_background Preprocessing
|
| Inactive user sessions | The number of inactive user sessions. |
Dependent item | oracle.session_inactive_user Preprocessing
|
| Sessions lock rate | 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. |
Dependent item | oracle.session_lock_rate Preprocessing
|
| Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of the maximum session lock in seconds for a query using the |
Dependent item | oracle.session_long_time_locked Preprocessing
|
| Sessions concurrency | The percentage of concurrency. Concurrency is a database behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, and the rest of the transactions wait for access. When the access to a resource is locked for a long time, the concurrency grows (like the transaction queue), often leaving 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. |
Dependent item | oracle.session_concurrency_rate Preprocessing
|
| Get PGA stats | Get PGA statistics. |
Zabbix agent | oracle.pga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| PGA, Total inuse | The amount of Program Global Area (PGA) memory 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). |
Dependent item | oracle.total_pga_used Preprocessing
|
| PGA, Aggregate target parameter | The current value of the |
Dependent item | oracle.pga_target Preprocessing
|
| PGA, Total allocated | The current amount of the PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the |
Dependent item | oracle.total_pga_allocated Preprocessing
|
| PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the OS. |
Dependent item | oracle.total_pga_freeable Preprocessing
|
| PGA, Global memory bound | The maximum size of a work area executed in automatic mode. |
Dependent item | oracle.pga_global_bound Preprocessing
|
| Get FRA stats | Get FRA statistics. |
Zabbix agent | oracle.fra.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
Dependent item | oracle.fra_space_limit Preprocessing
|
| FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
Dependent item | oracle.fra_space_used Preprocessing
|
| FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low-priority files from the FRA. |
Dependent item | oracle.fra_space_reclaimable Preprocessing
|
| FRA, Number of files | The number of files in the FRA. |
Dependent item | oracle.fra_number_of_files Preprocessing
|
| FRA, Usable space in % | Percentage of space usable in the FRA. |
Dependent item | oracle.fra_usable_pct Preprocessing
|
| FRA, Number of restore points | Number of restore points in the FRA. |
Dependent item | oracle.fra_restore_point Preprocessing
|
| Get SGA stats | Get SGA statistics. |
Zabbix agent | oracle.sga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| SGA, java pool | The memory is allocated from the Java pool. |
Dependent item | oracle.sga_java_pool Preprocessing
|
| SGA, large pool | The memory is allocated from a large pool. |
Dependent item | oracle.sga_large_pool Preprocessing
|
| SGA, shared pool | The memory is allocated from a shared pool. |
Dependent item | oracle.sga_shared_pool Preprocessing
|
| SGA, log buffer | The number of bytes allocated for the redo log buffer. |
Dependent item | oracle.sga_log_buffer Preprocessing
|
| SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
Dependent item | oracle.sga_fixed Preprocessing
|
| SGA, buffer cache | The size of standard block cache. |
Dependent item | oracle.sga_buffer_cache Preprocessing
|
| User's expire password | The number of days before the Zabbix account password expires. |
Zabbix agent | oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
Zabbix agent | oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Number of processes | The current number of user processes. |
Zabbix agent | oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Datafiles count | The current number of datafiles. |
Zabbix agent | oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Connection to database is unavailable | Connection to Oracle Database is currently unavailable. |
last(/Oracle by Zabbix agent 2/oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"])=0 |
Disaster | |
| Oracle: Version has changed | The Oracle Database version has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],#2) and length(last(/Oracle by Zabbix agent 2/oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]))>0 |
Info | Manual close: Yes |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by Zabbix agent 2/oracle.uptime,30m)=1 |
Info | |
| Oracle: Host has been restarted | Uptime is less than 10 minutes. |
last(/Oracle by Zabbix agent 2/oracle.uptime)<10m |
Info | Manual close: Yes |
| Oracle: Instance name has changed | An Oracle Database instance name has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.instance_name,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_name,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_name))>0 |
Info | Manual close: Yes |
| Oracle: Instance hostname has changed | An Oracle Database instance hostname has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_hostname))>0 |
Info | Manual close: Yes |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than |
max(/Oracle by Zabbix agent 2/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
Warning | |
| Oracle: Too many active sessions | Active sessions are using more than |
min(/Oracle by Zabbix agent 2/oracle.session_count,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
Warning | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds |
min(/Oracle by Zabbix agent 2/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding |
min(/Oracle by Zabbix agent 2/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too high database concurrency | The concurrency rate exceeds |
min(/Oracle by Zabbix agent 2/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
Warning | |
| Oracle: Total PGA inuse is too high | The total PGA in use is more than |
min(/Oracle by Zabbix agent 2/oracle.total_pga_used,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
Warning | |
| Oracle: Zabbix account will expire soon | The password for the Zabbix user in the database expires soon. |
last(/Oracle by Zabbix agent 2/oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
Warning | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused redos available for log switching is low (risk of database downtime). |
max(/Oracle by Zabbix agent 2/oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) < {$ORACLE.REDO.MIN.WARN} |
Warning | |
| Oracle: Too many active processes | Active processes are using more than |
min(/Oracle by Zabbix agent 2/oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
Warning | |
| Oracle: Too many database files | The number of datafiles is higher than |
min(/Oracle by Zabbix agent 2/oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Scanning databases in the database management system (DBMS). |
Zabbix agent | oracle.db.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get CDB and No-CDB info | Gets the information about the CDB and non-CDB database on an instance. |
Zabbix agent | oracle.cdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"] |
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.db_open_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Role | The current role of the database where: 1 - SNAPSHOT STANDBY; 2 - LOGICAL STANDBY; 3 - PHYSICAL STANDBY; 4 - PRIMARY; 5 - FAR SYNC. |
Dependent item | oracle.db_role["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Log mode | The archive log mode where: 0 - NOARCHIVELOG; 1 - ARCHIVELOG; 2 - MANUAL. |
Dependent item | oracle.db_log_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode ( |
Dependent item | oracle.db_force_logging["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes Depends on:
|
| Oracle: Database '{#DBNAME}': Role has changed | The Oracle Database role has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Oracle: Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force logging mode is a very important metric for databases in |
last(/Oracle by Zabbix agent 2/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by Zabbix agent 2/oracle.db_log_mode["{#DBNAME}"]) = 1 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| PDB discovery | Scanning a pluggable database (PDB) in DBMS. |
Zabbix agent | oracle.pdb.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get PDB info | Gets the information about the PDB database on an instance. |
Zabbix agent | oracle.pdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#CON_ID}"] |
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.pdb_open_mode["{#CON_ID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#CON_ID}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#CON_ID}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#CON_ID}"],#2) |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Tablespace discovery | Scanning tablespaces in DBMS. |
Zabbix agent | oracle.ts.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Get tablespaces stats | Gets the statistics of the tablespace. |
Zabbix agent | oracle.ts.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#TABLESPACE}","{#CONTENTS}","{#CON_ID}"] |
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
Dependent item | oracle.tbs_alloc_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
Dependent item | oracle.tbs_max_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles minus the free space). |
Dependent item | oracle.tbs_used_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
Dependent item | oracle.tbs_free_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
Dependent item | oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
Dependent item | oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX, percent | Used bytes/max bytes*100. |
Dependent item | oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - ONLINE; 2 - OFFLINE; 3 - READ ONLY. |
Dependent item | oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization from MAX is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"])=2 |
Warning | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Destinations of the log archive. |
Zabbix agent | oracle.archive.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archivelog '{#DEST_NAME}': Get archive log info | Gets the archive log statistics. |
Zabbix agent | oracle.archive.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DEST_NAME}"] |
| Archivelog '{#DEST_NAME}': Error | Displays the error message. |
Dependent item | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived. |
Dependent item | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination where: 1 - VALID; 2 - DEFERRED; 3 - ERROR; 0 - UNKNOWN. |
Dependent item | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: |
last(/Oracle by Zabbix agent 2/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM disk groups discovery | The ASM disk groups. |
Zabbix agent | oracle.diskgroups.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM '{#DGNAME}': Get ASM stats | Gets the ASM disk group statistics. |
Zabbix agent | oracle.diskgroups.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DGNAME}"] |
| ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
Dependent item | oracle.asm_total_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
Dependent item | oracle.asm_free_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Used size, percent | Usage of the ASM disk group expressed in %. |
Dependent item | oracle.asm_used_pct["{#DGNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
High |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_agent2?at=release/7.0
The template is developed to monitor a single DBMS Oracle Database instance with Zabbix agent 2.
Oracle Database 12c2 and newer.
Important! This integration queries the V$ACTIVE_SESSION_HISTORY dynamic performance view which is part of the Oracle Diagnostics Pack. Please make sure that you have the licence required for using this management pack.
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup and configure Zabbix agent 2 compiled with the Oracle monitoring plugin. See the setup instructions for Oracle Database plugin.
Set the {$ORACLE.CONNSTRING} macro value using either <protocol(host:port)> or named session.
If you want to override parameters from Zabbix agent configuration file, set the user name, password and service name in host macros ({$ORACLE.USER}, {$ORACLE.PASSWORD}, and {$ORACLE.SERVICE}).
User can contain sysdba, sysoper, sysasm privileges. It must be used with as as a separator e.g user as sysdba, privilege can be upper or lowercase, and must be at the end of username string.
Test availability:
zabbix_get -s oracle-host -k oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]
| Name | Description | Default |
|---|---|---|
| {$ORACLE.USER} | Oracle username. |
zabbix |
| {$ORACLE.PASSWORD} | Oracle user's password. |
zabbix_password |
| {$ORACLE.CONNSTRING} | Oracle URI or a session name. |
tcp://localhost:1521 |
| {$ORACLE.SERVICE} | Oracle Service Name. |
ORA |
| {$ORACLE.DBNAME.MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
PDB\$SEED |
| {$ORACLE.TABLESPACE.CONTAINER.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.CONTAINER.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
80 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for the Warning trigger expression. |
80 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for the Warning trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for the Warning trigger expression. |
80 |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression. |
90 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression. |
20 |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression. |
3 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of session concurrency for the Warning trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of redo logs for the Warning trigger expression. |
3 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression. |
5 |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of days before the password expires for the Warning trigger expression. |
7 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression. |
90 |
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression. |
95 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Ping | Test the connection to Oracle Database state. |
Zabbix agent | oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Get instance state | Gets the state of the current instance. |
Zabbix agent | oracle.instance.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Version | The Oracle Server version. |
Zabbix agent | oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Uptime | The Oracle instance uptime expressed in seconds. |
Dependent item | oracle.uptime Preprocessing
|
| Instance status | The status of the instance. |
Dependent item | oracle.instance_status Preprocessing
|
| Archiver state | The status of automatic archiving. |
Dependent item | oracle.archiver_state Preprocessing
|
| Instance name | The name of the instance. |
Dependent item | oracle.instance_name Preprocessing
|
| Instance hostname | The name of the host machine. |
Dependent item | oracle.instance_hostname Preprocessing
|
| Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
Dependent item | oracle.instance.role Preprocessing
|
| Get system metrics | Gets the values of the system metrics. |
Zabbix agent | oracle.sys.metrics["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
Dependent item | oracle.buffer_cache_hit_ratio Preprocessing
|
| Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
Dependent item | oracle.cursor_cache_hit_ratio Preprocessing
|
| Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
Dependent item | oracle.library_cache_hit_ratio Preprocessing
|
| Shared pool free % | Free memory of a shared pool expressed in %. |
Dependent item | oracle.shared_pool_free Preprocessing
|
| Physical reads per second | Reads per second. |
Dependent item | oracle.physical_reads_rate Preprocessing
|
| Physical writes per second | Writes per second. |
Dependent item | oracle.physical_writes_rate Preprocessing
|
| Physical reads bytes per second | Read bytes per second. |
Dependent item | oracle.physical_read_bytes_rate Preprocessing
|
| Physical writes bytes per second | Write bytes per second. |
Dependent item | oracle.physical_write_bytes_rate Preprocessing
|
| Enqueue timeouts per second | Enqueue timeouts per second. |
Dependent item | oracle.enqueue_timeouts_rate Preprocessing
|
| GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
Dependent item | oracle.gc_cr_block_received_rate Preprocessing
|
| Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
Dependent item | oracle.cache_blocks_corrupt Preprocessing
|
| Global cache blocks lost | The number of lost global cache blocks. |
Dependent item | oracle.cache_blocks_lost Preprocessing
|
| Logons per second | The number of logon attempts. |
Dependent item | oracle.logons_rate Preprocessing
|
| Average active sessions | The average number of active sessions at a point in time that are either working or waiting. |
Dependent item | oracle.active_sessions Preprocessing
|
| Active serial sessions | The number of active serial sessions. |
Dependent item | oracle.active_serial_sessions Preprocessing
|
| Active parallel sessions | The number of active parallel sessions. |
Dependent item | oracle.active_parallel_sessions Preprocessing
|
| Long table scans per second | The number of long table scans per second. A table is considered long if it is not cached and if its high water mark is greater than five blocks. |
Dependent item | oracle.long_table_scans_rate Preprocessing
|
| SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
Dependent item | oracle.service_response_time Preprocessing
|
| User rollbacks per second | The number of times that users manually issued the |
Dependent item | oracle.user_rollbacks_rate Preprocessing
|
| Total sorts per user call | The total sorts per user call. |
Dependent item | oracle.sorts_per_user_call Preprocessing
|
| Rows per sort | The average number of rows per sort for all types of sorts performed. |
Dependent item | oracle.rows_per_sort Preprocessing
|
| Disk sort per second | The number of sorts going to disk per second. |
Dependent item | oracle.disk_sorts Preprocessing
|
| Memory sorts ratio | The percentage of sorts (from |
Dependent item | oracle.memory_sorts_ratio Preprocessing
|
| Database wait time ratio | 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, etc. |
Dependent item | oracle.database_wait_time_ratio Preprocessing
|
| Database CPU time ratio | The ratio calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
Dependent item | oracle.database_cpu_time_ratio Preprocessing
|
| Temp space used | Used temporary space. |
Dependent item | oracle.temp_space_used Preprocessing
|
| Get system parameters | Get a set of system parameter values. |
Zabbix agent | oracle.sys.params["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Sessions limit | The user and system sessions. |
Dependent item | oracle.session_limit Preprocessing
|
| Datafiles limit | The maximum allowable number of datafiles. |
Dependent item | oracle.db_files_limit Preprocessing
|
| Processes limit | The maximum number of user processes. |
Dependent item | oracle.processes_limit Preprocessing
|
| Get sessions stats | Get sessions statistics. {$ORACLE.SESSION.LOCK.MAX.TIME} -- maximum seconds in the current wait condition for counting long time locked sessions. Default: 600 seconds. |
Zabbix agent | oracle.sessions.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{$ORACLE.SESSION.LOCK.MAX.TIME}"] |
| Session count | The session count. |
Dependent item | oracle.session_count Preprocessing
|
| Active user sessions | The number of active user sessions. |
Dependent item | oracle.session_active_user Preprocessing
|
| Active background sessions | The number of active background sessions. |
Dependent item | oracle.session_active_background Preprocessing
|
| Inactive user sessions | The number of inactive user sessions. |
Dependent item | oracle.session_inactive_user Preprocessing
|
| Sessions lock rate | 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. |
Dependent item | oracle.session_lock_rate Preprocessing
|
| Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of the maximum session lock in seconds for a query using the |
Dependent item | oracle.session_long_time_locked Preprocessing
|
| Sessions concurrency | The percentage of concurrency. Concurrency is a database behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, and the rest of the transactions wait for access. When the access to a resource is locked for a long time, the concurrency grows (like the transaction queue), often leaving 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. |
Dependent item | oracle.session_concurrency_rate Preprocessing
|
| Get PGA stats | Get PGA statistics. |
Zabbix agent | oracle.pga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| PGA, Total inuse | The amount of Program Global Area (PGA) memory 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). |
Dependent item | oracle.total_pga_used Preprocessing
|
| PGA, Aggregate target parameter | The current value of the |
Dependent item | oracle.pga_target Preprocessing
|
| PGA, Total allocated | The current amount of the PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the |
Dependent item | oracle.total_pga_allocated Preprocessing
|
| PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the OS. |
Dependent item | oracle.total_pga_freeable Preprocessing
|
| PGA, Global memory bound | The maximum size of a work area executed in automatic mode. |
Dependent item | oracle.pga_global_bound Preprocessing
|
| Get FRA stats | Get FRA statistics. |
Zabbix agent | oracle.fra.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
Dependent item | oracle.fra_space_limit Preprocessing
|
| FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
Dependent item | oracle.fra_space_used Preprocessing
|
| FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low-priority files from the FRA. |
Dependent item | oracle.fra_space_reclaimable Preprocessing
|
| FRA, Number of files | The number of files in the FRA. |
Dependent item | oracle.fra_number_of_files Preprocessing
|
| FRA, Usable space in % | Percentage of space usable in the FRA. |
Dependent item | oracle.fra_usable_pct Preprocessing
|
| FRA, Number of restore points | Number of restore points in the FRA. |
Dependent item | oracle.fra_restore_point Preprocessing
|
| Get SGA stats | Get SGA statistics. |
Zabbix agent | oracle.sga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| SGA, java pool | The memory is allocated from the Java pool. |
Dependent item | oracle.sga_java_pool Preprocessing
|
| SGA, large pool | The memory is allocated from a large pool. |
Dependent item | oracle.sga_large_pool Preprocessing
|
| SGA, shared pool | The memory is allocated from a shared pool. |
Dependent item | oracle.sga_shared_pool Preprocessing
|
| SGA, log buffer | The number of bytes allocated for the redo log buffer. |
Dependent item | oracle.sga_log_buffer Preprocessing
|
| SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
Dependent item | oracle.sga_fixed Preprocessing
|
| SGA, buffer cache | The size of standard block cache. |
Dependent item | oracle.sga_buffer_cache Preprocessing
|
| User's expire password | The number of days before the Zabbix account password expires. |
Zabbix agent | oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
Zabbix agent | oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Number of processes | The current number of user processes. |
Zabbix agent | oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Datafiles count | The current number of datafiles. |
Zabbix agent | oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Connection to database is unavailable | Connection to Oracle Database is currently unavailable. |
last(/Oracle by Zabbix agent 2/oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"])=0 |
Disaster | |
| Oracle: Version has changed | The Oracle Database version has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],#2) and length(last(/Oracle by Zabbix agent 2/oracle.version["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]))>0 |
Info | Manual close: Yes |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by Zabbix agent 2/oracle.uptime,30m)=1 |
Info | |
| Oracle: Host has been restarted | Uptime is less than 10 minutes. |
last(/Oracle by Zabbix agent 2/oracle.uptime)<10m |
Info | Manual close: Yes |
| Oracle: Instance name has changed | An Oracle Database instance name has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.instance_name,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_name,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_name))>0 |
Info | Manual close: Yes |
| Oracle: Instance hostname has changed | An Oracle Database instance hostname has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_hostname))>0 |
Info | Manual close: Yes |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than |
max(/Oracle by Zabbix agent 2/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
Warning | |
| Oracle: Too many active sessions | Active sessions are using more than |
min(/Oracle by Zabbix agent 2/oracle.session_count,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
Warning | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds |
min(/Oracle by Zabbix agent 2/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding |
min(/Oracle by Zabbix agent 2/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too high database concurrency | The concurrency rate exceeds |
min(/Oracle by Zabbix agent 2/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
Warning | |
| Oracle: Total PGA inuse is too high | The total PGA in use is more than |
min(/Oracle by Zabbix agent 2/oracle.total_pga_used,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
Warning | |
| Oracle: Zabbix account will expire soon | The password for the Zabbix user in the database expires soon. |
last(/Oracle by Zabbix agent 2/oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
Warning | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused redos available for log switching is low (risk of database downtime). |
max(/Oracle by Zabbix agent 2/oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) < {$ORACLE.REDO.MIN.WARN} |
Warning | |
| Oracle: Too many active processes | Active processes are using more than |
min(/Oracle by Zabbix agent 2/oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
Warning | |
| Oracle: Too many database files | The number of datafiles is higher than |
min(/Oracle by Zabbix agent 2/oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Scanning databases in the database management system (DBMS). |
Zabbix agent | oracle.db.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get CDB and No-CDB info | Gets the information about the CDB and non-CDB database on an instance. |
Zabbix agent | oracle.cdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"] |
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.db_open_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Role | The current role of the database where: 1 - SNAPSHOT STANDBY; 2 - LOGICAL STANDBY; 3 - PHYSICAL STANDBY; 4 - PRIMARY; 5 - FAR SYNC. |
Dependent item | oracle.db_role["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Log mode | The archive log mode where: 0 - NOARCHIVELOG; 1 - ARCHIVELOG; 2 - MANUAL. |
Dependent item | oracle.db_log_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode ( |
Dependent item | oracle.db_force_logging["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes Depends on:
|
| Oracle: Database '{#DBNAME}': Role has changed | The Oracle Database role has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Oracle: Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force logging mode is a very important metric for databases in |
last(/Oracle by Zabbix agent 2/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by Zabbix agent 2/oracle.db_log_mode["{#DBNAME}"]) = 1 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| PDB discovery | Scanning a pluggable database (PDB) in DBMS. |
Zabbix agent | oracle.pdb.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get PDB info | Gets the information about the PDB database on an instance. |
Zabbix agent | oracle.pdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#CON_ID}"] |
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.pdb_open_mode["{#CON_ID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#CON_ID}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#CON_ID}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#CON_ID}"],#2) |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Tablespace discovery | Scanning tablespaces in DBMS. |
Zabbix agent | oracle.ts.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Get tablespaces stats | Gets the statistics of the tablespace. |
Zabbix agent | oracle.ts.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#TABLESPACE}","{#CONTENTS}","{#CON_ID}"] |
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
Dependent item | oracle.tbs_alloc_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
Dependent item | oracle.tbs_max_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles minus the free space). |
Dependent item | oracle.tbs_used_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
Dependent item | oracle.tbs_free_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
Dependent item | oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
Dependent item | oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX, percent | Used bytes/max bytes*100. |
Dependent item | oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - ONLINE; 2 - OFFLINE; 3 - READ ONLY. |
Dependent item | oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization from MAX is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"])=2 |
Warning | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Destinations of the log archive. |
Zabbix agent | oracle.archive.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archivelog '{#DEST_NAME}': Get archive log info | Gets the archive log statistics. |
Zabbix agent | oracle.archive.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DEST_NAME}"] |
| Archivelog '{#DEST_NAME}': Error | Displays the error message. |
Dependent item | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived. |
Dependent item | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination where: 1 - VALID; 2 - DEFERRED; 3 - ERROR; 0 - UNKNOWN. |
Dependent item | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: |
last(/Oracle by Zabbix agent 2/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM disk groups discovery | The ASM disk groups. |
Zabbix agent | oracle.diskgroups.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM '{#DGNAME}': Get ASM stats | Gets the ASM disk group statistics. |
Zabbix agent | oracle.diskgroups.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DGNAME}"] |
| ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
Dependent item | oracle.asm_total_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
Dependent item | oracle.asm_free_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Used size, percent | Usage of the ASM disk group expressed in %. |
Dependent item | oracle.asm_used_pct["{#DGNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
High |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_agent2?at=release/6.4
The template is developed to monitor a single DBMS Oracle Database instance with Zabbix agent 2.
Oracle Database 12c2 and newer.
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup and configure Zabbix agent 2 compiled with the Oracle monitoring plugin. See the setup instructions for Oracle Database plugin.
Set the {$ORACLE.CONNSTRING} macro value using either <protocol(host:port)> or named session.
If you want to override parameters from Zabbix agent configuration file, set the user name, password and service name in host macros ({$ORACLE.USER}, {$ORACLE.PASSWORD}, and {$ORACLE.SERVICE}).
User can contain sysdba, sysoper, sysasm privileges. It must be used with as as a separator e.g user as sysdba, privilege can be upper or lowercase, and must be at the end of username string.
Test availability:
zabbix_get -s oracle-host -k oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]
| Name | Description | Default |
|---|---|---|
| {$ORACLE.USER} | Oracle username. |
zabbix |
| {$ORACLE.PASSWORD} | Oracle user's password. |
zabbix_password |
| {$ORACLE.CONNSTRING} | Oracle URI or a session name. |
tcp://localhost:1521 |
| {$ORACLE.SERVICE} | Oracle Service Name. |
ORA |
| {$ORACLE.DBNAME.MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
PDB\$SEED |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
80 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for the Warning trigger expression. |
80 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for the Warning trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for the Warning trigger expression. |
80 |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression. |
90 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression. |
20 |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression. |
3 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of session concurrency for the Warning trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of redo logs for the Warning trigger expression. |
3 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression. |
5 |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of days before the password expires for the Warning trigger expression. |
7 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression. |
90 |
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression. |
95 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle: Ping | Test the connection to Oracle Database state. |
Zabbix agent | oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Oracle: Get instance state | Gets the state of the current instance. |
Zabbix agent | oracle.instance.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: Version | The Oracle Server version. |
Dependent item | oracle.version Preprocessing
|
| Oracle: Uptime | The Oracle instance uptime expressed in seconds. |
Dependent item | oracle.uptime Preprocessing
|
| Oracle: Instance status | The status of the instance. |
Dependent item | oracle.instance_status Preprocessing
|
| Oracle: Archiver state | The status of automatic archiving. |
Dependent item | oracle.archiver_state Preprocessing
|
| Oracle: Instance name | The name of the instance. |
Dependent item | oracle.instance_name Preprocessing
|
| Oracle: Instance hostname | The name of the host machine. |
Dependent item | oracle.instance_hostname Preprocessing
|
| Oracle: Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
Dependent item | oracle.instance.role Preprocessing
|
| Oracle: Get system metrics | Gets the values of the system metrics. |
Zabbix agent | oracle.sys.metrics["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
Dependent item | oracle.buffer_cache_hit_ratio Preprocessing
|
| Oracle: Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
Dependent item | oracle.cursor_cache_hit_ratio Preprocessing
|
| Oracle: Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
Dependent item | oracle.library_cache_hit_ratio Preprocessing
|
| Oracle: Shared pool free % | Free memory of a shared pool expressed in %. |
Dependent item | oracle.shared_pool_free Preprocessing
|
| Oracle: Physical reads per second | Reads per second. |
Dependent item | oracle.physical_reads_rate Preprocessing
|
| Oracle: Physical writes per second | Writes per second. |
Dependent item | oracle.physical_writes_rate Preprocessing
|
| Oracle: Physical reads bytes per second | Read bytes per second. |
Dependent item | oracle.physical_read_bytes_rate Preprocessing
|
| Oracle: Physical writes bytes per second | Write bytes per second. |
Dependent item | oracle.physical_write_bytes_rate Preprocessing
|
| Oracle: Enqueue timeouts per second | Enqueue timeouts per second. |
Dependent item | oracle.enqueue_timeouts_rate Preprocessing
|
| Oracle: GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
Dependent item | oracle.gc_cr_block_received_rate Preprocessing
|
| Oracle: Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
Dependent item | oracle.cache_blocks_corrupt Preprocessing
|
| Oracle: Global cache blocks lost | The number of lost global cache blocks. |
Dependent item | oracle.cache_blocks_lost Preprocessing
|
| Oracle: Logons per second | The number of logon attempts. |
Dependent item | oracle.logons_rate Preprocessing
|
| Oracle: Average active sessions | The average number of active sessions at a point in time that are either working or waiting. |
Dependent item | oracle.active_sessions Preprocessing
|
| Oracle: Active serial sessions | The number of active serial sessions. |
Dependent item | oracle.active_serial_sessions Preprocessing
|
| Oracle: Active parallel sessions | The number of active parallel sessions. |
Dependent item | oracle.active_parallel_sessions Preprocessing
|
| Oracle: Long table scans per second | The number of long table scans per second. A table is considered long if it is not cached and if its high water mark is greater than five blocks. |
Dependent item | oracle.long_table_scans_rate Preprocessing
|
| Oracle: SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
Dependent item | oracle.service_response_time Preprocessing
|
| Oracle: User rollbacks per second | The number of times that users manually issued the |
Dependent item | oracle.user_rollbacks_rate Preprocessing
|
| Oracle: Total sorts per user call | The total sorts per user call. |
Dependent item | oracle.sorts_per_user_call Preprocessing
|
| Oracle: Rows per sort | The average number of rows per sort for all types of sorts performed. |
Dependent item | oracle.rows_per_sort Preprocessing
|
| Oracle: Disk sort per second | The number of sorts going to disk per second. |
Dependent item | oracle.disk_sorts Preprocessing
|
| Oracle: Memory sorts ratio | The percentage of sorts (from |
Dependent item | oracle.memory_sorts_ratio Preprocessing
|
| Oracle: Database wait time ratio | 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, etc. |
Dependent item | oracle.database_wait_time_ratio Preprocessing
|
| Oracle: Database CPU time ratio | The ratio calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
Dependent item | oracle.database_cpu_time_ratio Preprocessing
|
| Oracle: Temp space used | Used temporary space. |
Dependent item | oracle.temp_space_used Preprocessing
|
| Oracle: Get system parameters | Get a set of system parameter values. |
Zabbix agent | oracle.sys.params["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: Sessions limit | The user and system sessions. |
Dependent item | oracle.session_limit Preprocessing
|
| Oracle: Datafiles limit | The maximum allowable number of datafiles. |
Dependent item | oracle.db_files_limit Preprocessing
|
| Oracle: Processes limit | The maximum number of user processes. |
Dependent item | oracle.processes_limit Preprocessing
|
| Oracle: Get sessions stats | Get sessions statistics. {$ORACLE.SESSION.LOCK.MAX.TIME} -- maximum seconds in the current wait condition for counting long time locked sessions. Default: 600 seconds. |
Zabbix agent | oracle.sessions.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{$ORACLE.SESSION.LOCK.MAX.TIME}"] |
| Oracle: Session count | The session count. |
Dependent item | oracle.session_count Preprocessing
|
| Oracle: Active user sessions | The number of active user sessions. |
Dependent item | oracle.session_active_user Preprocessing
|
| Oracle: Active background sessions | The number of active background sessions. |
Dependent item | oracle.session_active_background Preprocessing
|
| Oracle: Inactive user sessions | The number of inactive user sessions. |
Dependent item | oracle.session_inactive_user Preprocessing
|
| Oracle: Sessions lock rate | 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. |
Dependent item | oracle.session_lock_rate Preprocessing
|
| Oracle: Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of the maximum session lock in seconds for a query using the |
Dependent item | oracle.session_long_time_locked Preprocessing
|
| Oracle: Sessions concurrency | The percentage of concurrency. Concurrency is a database behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, and the rest of the transactions wait for access. When the access to a resource is locked for a long time, the concurrency grows (like the transaction queue), often leaving 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. |
Dependent item | oracle.session_concurrency_rate Preprocessing
|
| Oracle: Get PGA stats | Get PGA statistics. |
Zabbix agent | oracle.pga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: PGA, Total inuse | The amount of Program Global Area (PGA) memory 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). |
Dependent item | oracle.total_pga_used Preprocessing
|
| Oracle: PGA, Aggregate target parameter | The current value of the |
Dependent item | oracle.pga_target Preprocessing
|
| Oracle: PGA, Total allocated | The current amount of the PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the |
Dependent item | oracle.total_pga_allocated Preprocessing
|
| Oracle: PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the OS. |
Dependent item | oracle.total_pga_freeable Preprocessing
|
| Oracle: PGA, Global memory bound | The maximum size of a work area executed in automatic mode. |
Dependent item | oracle.pga_global_bound Preprocessing
|
| Oracle: Get FRA stats | Get FRA statistics. |
Zabbix agent | oracle.fra.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
Dependent item | oracle.fra_space_limit Preprocessing
|
| Oracle: FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
Dependent item | oracle.fra_space_used Preprocessing
|
| Oracle: FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low-priority files from the FRA. |
Dependent item | oracle.fra_space_reclaimable Preprocessing
|
| Oracle: FRA, Number of files | The number of files in the FRA. |
Dependent item | oracle.fra_number_of_files Preprocessing
|
| Oracle: FRA, Usable space in % | Percentage of space usable in the FRA. |
Dependent item | oracle.fra_usable_pct Preprocessing
|
| Oracle: FRA, Number of restore points | Number of restore points in the FRA. |
Dependent item | oracle.fra_restore_point Preprocessing
|
| Oracle: Get SGA stats | Get SGA statistics. |
Zabbix agent | oracle.sga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: SGA, java pool | The memory is allocated from the Java pool. |
Dependent item | oracle.sga_java_pool Preprocessing
|
| Oracle: SGA, large pool | The memory is allocated from a large pool. |
Dependent item | oracle.sga_large_pool Preprocessing
|
| Oracle: SGA, shared pool | The memory is allocated from a shared pool. |
Dependent item | oracle.sga_shared_pool Preprocessing
|
| Oracle: SGA, log buffer | The number of bytes allocated for the redo log buffer. |
Dependent item | oracle.sga_log_buffer Preprocessing
|
| Oracle: SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
Dependent item | oracle.sga_fixed Preprocessing
|
| Oracle: SGA, buffer cache | The size of standard block cache. |
Dependent item | oracle.sga_buffer_cache Preprocessing
|
| Oracle: User's expire password | The number of days before the Zabbix account password expires. |
Zabbix agent | oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Oracle: Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
Zabbix agent | oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Oracle: Number of processes | The current number of user processes. |
Zabbix agent | oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Oracle: Datafiles count | The current number of datafiles. |
Zabbix agent | oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Connection to database is unavailable | Connection to Oracle Database is currently unavailable. |
last(/Oracle by Zabbix agent 2/oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"])=0 |
Disaster | |
| Oracle: Version has changed | The Oracle Database version has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.version,#1)<>last(/Oracle by Zabbix agent 2/oracle.version,#2) and length(last(/Oracle by Zabbix agent 2/oracle.version))>0 |
Info | Manual close: Yes |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by Zabbix agent 2/oracle.uptime,30m)=1 |
Info | |
| Oracle: Host has been restarted | Uptime is less than 10 minutes. |
last(/Oracle by Zabbix agent 2/oracle.uptime)<10m |
Info | Manual close: Yes |
| Oracle: Instance name has changed | An Oracle Database instance name has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.instance_name,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_name,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_name))>0 |
Info | Manual close: Yes |
| Oracle: Instance hostname has changed | An Oracle Database instance hostname has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_hostname))>0 |
Info | Manual close: Yes |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than |
max(/Oracle by Zabbix agent 2/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
Warning | |
| Oracle: Too many active sessions | Active sessions are using more than |
min(/Oracle by Zabbix agent 2/oracle.session_count,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
Warning | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds |
min(/Oracle by Zabbix agent 2/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding |
min(/Oracle by Zabbix agent 2/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too high database concurrency | The concurrency rate exceeds |
min(/Oracle by Zabbix agent 2/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
Warning | |
| Oracle: Total PGA inuse is too high | The total PGA in use is more than |
min(/Oracle by Zabbix agent 2/oracle.total_pga_used,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
Warning | |
| Oracle: Zabbix account will expire soon | The password for the Zabbix user in the database expires soon. |
last(/Oracle by Zabbix agent 2/oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
Warning | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused redos available for log switching is low (risk of database downtime). |
max(/Oracle by Zabbix agent 2/oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) < {$ORACLE.REDO.MIN.WARN} |
Warning | |
| Oracle: Too many active processes | Active processes are using more than |
min(/Oracle by Zabbix agent 2/oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
Warning | |
| Oracle: Too many database files | The number of datafiles is higher than |
min(/Oracle by Zabbix agent 2/oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Scanning databases in the database management system (DBMS). |
Zabbix agent | oracle.db.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle Database '{#DBNAME}': Get CDB and No-CDB info | Gets the information about the CDB and non-CDB database on an instance. |
Zabbix agent | oracle.cdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"] |
| Oracle Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.db_open_mode["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Role | The current role of the database where: 1 - SNAPSHOT STANDBY; 2 - LOGICAL STANDBY; 3 - PHYSICAL STANDBY; 4 - PRIMARY; 5 - FAR SYNC. |
Dependent item | oracle.db_role["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Log mode | The archive log mode where: 0 - NOARCHIVELOG; 1 - ARCHIVELOG; 2 - MANUAL. |
Dependent item | oracle.db_log_mode["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode ( |
Dependent item | oracle.db_force_logging["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes Depends on:
|
| Oracle Database '{#DBNAME}': Role has changed | The Oracle Database role has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Oracle Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force logging mode is a very important metric for databases in |
last(/Oracle by Zabbix agent 2/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by Zabbix agent 2/oracle.db_log_mode["{#DBNAME}"]) = 1 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| PDB discovery | Scanning a pluggable database (PDB) in DBMS. |
Zabbix agent | oracle.pdb.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle Database '{#DBNAME}': Get PDB info | Gets the information about the PDB database on an instance. |
Zabbix agent | oracle.pdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"] |
| Oracle Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.pdb_open_mode["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Tablespace discovery | Scanning tablespaces in DBMS. |
Zabbix agent | oracle.ts.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle TBS '{#TABLESPACE}': Get tablespaces stats | Gets the statistics of the tablespace. |
Zabbix agent | oracle.ts.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#TABLESPACE}","{#CONTENTS}"] |
| Oracle TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
Dependent item | oracle.tbs_alloc_bytes["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
Dependent item | oracle.tbs_max_bytes["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles minus the free space). |
Dependent item | oracle.tbs_used_bytes["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
Dependent item | oracle.tbs_free_bytes["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
Dependent item | oracle.tbs_used_file_pct["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
Dependent item | oracle.tbs_used_pct["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace usage from MAX, percent | Used bytes/max bytes*100. |
Dependent item | oracle.tbs_used_from_max_pct["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - ONLINE; 2 - OFFLINE; 3 - READ ONLY. |
Dependent item | oracle.tbs_status["{#TABLESPACE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
High | |
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
High | |
| Oracle TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_from_max_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} |
Warning | Depends on:
|
| Oracle TBS '{#TABLESPACE}': Tablespace utilization from MAX is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_from_max_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} |
High | |
| Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"])=2 |
Warning | |
| Oracle TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"],#2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Destinations of the log archive. |
Zabbix agent | oracle.archive.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archivelog '{#DEST_NAME}': Get archive log info | Gets the archive log statistics. |
Zabbix agent | oracle.archive.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DEST_NAME}"] |
| Archivelog '{#DEST_NAME}': Error | Displays the error message. |
Dependent item | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived. |
Dependent item | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination where: 1 - VALID; 2 - DEFERRED; 3 - ERROR; 0 - UNKNOWN. |
Dependent item | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: |
last(/Oracle by Zabbix agent 2/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM disk groups discovery | The ASM disk groups. |
Zabbix agent | oracle.diskgroups.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM '{#DGNAME}': Get ASM stats | Gets the ASM disk group statistics. |
Zabbix agent | oracle.diskgroups.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DGNAME}"] |
| ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
Dependent item | oracle.asm_total_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
Dependent item | oracle.asm_free_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Used size, percent | Usage of the ASM disk group expressed in %. |
Dependent item | oracle.asm_used_pct["{#DGNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
High |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_agent2?at=release/6.2
For Zabbix version: 6.2 and higher. The template is developed to monitor a single DBMS Oracle Database instance with Zabbix agent 2.
This template was tested on:
See Zabbix template operation for basic instructions.
Test availability:
zabbix_get -s oracle-host -k oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used Automatic Storage Management (ASM) disk group for a high trigger expression. |
95 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used ASM disk group for a warning trigger expression. |
90 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of sessions concurrency usage for a trigger expression. |
80 |
| {$ORACLE.CONNSTRING} | - |
tcp://localhost:1521 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for a trigger expression. |
80 |
| {$ORACLE.DBNAME.MATCHES} | This macro is used in discovery of the database. It can be overridden on host level or its linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | This macro is used in discovery of the database. It can be overridden on host level or its linked template level. |
PDB\$SEED |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of warning days before the password expires for a trigger expression. |
7 |
| {$ORACLE.PASSWORD} | The Oracle user's password. |
zabbix_password |
| {$ORACLE.PGA.USE.MAX.WARN} | The maximum percentage of the Program Global Area (PGA) usage that alerts the threshold for a trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for a trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of REDO logs for a trigger expression. |
3 |
| {$ORACLE.SERVICE} | Oracle Service Name. |
ORA |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for a trigger expression. |
3 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for a trigger expression. |
20 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for a trigger expression. |
80 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for a trigger expression. |
5 |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | This macro is used in tablespace discovery. It can be overridden on host level or its linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | This macro is used in tablespace discovery. It can be overridden on host level or its linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for a trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for a trigger expression. |
90 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for a trigger expression. |
90 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for a trigger expression. |
80 |
| {$ORACLE.USER} | Oracle username. |
zabbix |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Destinations of the log archive. |
ZABBIX_PASSIVE | oracle.archive.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| ASM disk groups discovery | The ASM disk groups. |
ZABBIX_PASSIVE | oracle.diskgroups.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Database discovery | Scanning databases in the database management system (DBMS). |
ZABBIX_PASSIVE | oracle.db.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| PDB discovery | Scanning a pluggable database (PDB) in DBMS. |
ZABBIX_PASSIVE | oracle.pdb.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| Tablespace discovery | Scanning tablespaces in DBMS. |
ZABBIX_PASSIVE | oracle.ts.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Filter: AND- {#TABLESPACE} MATCHES_REGEX - {#TABLESPACE} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Oracle | Oracle: Ping | Test the connection to Oracle Database state. |
ZABBIX_PASSIVE | oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Version | The Oracle Server version. |
DEPENDENT | oracle.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Uptime | The Oracle instance uptime expressed in seconds. |
DEPENDENT | oracle.uptime Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance status | The status of the instance. |
DEPENDENT | oracle.instance_status Preprocessing: - JSONPATH: |
| Oracle | Oracle: Archiver state | The status of automatic archiving. |
DEPENDENT | oracle.archiver_state Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance name | The name of an instance. |
DEPENDENT | oracle.instance_name Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance hostname | The name of the host machine. |
DEPENDENT | oracle.instance_hostname Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance role | It indicates whether the instance is an active instance or an inactive secondary instance. |
DEPENDENT | oracle.instance.role Preprocessing: - JSONPATH: |
| Oracle | Oracle: Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
DEPENDENT | oracle.buffer_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
DEPENDENT | oracle.cursor_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
DEPENDENT | oracle.library_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Shared pool free % | Free memory of a shared pool expressed in %. |
DEPENDENT | oracle.shared_pool_free Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical reads per second | Reads per second. |
DEPENDENT | oracle.physical_reads_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical writes per second | Writes per second. |
DEPENDENT | oracle.physical_writes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical reads bytes per second | Read bytes per second. |
DEPENDENT | oracle.physical_read_bytes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical writes bytes per second | Write bytes per second. |
DEPENDENT | oracle.physical_write_bytes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Enqueue timeouts per second | Enqueue timeouts per second. |
DEPENDENT | oracle.enqueue_timeouts_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
DEPENDENT | oracle.gc_cr_block_received_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
DEPENDENT | oracle.cache_blocks_corrupt Preprocessing: - JSONPATH: |
| Oracle | Oracle: Global cache blocks lost | The number of lost global cache blocks. |
DEPENDENT | oracle.cache_blocks_lost Preprocessing: - JSONPATH: |
| Oracle | Oracle: Logons per second | The number of logon attempts. |
DEPENDENT | oracle.logons_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Average active sessions | The average active sessions at a point in time. The number of sessions that are either working or waiting. |
DEPENDENT | oracle.active_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active serial sessions | The number of active serial sessions. |
DEPENDENT | oracle.active_serial_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active parallel sessions | The number of active parallel sessions. |
DEPENDENT | oracle.active_parallel_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Long table scans per second | 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 five blocks. |
DEPENDENT | oracle.long_table_scans_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
DEPENDENT | oracle.service_response_time Preprocessing: - JSONPATH: - MULTIPLIER: |
| Oracle | Oracle: User rollbacks per second | The number of times that users manually issue the ROLLBACK statement or an error occurred during the users' transactions. |
DEPENDENT | oracle.user_rollbacks_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Total sorts per user call | The total sorts per user call. |
DEPENDENT | oracle.sorts_per_user_call Preprocessing: - JSONPATH: |
| Oracle | Oracle: Rows per sort | The average number of rows per sort for all types of sorts performed. |
DEPENDENT | oracle.rows_per_sort Preprocessing: - JSONPATH: |
| Oracle | Oracle: Disk sort per second | The number of sorts going to disk per second. |
DEPENDENT | oracle.disk_sorts Preprocessing: - JSONPATH: |
| Oracle | Oracle: Memory sorts ratio | The percentage of sorts (from ORDER BY clauses or index building) that are done to disk vs in-memory. |
DEPENDENT | oracle.memory_sorts_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Database wait time ratio | 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, etc. |
DEPENDENT | oracle.database_wait_time_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Database CPU time ratio | It is calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
DEPENDENT | oracle.database_cpu_time_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Temp space used | Used temporary space. |
DEPENDENT | oracle.temp_space_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions limit | The user and system sessions. |
DEPENDENT | oracle.session_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Datafiles limit | The maximum allowable number of datafiles. |
DEPENDENT | oracle.db_files_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Processes limit | The maximum number of user processes. |
DEPENDENT | oracle.processes_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Session count | The count of sessions. |
DEPENDENT | oracle.session_count Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active user sessions | The number of active user sessions. |
DEPENDENT | oracle.session_active_user Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Active background sessions | The number of active background sessions. |
DEPENDENT | oracle.session_active_background Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Inactive user sessions | The number of inactive user sessions. |
DEPENDENT | oracle.session_inactive_user Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Sessions lock rate | 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. |
DEPENDENT | oracle.session_lock_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of maximum session lock in seconds for a query by {$ORACLE.SESSION.LOCK.MAX.TIME} macro. Default is 600 sec). |
DEPENDENT | oracle.session_long_time_locked Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions concurrency | The percentage of concurrency. Concurrency is a DB behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, the rest of the transactions are waiting for the access. In the case when the access for the resource is locked for a long time, then the concurrency grows (like the transaction queue) and this often has an extremely negative impact on the performance. A high contention value does not indicate the root cause of the problem but is a signal to search for it. |
DEPENDENT | oracle.session_concurrency_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total inuse | It indicates how much the Program Global Area (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). |
DEPENDENT | oracle.total_pga_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Aggregate target parameter | The current value of the PGA_AGGREGATE_TARGET initialization parameter. If this parameter is not set, then its value is 0 and automatic management of the PGA memory is disabled. |
DEPENDENT | oracle.pga_target Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total allocated | The current amount of the 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. |
DEPENDENT | oracle.total_pga_allocated Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the operating system. |
DEPENDENT | oracle.total_pga_freeable Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Global memory bound | The maximum size of work area executed in automatic mode. |
DEPENDENT | oracle.pga_global_bound Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
DEPENDENT | oracle.fra_space_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
DEPENDENT | oracle.fra_space_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low priority files from the FRA. |
DEPENDENT | oracle.fra_space_reclaimable Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Number of files | The number of files in the FRA. |
DEPENDENT | oracle.fra_number_of_files Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Usable space in % | DEPENDENT | oracle.fra_usable_pct Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: FRA, Number of restore points | DEPENDENT | oracle.fra_restore_point Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: SGA, java pool | The memory is allocated from the Java pool. |
DEPENDENT | oracle.sga_java_pool Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, large pool | The memory is allocated from a large pool. |
DEPENDENT | oracle.sga_large_pool Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, shared pool | The memory is allocated from a shared pool. |
DEPENDENT | oracle.sga_shared_pool Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, log buffer | The number of bytes allocated for the redo log buffer. |
DEPENDENT | oracle.sga_log_buffer Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
DEPENDENT | oracle.sga_fixed Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, buffer cache | The size of standard block cache. |
DEPENDENT | oracle.sga_buffer_cache Preprocessing: - JSONPATH: |
| Oracle | Oracle: User's expire password | The number of days before the password of Zabbix account expires. |
ZABBIX_PASSIVE | oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle: Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
ZABBIX_PASSIVE | oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle: Number of processes | ZABBIX_PASSIVE | oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: Datafiles count | The current number of datafiles. |
ZABBIX_PASSIVE | oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle Database '{#DBNAME}': Open status | 1 - 'MOUNTED'; 2 - 'READ WRITE'; 3 - 'READ ONLY'; 4 - 'READ ONLY WITH APPLY' (a physical standby database is open in real-time query mode). |
DEPENDENT | oracle.db_open_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Role | The current role of the database where: 1 - 'SNAPSHOT STANDBY'; 2 - 'LOGICAL STANDBY'; 3 - 'PHYSICAL STANDBY'; 4 - 'PRIMARY '; 5 - 'FAR SYNC'. |
DEPENDENT | oracle.db_role["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Log mode | The archive log mode where: 0 - 'NOARCHIVELOG'; 1 - 'ARCHIVELOG'; 2 - 'MANUAL'. |
DEPENDENT | oracle.db_log_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Force logging | It indicates whether the database is under force logging mode 'YES' or 'NO'. |
DEPENDENT | oracle.db_force_logging["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Open status | 1 - 'MOUNTED'; 2 - 'READ WRITE'; 3 - 'READ ONLY'; 4 - 'READ ONLY WITH APPLY' (a physical standby database is open in real-time query mode). |
DEPENDENT | oracle.pdb_open_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
DEPENDENT | oracle.tbs_alloc_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
DEPENDENT | oracle.tbs_max_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles - the free space). |
DEPENDENT | oracle.tbs_used_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
DEPENDENT | oracle.tbs_free_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
DEPENDENT | oracle.tbs_used_file_pct["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
DEPENDENT | oracle.tbs_used_pct["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - 'ONLINE'; 2 - 'OFFLINE'; 3 - 'READ ONLY'. |
DEPENDENT | oracle.tbs_status["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Archivelog '{#DEST_NAME}': Error | It displays the error message. |
DEPENDENT | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Archivelog '{#DEST_NAME}': Last sequence | It identifies the sequence number of the last archived redo log to be archived. |
DEPENDENT | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing: - JSONPATH: |
| Oracle | Archivelog '{#DEST_NAME}': Status | It identifies the current status of the destination where: 1 - 'VALID'; 2 - 'DEFERRED'; 3 - 'ERROR'; 0 - 'UNKNOWN'. |
DEPENDENT | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
DEPENDENT | oracle.asm_total_size["{#DGNAME}"] Preprocessing: - JSONPATH: |
| Oracle | ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
DEPENDENT | oracle.asm_free_size["{#DGNAME}"] Preprocessing: - JSONPATH: |
| Oracle | ASM '{#DGNAME}': Free size | Usage of the ASM disk group expressed in %. |
DEPENDENT | oracle.asm_used_pct["{#DGNAME}"] Preprocessing: - JSONPATH: |
| Zabbix raw items | Oracle: Get instance state | The item gets its state of the current instance. |
ZABBIX_PASSIVE | oracle.instance.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix raw items | Oracle: Get system metrics | The item gets the values of the system metrics. |
ZABBIX_PASSIVE | oracle.sys.metrics["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix raw items | Oracle: Get system parameters | Get a set of system parameter values. |
ZABBIX_PASSIVE | oracle.sys.params["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix raw items | Oracle: Get sessions stats | Get sessions statistics. {$ORACLE.SESSION.LOCK.MAX.TIME} -- maximum seconds in the current wait condition for counting long time locked sessions. Default: 600 seconds. |
ZABBIX_PASSIVE | oracle.sessions.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{$ORACLE.SESSION.LOCK.MAX.TIME}"] |
| Zabbix raw items | Oracle: Get PGA stats | Get PGA statistics. |
ZABBIX_PASSIVE | oracle.pga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix raw items | Oracle: Get FRA stats | Get FRA statistics. |
ZABBIX_PASSIVE | oracle.fra.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix raw items | Oracle: Get SGA stats | Get SGA statistics. |
ZABBIX_PASSIVE | oracle.sga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix raw items | Oracle Database '{#DBNAME}': Get CDB and No-CDB info | It gets the information about the container database (CDB) and non-CDB database on an instance. |
ZABBIX_PASSIVE | oracle.cdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"] |
| Zabbix raw items | Oracle Database '{#DBNAME}': Get PDB info | It gets the information about the PDB database on an instance. |
ZABBIX_PASSIVE | oracle.pdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"] |
| Zabbix raw items | Oracle TBS '{#TABLESPACE}': Get tablespaces stats | It gets the statistics of the tablespace. |
ZABBIX_PASSIVE | oracle.ts.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#TABLESPACE}","{#CONTENTS}"] |
| Zabbix raw items | Archivelog '{#DEST_NAME}': Get archive log info | It gets the archivelog statistics. |
ZABBIX_PASSIVE | oracle.archive.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DEST_NAME}"] |
| Zabbix raw items | ASM '{#DGNAME}': Get ASM stats | It gets the ASM disk group statistics. |
ZABBIX_PASSIVE | oracle.diskgroups.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DGNAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Connection to database is unavailable | Connection to Oracle Database is currently unavailable. |
last(/Oracle by Zabbix agent 2/oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"])=0 |
DISASTER | |
| Oracle: Version has changed | The Oracle DB version has changed. Acknowledge (Ack) to close manually. |
last(/Oracle by Zabbix agent 2/oracle.version,#1)<>last(/Oracle by Zabbix agent 2/oracle.version,#2) and length(last(/Oracle by Zabbix agent 2/oracle.version))>0 |
INFO | Manual close: YES |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by Zabbix agent 2/oracle.uptime,30m)=1 |
INFO | |
| Oracle: Host has been restarted | The host uptime is less than 10 minutes. |
last(/Oracle by Zabbix agent 2/oracle.uptime)<10m |
INFO | Manual close: YES |
| Oracle: Instance name has changed | Oracle DB Instance name has changed. Ack to close manually. |
last(/Oracle by Zabbix agent 2/oracle.instance_name,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_name,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_name))>0 |
INFO | Manual close: YES |
| Oracle: Instance hostname has changed | Oracle DB Instance hostname has changed. Ack to close. |
last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_hostname))>0 |
INFO | Manual close: YES |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than {$ORACLE.SHARED.FREE.MIN.WARN}% for the last 5 minutes. |
max(/Oracle by Zabbix agent 2/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
WARNING | |
| Oracle: Too many active sessions | Active sessions are using more than {$ORACLE.SESSIONS.MAX.WARN}% of the available sessions. |
min(/Oracle by Zabbix agent 2/oracle.session_count,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
WARNING | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds {$ORACLE.SESSIONS.LOCK.MAX.WARN}% of the running sessions. |
min(/Oracle by Zabbix agent 2/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
WARNING | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding {$ORACLE.SESSION.LOCK.MAX.TIME} seconds is too high. Long-term locks can negatively affect the database performance. Therefore, if they are detected, you should first find the most difficult queries from the database point of view and then analyze possible resource leaks. |
min(/Oracle by Zabbix agent 2/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
WARNING | |
| Oracle: Too high database concurrency | The concurrency rate exceeds {$ORACLE.CONCURRENCY.MAX.WARN}%. A high contention value does not indicate the root cause of the problem, but it is a signal to search for it. In the case of high competition, the analysis of resource consumption should be carried out. Which are the most "heavy" queries made in the database? Possibly, also session tracing. All this will help to determine the root cause and possible optimization points both in the database configuration and in the logic of building queries of the application itself. |
min(/Oracle by Zabbix agent 2/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
WARNING | |
| Oracle: Total PGA inuse is too high | The total PGA in use is more than {$ORACLE.PGA.USE.MAX.WARN}% of PGA_AGGREGATE_TARGET. |
min(/Oracle by Zabbix agent 2/oracle.total_pga_used,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
WARNING | |
| Oracle: Zabbix account will expire soon | The password for Zabbix user in the database expires soon. |
last(/Oracle by Zabbix agent 2/oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
WARNING | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused REDOs available for log switching is low (database down risk). |
max(/Oracle by Zabbix agent 2/oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) < {$ORACLE.REDO.MIN.WARN} |
WARNING | |
| Oracle: Too many active processes | Active processes are using more than {$ORACLE.PROCESSES.MAX.WARN}% of the available number of processes. |
min(/Oracle by Zabbix agent 2/oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
WARNING | |
| Oracle: Too many database files | The number of datafiles is higher than {$ORACLE.DB.FILE.MAX.WARN}% of the available datafiles limit. |
min(/Oracle by Zabbix agent 2/oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
WARNING | |
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle DB is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"])=1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle DB open status has changed. Ack to close manually. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#2) |
INFO | Manual close: YES Depends on: - Oracle Database '{#DBNAME}': Open status in mount mode |
| Oracle Database '{#DBNAME}': Role has changed | The Oracle DB role has changed. Ack to close manually. |
last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#2) |
INFO | Manual close: YES |
| Oracle Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force Logging mode - it is very important metric for Databases in 'ARCHIVELOG'. This feature allows to forcibly write all the transactions to the REDO. |
last(/Oracle by Zabbix agent 2/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by Zabbix agent 2/oracle.db_log_mode["{#DBNAME}"]) = 1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle DB is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"])=1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle DB open status has changed. Ack to close manually. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"],#2) |
INFO | Manual close: YES |
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high | - |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
WARNING | Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace usage is too high |
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high | - |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
HIGH | |
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high | - |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
WARNING | Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high |
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high | - |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
HIGH | |
| Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"])=2 |
WARNING | |
| Oracle TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Ack to close. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"],#2) |
INFO | Manual close: YES Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE |
| Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: 2 - 'DEFERRED'; 3 - 'VALID'. |
last(/Oracle by Zabbix agent 2/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
HIGH | |
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds {$ORACLE.ASM.USED.PCT.MAX.WARN} |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
WARNING | Depends on: - ASM '{#DGNAME}': Disk group usage is too high |
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds {$ORACLE.ASM.USED.PCT.MAX.HIGH} |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
HIGH |
Please report any issues with the template at https://support.zabbix.com.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_agent2?at=release/6.0
The template is developed to monitor a single DBMS Oracle Database instance with Zabbix agent 2.
Oracle Database 12c2 and newer.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup and configure Zabbix agent 2 compiled with the Oracle monitoring plugin. See the setup instructions for Oracle Database plugin.
Set the {$ORACLE.CONNSTRING} macro value using either <protocol(host:port)> or named session.
If you want to override parameters from Zabbix agent configuration file, set the user name, password and service name in host macros ({$ORACLE.USER}, {$ORACLE.PASSWORD}, and {$ORACLE.SERVICE}).
User can contain sysdba, sysoper, sysasm privileges. It must be used with as as a separator e.g user as sysdba, privilege can be upper or lowercase, and must be at the end of username string.
Test availability:
zabbix_get -s oracle-host -k oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]
| Name | Description | Default |
|---|---|---|
| {$ORACLE.USER} | Oracle username. |
zabbix |
| {$ORACLE.PASSWORD} | Oracle user's password. |
zabbix_password |
| {$ORACLE.CONNSTRING} | Oracle URI or a session name. |
tcp://localhost:1521 |
| {$ORACLE.SERVICE} | Oracle Service Name. |
ORA |
| {$ORACLE.DBNAME.MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
PDB\$SEED |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
80 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for the Warning trigger expression. |
80 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for the Warning trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for the Warning trigger expression. |
80 |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression. |
90 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression. |
20 |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression. |
3 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of session concurrency for the Warning trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of redo logs for the Warning trigger expression. |
3 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression. |
5 |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of days before the password expires for the Warning trigger expression. |
7 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression. |
90 |
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression. |
95 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle: Ping | Test the connection to Oracle Database state. |
Zabbix agent | oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Oracle: Get instance state | Gets the state of the current instance. |
Zabbix agent | oracle.instance.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: Version | The Oracle Server version. |
Dependent item | oracle.version Preprocessing
|
| Oracle: Uptime | The Oracle instance uptime expressed in seconds. |
Dependent item | oracle.uptime Preprocessing
|
| Oracle: Instance status | The status of the instance. |
Dependent item | oracle.instance_status Preprocessing
|
| Oracle: Archiver state | The status of automatic archiving. |
Dependent item | oracle.archiver_state Preprocessing
|
| Oracle: Instance name | The name of the instance. |
Dependent item | oracle.instance_name Preprocessing
|
| Oracle: Instance hostname | The name of the host machine. |
Dependent item | oracle.instance_hostname Preprocessing
|
| Oracle: Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
Dependent item | oracle.instance.role Preprocessing
|
| Oracle: Get system metrics | Gets the values of the system metrics. |
Zabbix agent | oracle.sys.metrics["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
Dependent item | oracle.buffer_cache_hit_ratio Preprocessing
|
| Oracle: Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
Dependent item | oracle.cursor_cache_hit_ratio Preprocessing
|
| Oracle: Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
Dependent item | oracle.library_cache_hit_ratio Preprocessing
|
| Oracle: Shared pool free % | Free memory of a shared pool expressed in %. |
Dependent item | oracle.shared_pool_free Preprocessing
|
| Oracle: Physical reads per second | Reads per second. |
Dependent item | oracle.physical_reads_rate Preprocessing
|
| Oracle: Physical writes per second | Writes per second. |
Dependent item | oracle.physical_writes_rate Preprocessing
|
| Oracle: Physical reads bytes per second | Read bytes per second. |
Dependent item | oracle.physical_read_bytes_rate Preprocessing
|
| Oracle: Physical writes bytes per second | Write bytes per second. |
Dependent item | oracle.physical_write_bytes_rate Preprocessing
|
| Oracle: Enqueue timeouts per second | Enqueue timeouts per second. |
Dependent item | oracle.enqueue_timeouts_rate Preprocessing
|
| Oracle: GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
Dependent item | oracle.gc_cr_block_received_rate Preprocessing
|
| Oracle: Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
Dependent item | oracle.cache_blocks_corrupt Preprocessing
|
| Oracle: Global cache blocks lost | The number of lost global cache blocks. |
Dependent item | oracle.cache_blocks_lost Preprocessing
|
| Oracle: Logons per second | The number of logon attempts. |
Dependent item | oracle.logons_rate Preprocessing
|
| Oracle: Average active sessions | The average number of active sessions at a point in time that are either working or waiting. |
Dependent item | oracle.active_sessions Preprocessing
|
| Oracle: Active serial sessions | The number of active serial sessions. |
Dependent item | oracle.active_serial_sessions Preprocessing
|
| Oracle: Active parallel sessions | The number of active parallel sessions. |
Dependent item | oracle.active_parallel_sessions Preprocessing
|
| Oracle: Long table scans per second | The number of long table scans per second. A table is considered long if it is not cached and if its high water mark is greater than five blocks. |
Dependent item | oracle.long_table_scans_rate Preprocessing
|
| Oracle: SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
Dependent item | oracle.service_response_time Preprocessing
|
| Oracle: User rollbacks per second | The number of times that users manually issued the |
Dependent item | oracle.user_rollbacks_rate Preprocessing
|
| Oracle: Total sorts per user call | The total sorts per user call. |
Dependent item | oracle.sorts_per_user_call Preprocessing
|
| Oracle: Rows per sort | The average number of rows per sort for all types of sorts performed. |
Dependent item | oracle.rows_per_sort Preprocessing
|
| Oracle: Disk sort per second | The number of sorts going to disk per second. |
Dependent item | oracle.disk_sorts Preprocessing
|
| Oracle: Memory sorts ratio | The percentage of sorts (from |
Dependent item | oracle.memory_sorts_ratio Preprocessing
|
| Oracle: Database wait time ratio | 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, etc. |
Dependent item | oracle.database_wait_time_ratio Preprocessing
|
| Oracle: Database CPU time ratio | The ratio calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
Dependent item | oracle.database_cpu_time_ratio Preprocessing
|
| Oracle: Temp space used | Used temporary space. |
Dependent item | oracle.temp_space_used Preprocessing
|
| Oracle: Get system parameters | Get a set of system parameter values. |
Zabbix agent | oracle.sys.params["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: Sessions limit | The user and system sessions. |
Dependent item | oracle.session_limit Preprocessing
|
| Oracle: Datafiles limit | The maximum allowable number of datafiles. |
Dependent item | oracle.db_files_limit Preprocessing
|
| Oracle: Processes limit | The maximum number of user processes. |
Dependent item | oracle.processes_limit Preprocessing
|
| Oracle: Get sessions stats | Get sessions statistics. {$ORACLE.SESSION.LOCK.MAX.TIME} -- maximum seconds in the current wait condition for counting long time locked sessions. Default: 600 seconds. |
Zabbix agent | oracle.sessions.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{$ORACLE.SESSION.LOCK.MAX.TIME}"] |
| Oracle: Session count | The session count. |
Dependent item | oracle.session_count Preprocessing
|
| Oracle: Active user sessions | The number of active user sessions. |
Dependent item | oracle.session_active_user Preprocessing
|
| Oracle: Active background sessions | The number of active background sessions. |
Dependent item | oracle.session_active_background Preprocessing
|
| Oracle: Inactive user sessions | The number of inactive user sessions. |
Dependent item | oracle.session_inactive_user Preprocessing
|
| Oracle: Sessions lock rate | 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. |
Dependent item | oracle.session_lock_rate Preprocessing
|
| Oracle: Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of the maximum session lock in seconds for a query using the |
Dependent item | oracle.session_long_time_locked Preprocessing
|
| Oracle: Sessions concurrency | The percentage of concurrency. Concurrency is a database behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, and the rest of the transactions wait for access. When the access to a resource is locked for a long time, the concurrency grows (like the transaction queue), often leaving 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. |
Dependent item | oracle.session_concurrency_rate Preprocessing
|
| Oracle: Get PGA stats | Get PGA statistics. |
Zabbix agent | oracle.pga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: PGA, Total inuse | The amount of Program Global Area (PGA) memory 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). |
Dependent item | oracle.total_pga_used Preprocessing
|
| Oracle: PGA, Aggregate target parameter | The current value of the |
Dependent item | oracle.pga_target Preprocessing
|
| Oracle: PGA, Total allocated | The current amount of the PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the |
Dependent item | oracle.total_pga_allocated Preprocessing
|
| Oracle: PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the OS. |
Dependent item | oracle.total_pga_freeable Preprocessing
|
| Oracle: PGA, Global memory bound | The maximum size of a work area executed in automatic mode. |
Dependent item | oracle.pga_global_bound Preprocessing
|
| Oracle: Get FRA stats | Get FRA statistics. |
Zabbix agent | oracle.fra.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
Dependent item | oracle.fra_space_limit Preprocessing
|
| Oracle: FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
Dependent item | oracle.fra_space_used Preprocessing
|
| Oracle: FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low-priority files from the FRA. |
Dependent item | oracle.fra_space_reclaimable Preprocessing
|
| Oracle: FRA, Number of files | The number of files in the FRA. |
Dependent item | oracle.fra_number_of_files Preprocessing
|
| Oracle: FRA, Usable space in % | Percentage of space usable in the FRA. |
Dependent item | oracle.fra_usable_pct Preprocessing
|
| Oracle: FRA, Number of restore points | Number of restore points in the FRA. |
Dependent item | oracle.fra_restore_point Preprocessing
|
| Oracle: Get SGA stats | Get SGA statistics. |
Zabbix agent | oracle.sga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Oracle: SGA, java pool | The memory is allocated from the Java pool. |
Dependent item | oracle.sga_java_pool Preprocessing
|
| Oracle: SGA, large pool | The memory is allocated from a large pool. |
Dependent item | oracle.sga_large_pool Preprocessing
|
| Oracle: SGA, shared pool | The memory is allocated from a shared pool. |
Dependent item | oracle.sga_shared_pool Preprocessing
|
| Oracle: SGA, log buffer | The number of bytes allocated for the redo log buffer. |
Dependent item | oracle.sga_log_buffer Preprocessing
|
| Oracle: SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
Dependent item | oracle.sga_fixed Preprocessing
|
| Oracle: SGA, buffer cache | The size of standard block cache. |
Dependent item | oracle.sga_buffer_cache Preprocessing
|
| Oracle: User's expire password | The number of days before the Zabbix account password expires. |
Zabbix agent | oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Oracle: Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
Zabbix agent | oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Oracle: Number of processes | The current number of user processes. |
Zabbix agent | oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Oracle: Datafiles count | The current number of datafiles. |
Zabbix agent | oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Connection to database is unavailable | Connection to Oracle Database is currently unavailable. |
last(/Oracle by Zabbix agent 2/oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"])=0 |
Disaster | |
| Oracle: Version has changed | The Oracle Database version has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.version,#1)<>last(/Oracle by Zabbix agent 2/oracle.version,#2) and length(last(/Oracle by Zabbix agent 2/oracle.version))>0 |
Info | Manual close: Yes |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by Zabbix agent 2/oracle.uptime,30m)=1 |
Info | |
| Oracle: Host has been restarted | Uptime is less than 10 minutes. |
last(/Oracle by Zabbix agent 2/oracle.uptime)<10m |
Info | Manual close: Yes |
| Oracle: Instance name has changed | An Oracle Database instance name has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.instance_name,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_name,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_name))>0 |
Info | Manual close: Yes |
| Oracle: Instance hostname has changed | An Oracle Database instance hostname has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_hostname))>0 |
Info | Manual close: Yes |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than |
max(/Oracle by Zabbix agent 2/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
Warning | |
| Oracle: Too many active sessions | Active sessions are using more than |
min(/Oracle by Zabbix agent 2/oracle.session_count,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
Warning | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds |
min(/Oracle by Zabbix agent 2/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding |
min(/Oracle by Zabbix agent 2/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too high database concurrency | The concurrency rate exceeds |
min(/Oracle by Zabbix agent 2/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
Warning | |
| Oracle: Total PGA inuse is too high | The total PGA in use is more than |
min(/Oracle by Zabbix agent 2/oracle.total_pga_used,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
Warning | |
| Oracle: Zabbix account will expire soon | The password for the Zabbix user in the database expires soon. |
last(/Oracle by Zabbix agent 2/oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
Warning | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused redos available for log switching is low (risk of database downtime). |
max(/Oracle by Zabbix agent 2/oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) < {$ORACLE.REDO.MIN.WARN} |
Warning | |
| Oracle: Too many active processes | Active processes are using more than |
min(/Oracle by Zabbix agent 2/oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
Warning | |
| Oracle: Too many database files | The number of datafiles is higher than |
min(/Oracle by Zabbix agent 2/oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Scanning databases in the database management system (DBMS). |
Zabbix agent | oracle.db.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle Database '{#DBNAME}': Get CDB and No-CDB info | Gets the information about the CDB and non-CDB database on an instance. |
Zabbix agent | oracle.cdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"] |
| Oracle Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.db_open_mode["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Role | The current role of the database where: 1 - SNAPSHOT STANDBY; 2 - LOGICAL STANDBY; 3 - PHYSICAL STANDBY; 4 - PRIMARY; 5 - FAR SYNC. |
Dependent item | oracle.db_role["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Log mode | The archive log mode where: 0 - NOARCHIVELOG; 1 - ARCHIVELOG; 2 - MANUAL. |
Dependent item | oracle.db_log_mode["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode ( |
Dependent item | oracle.db_force_logging["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes Depends on:
|
| Oracle Database '{#DBNAME}': Role has changed | The Oracle Database role has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Oracle Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force logging mode is a very important metric for databases in |
last(/Oracle by Zabbix agent 2/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by Zabbix agent 2/oracle.db_log_mode["{#DBNAME}"]) = 1 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| PDB discovery | Scanning a pluggable database (PDB) in DBMS. |
Zabbix agent | oracle.pdb.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle Database '{#DBNAME}': Get PDB info | Gets the information about the PDB database on an instance. |
Zabbix agent | oracle.pdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"] |
| Oracle Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.pdb_open_mode["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Tablespace discovery | Scanning tablespaces in DBMS. |
Zabbix agent | oracle.ts.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle TBS '{#TABLESPACE}': Get tablespaces stats | Gets the statistics of the tablespace. |
Zabbix agent | oracle.ts.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#TABLESPACE}","{#CONTENTS}"] |
| Oracle TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
Dependent item | oracle.tbs_alloc_bytes["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
Dependent item | oracle.tbs_max_bytes["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles minus the free space). |
Dependent item | oracle.tbs_used_bytes["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
Dependent item | oracle.tbs_free_bytes["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
Dependent item | oracle.tbs_used_file_pct["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
Dependent item | oracle.tbs_used_pct["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Tablespace usage from MAX, percent | Used bytes/max bytes*100. |
Dependent item | oracle.tbs_used_from_max_pct["{#TABLESPACE}"] Preprocessing
|
| Oracle TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - ONLINE; 2 - OFFLINE; 3 - READ ONLY. |
Dependent item | oracle.tbs_status["{#TABLESPACE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
High | |
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
High | |
| Oracle TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_from_max_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} |
Warning | Depends on:
|
| Oracle TBS '{#TABLESPACE}': Tablespace utilization from MAX is too high | The usage of the tablespace |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_from_max_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} |
High | |
| Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"])=2 |
Warning | |
| Oracle TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Acknowledge to close the problem manually. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"],#2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Destinations of the log archive. |
Zabbix agent | oracle.archive.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archivelog '{#DEST_NAME}': Get archive log info | Gets the archive log statistics. |
Zabbix agent | oracle.archive.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DEST_NAME}"] |
| Archivelog '{#DEST_NAME}': Error | Displays the error message. |
Dependent item | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived. |
Dependent item | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination where: 1 - VALID; 2 - DEFERRED; 3 - ERROR; 0 - UNKNOWN. |
Dependent item | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: |
last(/Oracle by Zabbix agent 2/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM disk groups discovery | The ASM disk groups. |
Zabbix agent | oracle.diskgroups.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM '{#DGNAME}': Get ASM stats | Gets the ASM disk group statistics. |
Zabbix agent | oracle.diskgroups.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DGNAME}"] |
| ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
Dependent item | oracle.asm_total_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
Dependent item | oracle.asm_free_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Used size, percent | Usage of the ASM disk group expressed in %. |
Dependent item | oracle.asm_used_pct["{#DGNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
High |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_agent2?at=release/5.4
For Zabbix version: 5.4 and higher
The template is developed for monitoring DBMS Oracle Database single instance via Zabbix agent 2.
This template was tested on:
See Zabbix template operation for basic instructions.
Test availability:
zabbix_get -s oracle-host -k oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | Maximum percentage of used ASM disk group for high trigger expression. |
95 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | Maximum percentage of used ASM disk group for warning trigger expression. |
90 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | Maximum percentage of sessions concurrency usage for trigger expression. |
80 |
| {$ORACLE.CONNSTRING} | - |
tcp://localhost:1521 |
| {$ORACLE.DB.FILE.MAX.WARN} | Maximum percentage of database files for trigger expression. |
80 |
| {$ORACLE.DBNAME.MATCHES} | This macro is used in database discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | This macro is used in database discovery. It can be overridden on a host or linked template level. |
PDB\$SEED |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | Number of days of warning before password expires (for trigger expression). |
7 |
| {$ORACLE.PASSWORD} | Oracle user password. |
zabbix_password |
| {$ORACLE.PGA.USE.MAX.WARN} | Maximum percentage of PGA usage alert threshold (for trigger expression). |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Maximum percentage of active processes alert threshold (for trigger expression). |
80 |
| {$ORACLE.REDO.MIN.WARN} | Minimum number of REDO logs alert threshold (for trigger expression). |
3 |
| {$ORACLE.SERVICE} | Oracle Service Name |
ORA |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | Maximum session lock duration in seconds for count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Maximum number of the prolongedly locked sessions alert threshold (for trigger expression). |
3 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Maximum percentage of locked sessions alert threshold (for trigger expression). |
20 |
| {$ORACLE.SESSIONS.MAX.WARN} | Maximum percentage of active sessions alert threshold (for trigger expression). |
80 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Minimum percentage of free shared pool alert threshold (for trigger expression). |
5 |
| {$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} | This macro is used in tablespace discovery. It can be overridden on a host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | Maximum percentage of used (Used bytes/Allocated bytes) tablespace high severity alert threshold (for trigger expression). |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Maximum percentage of used (Used bytes/Allocated bytes) tablespace warning severity alert threshold (for trigger expression). |
90 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | Maximum percentage of utilization (Allocated bytes/Max bytes) tablespace high severity alert threshold (for trigger expression). |
90 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Maximum percentage of utilization (Allocated bytes/Max bytes) tablespace warning severity alert threshold (for trigger expression). |
80 |
| {$ORACLE.USER} | Oracle username. |
zabbix |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Scanning databases in DBMS. |
ZABBIX_PASSIVE | oracle.db.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| PDB discovery | Scanning PDB in DBMS. |
ZABBIX_PASSIVE | oracle.pdb.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| Tablespace discovery | Scanning tablespaces in DBMS. |
ZABBIX_PASSIVE | oracle.ts.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Filter: AND- {#TABLESPACE} MATCHES_REGEX - {#TABLESPACE} NOT_MATCHES_REGEX |
| Archive log discovery | Log archive destinations. |
ZABBIX_PASSIVE | oracle.archive.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| ASM disk groups discovery | ASM disk groups |
ZABBIX_PASSIVE | oracle.diskgroups.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Oracle | Oracle: Ping | Test the connection to Oracle Database state |
ZABBIX_PASSIVE | oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Version | Oracle Server version. |
DEPENDENT | oracle.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Uptime | Oracle instance uptime in seconds. |
DEPENDENT | oracle.uptime Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance status | Status of the instance. |
DEPENDENT | oracle.instance_status Preprocessing: - JSONPATH: |
| Oracle | Oracle: Archiver state | Automatic archiving status. |
DEPENDENT | oracle.archiver_state Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance name | Name of the instance. |
DEPENDENT | oracle.instance_name Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance hostname | Name of the host machine. |
DEPENDENT | oracle.instance_hostname Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
DEPENDENT | oracle.instance.role Preprocessing: - JSONPATH: |
| Oracle | Oracle: Buffer cache hit ratio | Ratio of buffer cache hits. (LogRead - PhyRead)/LogRead |
DEPENDENT | oracle.buffer_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Cursor cache hit ratio | Ratio of cursor cache hits. CursorCacheHit/SoftParse |
DEPENDENT | oracle.cursor_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Library cache hit ratio | Ratio of library cache hits. Hits/Pins |
DEPENDENT | oracle.library_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Shared pool free % | Shared pool free memory percent. Free/Total |
DEPENDENT | oracle.shared_pool_free Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical reads per second | Reads per second. |
DEPENDENT | oracle.physical_reads_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical writes per second | Writes per second. |
DEPENDENT | oracle.physical_writes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical reads bytes per second | Read bytes per second. |
DEPENDENT | oracle.physical_read_bytes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical writes bytes per second | Write bytes per second. |
DEPENDENT | oracle.physical_write_bytes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Enqueue timeouts per second | Enqueue timeouts per second. |
DEPENDENT | oracle.enqueue_timeouts_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: GC CR block received per second | GC CR block received per second. |
DEPENDENT | oracle.gc_cr_block_received_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Global cache blocks corrupted | The number of blocks that encountered a corruption or checksum failure during interconnect. |
DEPENDENT | oracle.cache_blocks_corrupt Preprocessing: - JSONPATH: |
| Oracle | Oracle: Global cache blocks lost | The number of global cache blocks lost |
DEPENDENT | oracle.cache_blocks_lost Preprocessing: - JSONPATH: |
| Oracle | Oracle: Logons per second | The number of logon attempts. |
DEPENDENT | oracle.logons_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Average active sessions | The average active sessions at a point in time. It is the number of sessions that are either working or waiting. |
DEPENDENT | oracle.active_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active serial sessions | The number of active serial sessions. |
DEPENDENT | oracle.active_serial_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active parallel sessions | The number of active parallel sessions. |
DEPENDENT | oracle.active_parallel_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Long table scans per second | 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. |
DEPENDENT | oracle.long_table_scans_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: SQL service response time | SQL service response time in seconds. |
DEPENDENT | oracle.service_response_time Preprocessing: - JSONPATH: - MULTIPLIER: |
| Oracle | Oracle: User rollbacks per second | The number of times that users manually issue the ROLLBACK statement or an error occurred during a user's transactions. |
DEPENDENT | oracle.user_rollbacks_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Total sorts per user call | Total sorts per user call. |
DEPENDENT | oracle.sorts_per_user_call Preprocessing: - JSONPATH: |
| Oracle | Oracle: Rows per sort | The average number of rows per sort for all types of sorts performed. |
DEPENDENT | oracle.rows_per_sort Preprocessing: - JSONPATH: |
| Oracle | Oracle: Disk sort per second | The number of sorts going to disk per second |
DEPENDENT | oracle.disk_sorts Preprocessing: - JSONPATH: |
| Oracle | Oracle: Memory sorts ratio | The percentage of sorts (from ORDER BY clauses or index building) that are done to disk vs in-memory. |
DEPENDENT | oracle.memory_sorts_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Database wait time ratio | 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 |
DEPENDENT | oracle.database_wait_time_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Database CPU time ratio | Calculated by dividing the total CPU used by the database by the Oracle time model statistic DB time. |
DEPENDENT | oracle.database_cpu_time_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Temp space used | Temp space used. |
DEPENDENT | oracle.temp_space_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions limit | User and system sessions. |
DEPENDENT | oracle.session_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Datafiles limit | Max allowable number of datafile. |
DEPENDENT | oracle.db_files_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Processes limit | Max user processes. |
DEPENDENT | oracle.processes_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Session count | Session count. |
DEPENDENT | oracle.session_count Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active user sessions | The number of active user sessions. |
DEPENDENT | oracle.session_active_user Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Active background sessions | The number of active background sessions. |
DEPENDENT | oracle.session_active_background Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Inactive user sessions | The number of inactive user sessions. |
DEPENDENT | oracle.session_inactive_user Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Sessions lock rate | 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. |
DEPENDENT | oracle.session_lock_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | Count of the prolongedly locked sessions. (You can change maximum session lock duration in seconds for query by {$ORACLE.SESSION.LOCK.MAX.TIME} macro. Default 600 sec) |
DEPENDENT | oracle.session_long_time_locked Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions concurrency | 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. |
DEPENDENT | oracle.session_concurrency_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total inuse | 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). |
DEPENDENT | oracle.total_pga_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Aggregate target parameter | 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. |
DEPENDENT | oracle.pga_target Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total allocated | 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. |
DEPENDENT | oracle.total_pga_allocated Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total freeable | Number of bytes of PGA memory in all processes that could be freed back to the operating system. |
DEPENDENT | oracle.total_pga_freeable Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Global memory bound | Maximum size of a work area executed in automatic mode. |
DEPENDENT | oracle.pga_global_bound Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Space limit | Maximum amount of disk space (in bytes) that the database can use for the fast recovery area. |
DEPENDENT | oracle.fra_space_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Used space | Amount of disk space (in bytes) used by fast recovery area files created in current and all previous fast recovery areas. |
DEPENDENT | oracle.fra_space_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Space reclaimable | 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. |
DEPENDENT | oracle.fra_space_reclaimable Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Number of files | Number of files in the fast recovery area |
DEPENDENT | oracle.fra_number_of_files Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Usable space in % | DEPENDENT | oracle.fra_usable_pct Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: FRA, Number of restore points | DEPENDENT | oracle.fra_restore_point Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: SGA, java pool | Memory is allocated from the java pool. |
DEPENDENT | oracle.sga_java_pool Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, large pool | Memory is allocated from the large pool. |
DEPENDENT | oracle.sga_large_pool Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, shared pool | Memory is allocated from the shared pool. |
DEPENDENT | oracle.sga_shared_pool Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, log buffer | The number of bytes allocated for the redo log buffer. |
DEPENDENT | oracle.sga_log_buffer Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, fixed | The fixed SGA is an internal housekeeping area. |
DEPENDENT | oracle.sga_fixed Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, buffer cache | The size of the cache of standard blocks. |
DEPENDENT | oracle.sga_buffer_cache Preprocessing: - JSONPATH: |
| Oracle | Oracle: User's expire password | The number of days before zabbix account password expired. |
ZABBIX_PASSIVE | oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle: Redo logs available to switch | Number of available for log switching inactive/unused REDO logs. |
ZABBIX_PASSIVE | oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle: Number of processes | ZABBIX_PASSIVE | oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: Datafiles count | Current number of datafile. |
ZABBIX_PASSIVE | oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle Database '{#DBNAME}': Open status | 1 - 'MOUNTED', 2 - 'READ WRITE', 3 - 'READ ONLY', 4 - 'READ ONLY WITH APPLY' (A physical standby database is open in real-time query mode) |
DEPENDENT | oracle.db_open_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Role | Current role of the database, 1 - 'SNAPSHOT STANDBY', 2 - 'LOGICAL STANDBY', 3 - 'PHYSICAL STANDBY', 4 - 'PRIMARY ', 5 -'FAR SYNC' |
DEPENDENT | oracle.db_role["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Log mode | Archive log mode, 0 - 'NOARCHIVELOG', 1 - 'ARCHIVELOG', 2 - 'MANUAL' |
DEPENDENT | oracle.db_log_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode (YES) or not (NO) |
DEPENDENT | oracle.db_force_logging["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Open status | 1 - 'MOUNTED', 2 - 'READ WRITE', 3 - 'READ ONLY', 4 - 'READ ONLY WITH APPLY' (A physical standby database is open in real-time query mode) |
DEPENDENT | oracle.pdb_open_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for tablespace (sum of the current size of datafiles). |
DEPENDENT | oracle.tbs_alloc_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace MAX size, bytes | Maximum size of tablespace. |
DEPENDENT | oracle.tbs_max_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for tablespace (current size of datafiles-free space). |
DEPENDENT | oracle.tbs_used_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of allocated space. |
DEPENDENT | oracle.tbs_free_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/Allocated bytes*100 |
DEPENDENT | oracle.tbs_used_file_pct["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/Max bytes*100 |
DEPENDENT | oracle.tbs_used_pct["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Open status | Tablespace status. 1 - 'ONLINE' 2 - 'OFFLINE' 3- 'READ ONLY' |
DEPENDENT | oracle.tbs_status["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Archivelog '{#DEST_NAME}': Error | Displays the error text |
DEPENDENT | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived |
DEPENDENT | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing: - JSONPATH: |
| Oracle | Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination: 1 - 'Valid', 2 - 'Deferred',3 - 'Error', 0 - 'Unknown' |
DEPENDENT | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | ASM '{#DG_NAME}': Total size | Total size of ASM disk group. |
DEPENDENT | oracle.asm_total_size["{#DG_NAME}"] Preprocessing: - JSONPATH: |
| Oracle | ASM '{#DG_NAME}': Free size | Free size of ASM disk group. |
DEPENDENT | oracle.asm_free_size["{#DG_NAME}"] Preprocessing: - JSONPATH: |
| Oracle | ASM '{#DG_NAME}': Free size | Usage percent of ASM disk group. |
DEPENDENT | oracle.asm_used_pct["{#DG_NAME}"] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Oracle: Get instance state | The item gets state of the current instance. |
ZABBIX_PASSIVE | oracle.instance.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get system metrics | The item gets system metric values. |
ZABBIX_PASSIVE | oracle.sys.metrics["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get system parameters | Get a set of system parameter values. |
ZABBIX_PASSIVE | oracle.sys.params["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get sessions stats | Get sessions statistics. {$ORACLE.SESSION.LOCK.MAX.TIME} -- maximum seconds in the current wait condition for counting long time locked sessions. Default: 600 seconds. |
ZABBIX_PASSIVE | oracle.sessions.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{$ORACLE.SESSION.LOCK.MAX.TIME}"] |
| Zabbix_raw_items | Oracle: Get PGA stats | Get PGA statistics. |
ZABBIX_PASSIVE | oracle.pga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get FRA stats | Get FRA statistics. |
ZABBIX_PASSIVE | oracle.fra.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get SGA stats | Get SGA statistics. |
ZABBIX_PASSIVE | oracle.sga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get tablespaces stats | Get tablespaces stats. |
ZABBIX_PASSIVE | oracle.ts.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get CDB and No-CDB info | Get info about CDB and No-CDB databases on instance. |
ZABBIX_PASSIVE | oracle.cdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get PDB info | Get info about PDB databases on instance. |
ZABBIX_PASSIVE | oracle.pdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get archive log info | ZABBIX_PASSIVE | oracle.archive.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] | |
| Zabbix_raw_items | Oracle: Get ASM stats | Get ASM disk groups stats. |
ZABBIX_PASSIVE | oracle.diskgroups.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Connection to database is unavailable | Connection to Oracle Database is currently unavailable. |
last(/Oracle by Zabbix agent 2/oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"])=0 |
DISASTER | |
| Oracle: Version has changed (new version value received: {ITEM.VALUE}) | Oracle DB version has changed. Ack to close. |
last(/Oracle by Zabbix agent 2/oracle.version,#1)<>last(/Oracle by Zabbix agent 2/oracle.version,#2) and length(last(/Oracle by Zabbix agent 2/oracle.version))>0 |
INFO | Manual close: YES |
| Oracle: Failed to fetch info data (or no data for 30m) | Zabbix has not received data for items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by Zabbix agent 2/oracle.uptime,30m)=1 |
INFO | |
| Oracle: has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/Oracle by Zabbix agent 2/oracle.uptime)<10m |
INFO | Manual close: YES |
| Oracle: Instance name has changed (new name received: {ITEM.VALUE}) | Oracle DB Instance name has changed. Ack to close. |
last(/Oracle by Zabbix agent 2/oracle.instance_name,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_name,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_name))>0 |
INFO | Manual close: YES |
| Oracle: Instance hostname has changed (new hostname received: {ITEM.VALUE}) | Oracle DB Instance hostname has changed. Ack to close. |
last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#1)<>last(/Oracle by Zabbix agent 2/oracle.instance_hostname,#2) and length(last(/Oracle by Zabbix agent 2/oracle.instance_hostname))>0 |
INFO | Manual close: YES |
| Oracle: Shared pool free is too low (less {$ORACLE.SHARED.FREE.MIN.WARN}% for 5m) | The shared pool free memory percent has been less than {$ORACLE.SHARED.FREE.MIN.WARN}% in the last 5 minutes. |
max(/Oracle by Zabbix agent 2/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
WARNING | |
| Oracle: Too many active sessions (over {$ORACLE.SESSIONS.MAX.WARN}% for 5 min) | Active sessions are using more than {$ORACLE.SESSIONS.MAX.WARN}% of the available sessions. |
min(/Oracle by Zabbix agent 2/oracle.session_count,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
WARNING | |
| Oracle: Too many locked sessions (over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% for 5 min) | Number of locked sessions is over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% of the running sessions. |
min(/Oracle by Zabbix agent 2/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
WARNING | |
| Oracle: Too many sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s (over {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} for 5 min) | 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. |
min(/Oracle by Zabbix agent 2/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
WARNING | |
| Oracle: Too high database concurrency (over {$ORACLE.CONCURRENCY.MAX.WARN}% for 5 min) | 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. |
min(/Oracle by Zabbix agent 2/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
WARNING | |
| Oracle: Total PGA inuse is too high (over {$ORACLE.PGA.USE.MAX.WARN}% for 5 min) | Total PGA in use is more than {$ORACLE.PGA.USE.MAX.WARN}% of PGA_AGGREGATE_TARGET. |
min(/Oracle by Zabbix agent 2/oracle.total_pga_used,5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
WARNING | |
| Oracle: Zabbix account will expire soon (under {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} days) | Password for zabbix user in the database will expire soon. |
last(/Oracle by Zabbix agent 2/oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
WARNING | |
| Oracle: Number of REDO logs available for switching is too low (less {$ORACLE.REDO.MIN.WARN} for 5 min) | Number of available for log switching inactive/unused REDOs is low (Database down risk) |
max(/Oracle by Zabbix agent 2/oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) < {$ORACLE.REDO.MIN.WARN} |
WARNING | |
| Oracle: Too many active processes (over {$ORACLE.PROCESSES.MAX.WARN}% for 5 min) | Active processes are using more than {$ORACLE.PROCESSES.MAX.WARN}% of the available number of processes. |
min(/Oracle by Zabbix agent 2/oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
WARNING | |
| Oracle: Too many database files (over {$ORACLE.DB.FILE.MAX.WARN}% for 5 min) | Number of datafiles is higher than {$ORACLE.DB.FILE.MAX.WARN}% of the available datafile files limit. |
min(/Oracle by Zabbix agent 2/oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix agent 2/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
WARNING | |
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle DB has a MOUNTED state. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"])=1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status has changed (new value received: {ITEM.VALUE}) | Oracle DB open status has changed. Ack to close. |
last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_open_mode["{#DBNAME}"],#2) |
INFO | Manual close: YES Depends on: - Oracle Database '{#DBNAME}': Open status in mount mode |
| Oracle Database '{#DBNAME}': Role has changed (new value received: {ITEM.VALUE}) | Oracle DB role has changed. Ack to close. |
last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.db_role["{#DBNAME}"],#2) |
INFO | Manual close: YES |
| Oracle Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force Logging mode - it is very important metric for Databases in 'ARCHIVELOG'. This feature allows to forcibly write all transactions to the REDO. |
last(/Oracle by Zabbix agent 2/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by Zabbix agent 2/oracle.db_log_mode["{#DBNAME}"]) = 1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle DB has a MOUNTED state. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"])=1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status has changed (new value received: {ITEM.VALUE}) | Oracle DB open status has changed. Ack to close. |
last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.pdb_open_mode["{#DBNAME}"],#2) |
INFO | Manual close: YES |
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m). | - |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
WARNING | Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m). |
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m). | - |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
HIGH | |
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m). | - |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
WARNING | Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m). |
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m). | - |
min(/Oracle by Zabbix agent 2/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
HIGH | |
| Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"])=2 |
WARNING | |
| Oracle TBS '{#TABLESPACE}': Tablespace status has changed (new value received: {ITEM.VALUE}) | Oracle tablespace status has changed. Ack to close. |
last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"],#1)<>last(/Oracle by Zabbix agent 2/oracle.tbs_status["{#TABLESPACE}"],#2) |
INFO | Manual close: YES Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE |
| Archivelog '{#DEST_NAME}': Log Archive is not valid | ARL destination not in 3 - Valid or 2 - Deferred. |
last(/Oracle by Zabbix agent 2/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
HIGH | |
| ASM '{#DG_NAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.WARN}% for 5m) | Usage percent of ASM disk group is over {$ORACLE.ASM.USED.PCT.MAX.WARN} |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DG_NAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
WARNING | Depends on: - ASM '{#DG_NAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m) |
| ASM '{#DG_NAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m) | Usage percent of ASM disk group is over {$ORACLE.ASM.USED.PCT.MAX.WARN} |
min(/Oracle by Zabbix agent 2/oracle.asm_used_pct["{#DG_NAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
HIGH |
Please report any issues with the template at https://support.zabbix.com
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_agent2?at=release/5.0
For Zabbix version: 5.0 and higher.
The template is developed to monitor a single DBMS Oracle Database instance with Zabbix agent 2.
This template has been tested on:
See Zabbix template operation for basic instructions.
Setup and configure Zabbix agent 2 compiled with the Oracle monitoring plugin. See the setup instructions for Oracle Database plugin.
Set the {$ORACLE.CONNSTRING} macro value using either <protocol(host:port)> or named session.
If you want to override parameters from Zabbix agent configuration file, set the user name, password and service name in host macros ({$ORACLE.USER}, {$ORACLE.PASSWORD}, and {$ORACLE.SERVICE}).
User can contain sysdba, sysoper, sysasm privileges. It must be used with as as a separator e.g user as sysdba, privilege can be upper or lowercase, and must be at the end of username string.
Test availability:
zabbix_get -s oracle-host -k oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used Automatic Storage Management (ASM) disk group for a high trigger expression. |
95 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used ASM disk group for a warning trigger expression. |
90 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of sessions concurrency usage for a trigger expression. |
80 |
| {$ORACLE.CONNSTRING} | tcp://localhost:1521 |
|
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for a trigger expression. |
80 |
| {$ORACLE.DBNAME.MATCHES} | This macro is used in discovery of the database. It can be overridden on host level or its linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | This macro is used in discovery of the database. It can be overridden on host level or its linked template level. |
PDB\$SEED |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of warning days before the password expires for a trigger expression. |
7 |
| {$ORACLE.PASSWORD} | The Oracle user's password. |
zabbix_password |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for a trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for a trigger expression |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of REDO logs for a trigger expression. |
3 |
| {$ORACLE.SERVICE} | Oracle Service Name. |
ORA |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for a trigger expression. |
3 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for a trigger expression. |
20 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for a trigger expression. |
80 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for a trigger expression. |
5 |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | This macro is used in tablespace discovery. It can be overridden on host level or its linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | This macro is used in tablespace discovery. It can be overridden on host level or its linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for a trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for a trigger expression. |
90 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for a trigger expression. |
90 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for a trigger expression. |
80 |
| {$ORACLE.USER} | Oracle username. |
zabbix |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Scanning databases in the database management system (DBMS). |
ZABBIX_PASSIVE | oracle.db.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Filter: AND- A: {#DBNAME} MATCHES_REGEX - B: {#DBNAME} NOT_MATCHES_REGEX |
| PDB discovery | Scanning a pluggable database (PDB) in DBMS. |
ZABBIX_PASSIVE | oracle.pdb.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Filter: AND- A: {#DBNAME} MATCHES_REGEX - B: {#DBNAME} NOT_MATCHES_REGEX |
| Tablespace discovery | Scanning tablespaces in DBMS. |
ZABBIX_PASSIVE | oracle.ts.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Filter: AND- A: {#TABLESPACE} MATCHES_REGEX - B: {#TABLESPACE} NOT_MATCHES_REGEX |
| Archive log discovery | Destinations of the log archive. |
ZABBIX_PASSIVE | oracle.archive.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| ASM disk groups discovery | The ASM disk groups. |
ZABBIX_PASSIVE | oracle.diskgroups.discovery["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Oracle | Oracle: Ping | Test the connection to Oracle Database state. |
ZABBIX_PASSIVE | oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Version | The Oracle Server version. |
DEPENDENT | oracle.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Uptime | The Oracle instance uptime expressed in seconds. |
DEPENDENT | oracle.uptime Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance status | The status of the instance. |
DEPENDENT | oracle.instance_status Preprocessing: - JSONPATH: |
| Oracle | Oracle: Archiver state | The status of automatic archiving. |
DEPENDENT | oracle.archiver_state Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance name | The name of an instance. |
DEPENDENT | oracle.instance_name Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance hostname | The name of the host machine. |
DEPENDENT | oracle.instance_hostname Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance role | It indicates whether the instance is an active instance or an inactive secondary instance. |
DEPENDENT | oracle.instance.role Preprocessing: - JSONPATH: |
| Oracle | Oracle: Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
DEPENDENT | oracle.buffer_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
DEPENDENT | oracle.cursor_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
DEPENDENT | oracle.library_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Shared pool free % | Free memory of a shared pool expressed in %. |
DEPENDENT | oracle.shared_pool_free Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical reads per second | Reads per second. |
DEPENDENT | oracle.physical_reads_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical writes per second | Writes per second. |
DEPENDENT | oracle.physical_writes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical reads bytes per second | Read bytes per second. |
DEPENDENT | oracle.physical_read_bytes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical writes bytes per second | Write bytes per second. |
DEPENDENT | oracle.physical_write_bytes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Enqueue timeouts per second | Enqueue timeouts per second. |
DEPENDENT | oracle.enqueue_timeouts_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
DEPENDENT | oracle.gc_cr_block_received_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
DEPENDENT | oracle.cache_blocks_corrupt Preprocessing: - JSONPATH: |
| Oracle | Oracle: Global cache blocks lost | The number of lost global cache blocks. |
DEPENDENT | oracle.cache_blocks_lost Preprocessing: - JSONPATH: |
| Oracle | Oracle: Logons per second | The number of logon attempts. |
DEPENDENT | oracle.logons_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Average active sessions | The average active sessions at a point in time. The number of sessions that are either working or waiting. |
DEPENDENT | oracle.active_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active serial sessions | The number of active serial sessions. |
DEPENDENT | oracle.active_serial_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active parallel sessions | The number of active parallel sessions. |
DEPENDENT | oracle.active_parallel_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Long table scans per second | 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 five blocks. |
DEPENDENT | oracle.long_table_scans_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
DEPENDENT | oracle.service_response_time Preprocessing: - JSONPATH: - MULTIPLIER: |
| Oracle | Oracle: User rollbacks per second | The number of times that users manually issue the ROLLBACK statement or an error occurred during the users' transactions. |
DEPENDENT | oracle.user_rollbacks_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Total sorts per user call | The total sorts per user call. |
DEPENDENT | oracle.sorts_per_user_call Preprocessing: - JSONPATH: |
| Oracle | Oracle: Rows per sort | The average number of rows per sort for all types of sorts performed. |
DEPENDENT | oracle.rows_per_sort Preprocessing: - JSONPATH: |
| Oracle | Oracle: Disk sort per second | The number of sorts going to disk per second. |
DEPENDENT | oracle.disk_sorts Preprocessing: - JSONPATH: |
| Oracle | Oracle: Memory sorts ratio | The percentage of sorts (from ORDER BY clauses or index building) that are done to disk vs in-memory. |
DEPENDENT | oracle.memory_sorts_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Database wait time ratio | 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, etc. |
DEPENDENT | oracle.database_wait_time_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Database CPU time ratio | It is calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
DEPENDENT | oracle.database_cpu_time_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Temp space used | Used temporary space. |
DEPENDENT | oracle.temp_space_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions limit | The user and system sessions. |
DEPENDENT | oracle.session_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Datafiles limit | The maximum allowable number of datafiles. |
DEPENDENT | oracle.db_files_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Processes limit | The maximum number of user processes. |
DEPENDENT | oracle.processes_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Session count | The count of sessions. |
DEPENDENT | oracle.session_count Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active user sessions | The number of active user sessions. |
DEPENDENT | oracle.session_active_user Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Active background sessions | The number of active background sessions. |
DEPENDENT | oracle.session_active_background Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Inactive user sessions | The number of inactive user sessions. |
DEPENDENT | oracle.session_inactive_user Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Sessions lock rate | 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. |
DEPENDENT | oracle.session_lock_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of maximum session lock in seconds for a query by {$ORACLE.SESSION.LOCK.MAX.TIME} macro. Default is 600 sec). |
DEPENDENT | oracle.session_long_time_locked Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions concurrency | The percentage of concurrency. Concurrency is a DB behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, the rest of the transactions are waiting for the access. In the case when the access for the resource is locked for a long time, then the concurrency grows (like the transaction queue) and this often has an extremely negative impact on the performance. A high contention value does not indicate the root cause of the problem but is a signal to search for it. |
DEPENDENT | oracle.session_concurrency_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total inuse | It indicates how much the Program Global Area (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). |
DEPENDENT | oracle.total_pga_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Aggregate target parameter | The current value of the PGA_AGGREGATE_TARGET initialization parameter. If this parameter is not set, then its value is 0 and automatic management of the PGA memory is disabled. |
DEPENDENT | oracle.pga_target Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total allocated | The current amount of the 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. |
DEPENDENT | oracle.total_pga_allocated Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the operating system. |
DEPENDENT | oracle.total_pga_freeable Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Global memory bound | The maximum size of work area executed in automatic mode. |
DEPENDENT | oracle.pga_global_bound Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
DEPENDENT | oracle.fra_space_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
DEPENDENT | oracle.fra_space_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low priority files from the FRA. |
DEPENDENT | oracle.fra_space_reclaimable Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Number of files | The number of files in the FRA. |
DEPENDENT | oracle.fra_number_of_files Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Usable space in % | DEPENDENT | oracle.fra_usable_pct Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: FRA, Number of restore points | DEPENDENT | oracle.fra_restore_point Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: SGA, java pool | The memory is allocated from the Java pool. |
DEPENDENT | oracle.sga_java_pool Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, large pool | The memory is allocated from a large pool. |
DEPENDENT | oracle.sga_large_pool Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, shared pool | The memory is allocated from a shared pool. |
DEPENDENT | oracle.sga_shared_pool Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, log buffer | The number of bytes allocated for the redo log buffer. |
DEPENDENT | oracle.sga_log_buffer Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
DEPENDENT | oracle.sga_fixed Preprocessing: - JSONPATH: |
| Oracle | Oracle: SGA, buffer cache | The size of standard block cache. |
DEPENDENT | oracle.sga_buffer_cache Preprocessing: - JSONPATH: |
| Oracle | Oracle: User's expire password | The number of days before the password of Zabbix account expires. |
ZABBIX_PASSIVE | oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle: Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
ZABBIX_PASSIVE | oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle: Number of processes | ZABBIX_PASSIVE | oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: Datafiles count | The current number of datafiles. |
ZABBIX_PASSIVE | oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle Database '{#DBNAME}': Open status | 1 - 'MOUNTED'; 2 - 'READ WRITE'; 3 - 'READ ONLY'; 4 - 'READ ONLY WITH APPLY' (a physical standby database is open in real-time query mode). |
DEPENDENT | oracle.db_open_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Role | The current role of the database where: 1 - 'SNAPSHOT STANDBY'; 2 - 'LOGICAL STANDBY'; 3 - 'PHYSICAL STANDBY'; 4 - 'PRIMARY '; 5 -'FAR SYNC'. |
DEPENDENT | oracle.db_role["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Log mode | The archive log mode where: 0 - 'NOARCHIVELOG'; 1 - 'ARCHIVELOG'; 2 - 'MANUAL'. |
DEPENDENT | oracle.db_log_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Force logging | It indicates whether the database is under force logging mode 'YES' or 'NO'. |
DEPENDENT | oracle.db_force_logging["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Open status | 1 - 'MOUNTED'; 2 - 'READ WRITE'; 3 - 'READ ONLY'; 4 - 'READ ONLY WITH APPLY' (a physical standby database is open in real-time query mode). |
DEPENDENT | oracle.pdb_open_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
DEPENDENT | oracle.tbs_alloc_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
DEPENDENT | oracle.tbs_max_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles - the free space). |
DEPENDENT | oracle.tbs_used_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
DEPENDENT | oracle.tbs_free_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
DEPENDENT | oracle.tbs_used_file_pct["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
DEPENDENT | oracle.tbs_used_pct["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - 'ONLINE'; 2 - 'OFFLINE'; 3- 'READ ONLY'. |
DEPENDENT | oracle.tbs_status["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Archivelog '{#DEST_NAME}': Error | It displays the error message. |
DEPENDENT | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Archivelog '{#DEST_NAME}': Last sequence | It identifies the sequence number of the last archived redo log to be archived |
DEPENDENT | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing: - JSONPATH: |
| Oracle | Archivelog '{#DEST_NAME}': Status | It identifies the current status of the destination where: 1 - 'VALID'; 2 - 'DEFERRED'; 3 - 'ERROR'; 0 - 'UNKNOWN'. |
DEPENDENT | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
DEPENDENT | oracle.asm_total_size["{#DGNAME}"] Preprocessing: - JSONPATH: |
| Oracle | ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
DEPENDENT | oracle.asm_free_size["{#DGNAME}"] Preprocessing: - JSONPATH: |
| Oracle | ASM '{#DGNAME}': Free size | Usage of the ASM disk group expressed in %. |
DEPENDENT | oracle.asm_used_pct["{#DGNAME}"] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Oracle: Get instance state | The item gets its state of the current instance. |
ZABBIX_PASSIVE | oracle.instance.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get system metrics | The item gets the values of the system metrics. |
ZABBIX_PASSIVE | oracle.sys.metrics["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get system parameters | Get a set of system parameter values. |
ZABBIX_PASSIVE | oracle.sys.params["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get sessions stats | Get sessions statistics. {$ORACLE.SESSION.LOCK.MAX.TIME} -- maximum seconds in the current wait condition for counting long time locked sessions. Default: 600 seconds. |
ZABBIX_PASSIVE | oracle.sessions.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{$ORACLE.SESSION.LOCK.MAX.TIME}"] |
| Zabbix_raw_items | Oracle: Get PGA stats | Get PGA statistics. |
ZABBIX_PASSIVE | oracle.pga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get FRA stats | Get FRA statistics. |
ZABBIX_PASSIVE | oracle.fra.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle: Get SGA stats | Get SGA statistics. |
ZABBIX_PASSIVE | oracle.sga.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"] |
| Zabbix_raw_items | Oracle Database '{#DBNAME}': Get CDB and No-CDB info | It gets the information about the container database (CDB) and non-CDB database on an instance. |
ZABBIX_PASSIVE | oracle.cdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"] |
| Zabbix_raw_items | Oracle Database '{#DBNAME}': Get PDB info | It gets the information about the PDB database on an instance. |
ZABBIX_PASSIVE | oracle.pdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"] |
| Zabbix_raw_items | Oracle TBS '{#TABLESPACE}': Get tablespace stats | It gets the statistics of the tablespace. |
ZABBIX_PASSIVE | oracle.ts.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#TABLESPACE}","{#CONTENTS}"] |
| Zabbix_raw_items | Archivelog '{#DEST_NAME}': Get archive log info | It gets the archivelog statistics. |
ZABBIX_PASSIVE | oracle.archive.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DEST_NAME}"] |
| Zabbix_raw_items | ASM '{#DGNAME}': Get ASM stats | It gets the ASM disk group statistics. |
ZABBIX_PASSIVE | oracle.diskgroups.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DGNAME}"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Connection to database is unavailable | Connection to Oracle Database is currently unavailable. |
{TEMPLATE_NAME:oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"].last()}=0 |
DISASTER | |
| Oracle: Version has changed (new version value received: {ITEM.VALUE}) | The Oracle DB version has changed. Acknowledge (Ack) to close manually. |
{TEMPLATE_NAME:oracle.version.diff()}=1 and {TEMPLATE_NAME:oracle.version.strlen()}>0 |
INFO | Manual close: YES |
| Oracle: Failed to fetch info data (or no data for 30m) | Zabbix has not received data for items for the last 5 minutes. The database might be unavailable for connecting. |
{TEMPLATE_NAME:oracle.uptime.nodata(30m)}=1 |
INFO | |
| Oracle: has been restarted (uptime < 10m) | Uptime is less than 10 minutes. |
{TEMPLATE_NAME:oracle.uptime.last()}<10m |
INFO | Manual close: YES |
| Oracle: Instance name has changed (new name received: {ITEM.VALUE}) | Oracle DB Instance name has changed. Ack to close manually. |
{TEMPLATE_NAME:oracle.instance_name.diff()}=1 and {TEMPLATE_NAME:oracle.instance_name.strlen()}>0 |
INFO | Manual close: YES |
| Oracle: Instance hostname has changed (new hostname received: {ITEM.VALUE}) | Oracle DB Instance hostname has changed. Ack to close. |
{TEMPLATE_NAME:oracle.instance_hostname.diff()}=1 and {TEMPLATE_NAME:oracle.instance_hostname.strlen()}>0 |
INFO | Manual close: YES |
| Oracle: Shared pool free is too low (less {$ORACLE.SHARED.FREE.MIN.WARN}% for 5m) | The free memory percent of the shared pool has been less than {$ORACLE.SHARED.FREE.MIN.WARN}% for the last 5 minutes. |
{TEMPLATE_NAME:oracle.shared_pool_free.max(5m)}<{$ORACLE.SHARED.FREE.MIN.WARN} |
WARNING | |
| Oracle: Too many active sessions (over {$ORACLE.SESSIONS.MAX.WARN}% for 5 min) | Active sessions are using more than {$ORACLE.SESSIONS.MAX.WARN}% of the available sessions. |
{TEMPLATE_NAME:oracle.session_count.min(5m)} * 100 / {TEMPLATE_NAME:oracle.session_limit.last()} > {$ORACLE.SESSIONS.MAX.WARN} |
WARNING | |
| Oracle: Too many locked sessions (over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% for 5 min) | The number of locked sessions exceeds {$ORACLE.SESSIONS.LOCK.MAX.WARN}% of the running sessions. |
{TEMPLATE_NAME:oracle.session_lock_rate.min(5m)} > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
WARNING | |
| Oracle: Too many sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s (over {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} for 5 min) | The number of locked sessions exceeding {$ORACLE.SESSION.LOCK.MAX.TIME} seconds is too high. Long-term locks can negatively affect the database performance. Therefore, if they are detected, you should first find the most difficult queries from the database point of view and then analyze possible resource leaks. |
{TEMPLATE_NAME:oracle.session_long_time_locked.min(5m)} > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
WARNING | |
| Oracle: Too high database concurrency (over {$ORACLE.CONCURRENCY.MAX.WARN}% for 5 min) | The concurrency rate exceeds {$ORACLE.CONCURRENCY.MAX.WARN}%. A high contention value does not indicate the root cause of the problem, but it is a signal to search for it. In the case of high competition, the analysis of resource consumption should be carried out. Which are the most "heavy" queries made in the database? Possibly, also session tracing. All this will help to determine the root cause and possible optimization points both in the database configuration and in the logic of building queries of the application itself. |
{TEMPLATE_NAME:oracle.session_concurrency_rate.min(5m)} > {$ORACLE.CONCURRENCY.MAX.WARN} |
WARNING | |
| Oracle: Total PGA inuse is too high (over {$ORACLE.PGA.USE.MAX.WARN}% for 5 min) | The total PGA in use is more than {$ORACLE.PGA.USE.MAX.WARN}% of PGA_AGGREGATE_TARGET. |
{TEMPLATE_NAME:oracle.total_pga_used.min(5m)} * 100 / {TEMPLATE_NAME:oracle.pga_target.last()} > {$ORACLE.PGA.USE.MAX.WARN} |
WARNING | |
| Oracle: Zabbix account will expire soon (under {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} days) | The password for Zabbix user in the database expires soon. |
{TEMPLATE_NAME:oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"].last()} < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
WARNING | |
| Oracle: Number of REDO logs available for switching is too low (less {$ORACLE.REDO.MIN.WARN} for 5 min) | The number of inactive/unused REDOs available for log switching is low (database down risk). |
{TEMPLATE_NAME:oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"].max(5m)} < {$ORACLE.REDO.MIN.WARN} |
WARNING | |
| Oracle: Too many active processes (over {$ORACLE.PROCESSES.MAX.WARN}% for 5 min) | Active processes are using more than {$ORACLE.PROCESSES.MAX.WARN}% of the available number of processes. |
{TEMPLATE_NAME:oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"].min(5m)} * 100 / {TEMPLATE_NAME:oracle.processes_limit.last()} > {$ORACLE.PROCESSES.MAX.WARN} |
WARNING | |
| Oracle: Too many database files (over {$ORACLE.DB.FILE.MAX.WARN}% for 5 min) | The number of datafiles is higher than {$ORACLE.DB.FILE.MAX.WARN}% of the available datafiles limit. |
{TEMPLATE_NAME:oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"].min(5m)} * 100 / {TEMPLATE_NAME:oracle.db_files_limit.last()} > {$ORACLE.DB.FILE.MAX.WARN} |
WARNING | |
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle DB is in a mounted state. |
{TEMPLATE_NAME:oracle.db_open_mode["{#DBNAME}"].last()}=1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status has changed (new value received: {ITEM.VALUE}) | The Oracle DB open status has changed. Ack to close manually. |
{TEMPLATE_NAME:oracle.db_open_mode["{#DBNAME}"].diff()}=1 |
INFO | Manual close: YES Depends on: - Oracle Database '{#DBNAME}': Open status in mount mode |
| Oracle Database '{#DBNAME}': Role has changed (new value received: {ITEM.VALUE}) | The Oracle DB role has changed. Ack to close manually. |
{TEMPLATE_NAME:oracle.db_role["{#DBNAME}"].diff()}=1 |
INFO | Manual close: YES |
| Oracle Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force Logging mode - it is very important metric for Databases in 'ARCHIVELOG'. This feature allows to forcibly write all the transactions to the REDO. |
{TEMPLATE_NAME:oracle.db_force_logging["{#DBNAME}"].last()} = 0 and {TEMPLATE_NAME:oracle.db_log_mode["{#DBNAME}"].last()} = 1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle DB is in a mounted state. |
{TEMPLATE_NAME:oracle.pdb_open_mode["{#DBNAME}"].last()}=1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status has changed (new value received: {ITEM.VALUE}) | The Oracle DB open status has changed. Ack to close manually. |
{TEMPLATE_NAME:oracle.pdb_open_mode["{#DBNAME}"].diff()}=1 |
INFO | Manual close: YES |
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m). | {TEMPLATE_NAME:oracle.tbs_used_file_pct["{#TABLESPACE}"].min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
WARNING | Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m). |
|
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m). | {TEMPLATE_NAME:oracle.tbs_used_file_pct["{#TABLESPACE}"].min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
HIGH | ||
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m). | {TEMPLATE_NAME:oracle.tbs_used_pct["{#TABLESPACE}"].min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
WARNING | Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m). |
|
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m). | {TEMPLATE_NAME:oracle.tbs_used_pct["{#TABLESPACE}"].min(5m)}>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
HIGH | ||
| Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
{TEMPLATE_NAME:oracle.tbs_status["{#TABLESPACE}"].last()}=2 |
WARNING | |
| Oracle TBS '{#TABLESPACE}': Tablespace status has changed (new value received: {ITEM.VALUE}) | Oracle tablespace status has changed. Ack to close. |
{TEMPLATE_NAME:oracle.tbs_status["{#TABLESPACE}"].diff()}=1 |
INFO | Manual close: YES Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE |
| Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: 2 - 'DEFERRED'; 3 - 'VALID'. |
{TEMPLATE_NAME:oracle.archivelog_log_status["{#DEST_NAME}"].last()}<2 |
HIGH | |
| ASM '{#DGNAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.WARN}% for 5m) | The usage of the ASM disk group expressed in % exceeds {$ORACLE.ASM.USED.PCT.MAX.WARN} |
{TEMPLATE_NAME:oracle.asm_used_pct["{#DGNAME}"].min(5m)}>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
WARNING | Depends on: - ASM '{#DGNAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m) |
| ASM '{#DGNAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m) | The usage of the ASM disk group expressed in % exceeds {$ORACLE.ASM.USED.PCT.MAX.HIGH} |
{TEMPLATE_NAME:oracle.asm_used_pct["{#DGNAME}"].min(5m)}>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
HIGH |
Please report any issues with the template at https://support.zabbix.com.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_odbc?at=release/7.4
The template is developed to monitor a single DBMS Oracle Database instance with ODBC and can monitor CDB or non-CDB installations.
Oracle Database 12c2 and newer.
Important! This integration queries the V$ACTIVE_SESSION_HISTORY dynamic performance view which is part of the Oracle Diagnostics Pack. Please make sure that you have the licence required for using this management pack.
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Create an Oracle Database user for monitoring:
In CDB installations, it is possible to monitor tablespaces from the CDB (container database) and all PDBs (pluggable databases). To do so, a common user is needed with the correct rights:
CREATE USER c##zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the c##zabbix_mon user.
ALTER USER c##zabbix_mon SET CONTAINER_DATA=ALL CONTAINER=CURRENT;
GRANT CONNECT, CREATE SESSION TO c##zabbix_mon;
GRANT SELECT_CATALOG_ROLE to c##zabbix_mon;
GRANT SELECT ON v_$instance TO c##zabbix_mon;
GRANT SELECT ON v_$database TO c##zabbix_mon;
GRANT SELECT ON v_$sysmetric TO c##zabbix_mon;
GRANT SELECT ON v_$system_parameter TO c##zabbix_mon;
GRANT SELECT ON v_$session TO c##zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO c##zabbix_mon;
GRANT SELECT ON v_$active_session_history TO c##zabbix_mon;
GRANT SELECT ON v_$osstat TO c##zabbix_mon;
GRANT SELECT ON v_$process TO c##zabbix_mon;
GRANT SELECT ON v_$datafile TO c##zabbix_mon;
GRANT SELECT ON v_$pgastat TO c##zabbix_mon;
GRANT SELECT ON v_$sgastat TO c##zabbix_mon;
GRANT SELECT ON v_$log TO c##zabbix_mon;
GRANT SELECT ON v_$archive_dest TO c##zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO c##zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup_stat TO c##zabbix_mon;
GRANT SELECT ON DBA_USERS TO c##zabbix_mon;
This is needed because the template uses CDB_* views to monitor tablespaces from the CDB and different PDBs - the monitoring user therefore needs access to the container data objects on all PDBs.
However, if you wish to monitor only a single PDB or a non-CDB instance, a local user is sufficient:
CREATE USER zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT_CATALOG_ROLE to zabbix_mon;
GRANT SELECT ON v_$instance TO zabbix_mon;
GRANT SELECT ON v_$database TO zabbix_mon;
GRANT SELECT ON v_$sysmetric TO zabbix_mon;
GRANT SELECT ON v_$system_parameter TO zabbix_mon;
GRANT SELECT ON v_$session TO zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO zabbix_mon;
GRANT SELECT ON v_$active_session_history TO zabbix_mon;
GRANT SELECT ON v_$osstat TO zabbix_mon;
GRANT SELECT ON v_$process TO zabbix_mon;
GRANT SELECT ON v_$datafile TO zabbix_mon;
GRANT SELECT ON v_$pgastat TO zabbix_mon;
GRANT SELECT ON v_$sgastat TO zabbix_mon;
GRANT SELECT ON v_$log TO zabbix_mon;
GRANT SELECT ON v_$archive_dest TO zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup_stat TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
Important! Ensure that the ODBC connection to Oracle includes the session parameter NLS_NUMERIC_CHARACTERS= '.,'. It is important for displaying the float numbers in Zabbix correctly.
Important! These privileges grant the monitoring user SELECT_CATALOG_ROLE, which, in turn, gives access to thousands of tables in the database.
This role is required to access the V$RESTORE_POINT dynamic performance view.
However, there are ways to go around this, if the SELECT_CATALOG_ROLE assigned to a monitoring user raises any security issues.
One way to do this is using pipelined table functions:
Log into your database as the SYS user or make sure that your administration user has the required privileges to execute the steps below;
Create types for the table function:
CREATE OR REPLACE TYPE zbx_mon_restore_point_row AS OBJECT (
SCN NUMBER,
DATABASE_INCARNATION# NUMBER,
GUARANTEE_FLASHBACK_DATABASE VARCHAR2(3),
STORAGE_SIZE NUMBER,
TIME TIMESTAMP(9),
RESTORE_POINT_TIME TIMESTAMP(9),
PRESERVED VARCHAR2(3),
NAME VARCHAR2(128),
PDB_RESTORE_POINT VARCHAR2(3),
CLEAN_PDB_RESTORE_POINT VARCHAR2(3),
PDB_INCARNATION# NUMBER,
REPLICATED VARCHAR2(3),
CON_ID NUMBER
);
CREATE OR REPLACE TYPE zbx_mon_restore_point_tab IS TABLE OF zbx_mon_restore_point_row;
Create the pipelined table function:
CREATE OR REPLACE FUNCTION zbx_mon_restore_point RETURN zbx_mon_restore_point_tab PIPELINED AS
BEGIN
FOR i IN (SELECT * FROM V$RESTORE_POINT) LOOP
PIPE ROW (zbx_mon_restore_point_row(i.SCN, i.DATABASE_INCARNATION#, i.GUARANTEE_FLASHBACK_DATABASE, i.STORAGE_SIZE, i.TIME, i.RESTORE_POINT_TIME, i.PRESERVED, i.NAME, i.PDB_RESTORE_POINT, i.CLEAN_PDB_RESTORE_POINT, i.PDB_INCARNATION#, i.REPLICATED, i.CON_ID));
END LOOP;
RETURN;
END;
Grant the Zabbix monitoring user the Execute privilege on the created pipelined table function and replace the monitoring user V$RESTORE_POINT view with the SYS user function (in this example, the SYS user is used to create DB types and function):
GRANT EXECUTE ON zbx_mon_restore_point TO c##zabbix_mon;
CREATE OR REPLACE VIEW c##zabbix_mon.V$RESTORE_POINT AS SELECT * FROM TABLE(SYS.zbx_mon_restore_point);
Finally, revoke the SELECT_CATALOG_ROLE and grant additional permissions that were previously covered by the SELECT_CATALOG_ROLE.
REVOKE SELECT_CATALOG_ROLE FROM c##zabbix_mon;
GRANT SELECT ON v_$pdbs TO c##zabbix_mon;
GRANT SELECT ON v_$sort_segment TO c##zabbix_mon;
GRANT SELECT ON v_$parameter TO c##zabbix_mon;
GRANT SELECT ON CDB_TABLESPACES TO c##zabbix_mon;
GRANT SELECT ON CDB_DATA_FILES TO c##zabbix_mon;
GRANT SELECT ON CDB_FREE_SPACE TO c##zabbix_mon;
GRANT SELECT ON CDB_TEMP_FILES TO c##zabbix_mon;
Note that in these examples, the monitoring user is named
c##zabbix_monand the system user -SYS. Change these example usernames to ones that are appropriate for your environment.
If this workaround does not work for you, there are more options available, such as materialized views, but look out for data refresh as V$RESTORE_POINT is a dynamic performance view.
Install the ODBC driver on Zabbix server or Zabbix proxy. See the Oracle documentation for instructions.
Configure Zabbix server or Zabbix proxy for using the Oracle environment:
This step is required only when:
installing Oracle Instant Client with .rpm packages with a version < 19.3 (if Instant Client is the only Oracle software installed on Zabbix server or Zabbix proxy);
installing Oracle Instant Client manually with .zip files.
There are multiple configuration options:
Using the LDCONFIG utility (recommended option):
To update the runtime link path, it is recommended to use the LDCONFIG utility, for example:
# sh -c "echo /opt/oracle/instantclient_19_18 > /etc/ld.so.conf.d/oracle-instantclient.conf"
# ldconfig
Using the application configuration file:
An alternative solution is to export the required variables by editing or adding a new application configuration file:
/etc/sysconfig/zabbix-server # for server
/etc/sysconfig/zabbix-proxy # for proxy
And then, adding:
# Oracle Instant Client library
LD_LIBRARY_PATH=/opt/oracle/instantclient_19_18:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
Keep in mind that the library paths will vary depending on your installation.
This is a minimal configuration example. Depending on the Oracle Instant Client version, required functionality and host operating system, a different set of additional packages might need to be installed. For more detailed configuration instructions, see the official Oracle Instant Client installation instructions for Linux.
Restart Zabbix server or Zabbix proxy.
Set the username and password in the host macros {$ORACLE.USER} and {$ORACLE.PASSWORD}.
Set the {$ORACLE.HOST}, {$ORACLE.DRIVER} and {$ORACLE.SERVICE} in the host macros.
{$ORACLE.HOST} is a hostname or IP address of the Oracle DB instance.
{$ORACLE.DRIVER} is a path to the driver location in the OS. The ODBC driver file should be found in the Instant Client directory and named libsqora.so.XX.Y.
{$ORACLE.SERVICE} is a service name to which the host will connect to. The value in this macro is important as it determines if the connection is established to a non-CDB, CDB, or PDB. If you wish to monitor tablespaces of all PDBs, you will need to set a service name that points to the CDB.
Active service names can be seen from the instance running Oracle Database with lsnrctl status.
Important! Make sure that the user created in step #1 is present on the specified service.
The "Service's TCP port state" item uses {$ORACLE.HOST} and {$ORACLE.PORT} macros to check the availability of the listener.
| Name | Description | Default |
|---|---|---|
| {$ORACLE.DRIVER} | Oracle driver path. For example: |
|
| {$ORACLE.SERVICE} | Oracle Service Name. |
|
| {$ORACLE.USER} | Oracle username. |
|
| {$ORACLE.PASSWORD} | Oracle user's password. |
|
| {$ORACLE.HOST} | The hostname or IP address of the Oracle DB instance. |
|
| {$ORACLE.PORT} | Oracle Database TCP port. |
1521 |
| {$ORACLE.DBNAME.MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
PDB\$SEED |
| {$ORACLE.TABLESPACE.CONTAINER.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.CONTAINER.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
80 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for the Warning trigger expression. |
80 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for the Warning trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for the Warning trigger expression. |
80 |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression. |
90 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression. |
20 |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression. |
3 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of session concurrency for the Warning trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of redo logs for the Warning trigger expression. |
3 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression. |
5 |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of days before the password expires for the Warning trigger expression. |
7 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression. |
90 |
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression. |
95 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Service's TCP port state | Checks the availability of Oracle on the TCP port. |
Zabbix agent | net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}] Preprocessing
|
| Number of LISTENER processes | The number of running listener processes. |
Zabbix agent | proc.num[,,,"tnslsnr LISTENER"] Preprocessing
|
| Get instance state | Gets the state of the current instance. |
Database monitor | db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get archive log | Gets the destinations of the log archive. |
Database monitor | db.odbc.get[get_archivelog,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get ASM disk groups | Gets the ASM disk groups. |
Database monitor | db.odbc.get[get_asm,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get database | Gets the databases in the database management system (DBMS). |
Database monitor | db.odbc.get[get_db,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get PDB | Gets the pluggable database (PDB) in DBMS. |
Database monitor | db.odbc.get[get_pdb,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get tablespace | Gets tablespaces in DBMS. |
Database monitor | db.odbc.get[get_tablespace,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Version | The Oracle Server version. |
Dependent item | oracle.version Preprocessing
|
| Uptime | The Oracle instance uptime expressed in seconds. |
Dependent item | oracle.uptime Preprocessing
|
| Instance status | The status of the instance. |
Dependent item | oracle.instance_status Preprocessing
|
| Archiver state | The status of automatic archiving. |
Dependent item | oracle.archiver_state Preprocessing
|
| Instance name | The name of the instance. |
Dependent item | oracle.instance_name Preprocessing
|
| Instance hostname | The name of the host machine. |
Dependent item | oracle.instance_hostname Preprocessing
|
| Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
Dependent item | oracle.instance.role Preprocessing
|
| Get system metrics | Gets the values of the system metrics. |
Database monitor | db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Sessions limit | The user and system sessions. |
Dependent item | oracle.session_limit Preprocessing
|
| Datafiles limit | The maximum allowable number of datafiles. |
Dependent item | oracle.db_files_limit Preprocessing
|
| Processes limit | The maximum number of user processes. |
Dependent item | oracle.processes_limit Preprocessing
|
| Number of processes | The current number of user processes. |
Dependent item | oracle.processes_count Preprocessing
|
| Datafiles count | The current number of datafiles. |
Dependent item | oracle.db_files_count Preprocessing
|
| Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
Dependent item | oracle.buffer_cache_hit_ratio Preprocessing
|
| Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
Dependent item | oracle.cursor_cache_hit_ratio Preprocessing
|
| Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
Dependent item | oracle.library_cache_hit_ratio Preprocessing
|
| Shared pool free % | Free memory of a shared pool expressed in %. |
Dependent item | oracle.shared_pool_free Preprocessing
|
| Physical reads per second | Reads per second. |
Dependent item | oracle.physical_reads_rate Preprocessing
|
| Physical writes per second | Writes per second. |
Dependent item | oracle.physical_writes_rate Preprocessing
|
| Physical reads bytes per second | Read bytes per second. |
Dependent item | oracle.physical_read_bytes_rate Preprocessing
|
| Physical writes bytes per second | Write bytes per second. |
Dependent item | oracle.physical_write_bytes_rate Preprocessing
|
| Enqueue timeouts per second | Enqueue timeouts per second. |
Dependent item | oracle.enqueue_timeouts_rate Preprocessing
|
| GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
Dependent item | oracle.gc_cr_block_received_rate Preprocessing
|
| Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
Dependent item | oracle.cache_blocks_corrupt Preprocessing
|
| Global cache blocks lost | The number of lost global cache blocks. |
Dependent item | oracle.cache_blocks_lost Preprocessing
|
| Logons per second | The number of logon attempts. |
Dependent item | oracle.logons_rate Preprocessing
|
| Average active sessions | The average number of active sessions at a point in time that are either working or waiting. |
Dependent item | oracle.active_sessions Preprocessing
|
| Session count | The session count. |
Dependent item | oracle.session_count Preprocessing
|
| Active user sessions | The number of active user sessions. |
Dependent item | oracle.session_active_user Preprocessing
|
| Active background sessions | The number of active background sessions. |
Dependent item | oracle.session_active_background Preprocessing
|
| Inactive user sessions | The number of inactive user sessions. |
Dependent item | oracle.session_inactive_user Preprocessing
|
| Sessions lock rate | 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. |
Dependent item | oracle.session_lock_rate Preprocessing
|
| Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of the maximum session lock in seconds for a query using the |
Dependent item | oracle.session_long_time_locked Preprocessing
|
| Sessions concurrency | The percentage of concurrency. Concurrency is a database behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, and the rest of the transactions wait for access. When the access to a resource is locked for a long time, the concurrency grows (like the transaction queue), often leaving 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. |
Dependent item | oracle.session_concurrency_rate Preprocessing
|
| User '{$ORACLE.USER}' expire password | The number of days before the Zabbix account password expires. |
Dependent item | oracle.user_expire_password Preprocessing
|
| Active serial sessions | The number of active serial sessions. |
Dependent item | oracle.active_serial_sessions Preprocessing
|
| Active parallel sessions | The number of active parallel sessions. |
Dependent item | oracle.active_parallel_sessions Preprocessing
|
| Long table scans per second | The number of long table scans per second. A table is considered long if it is not cached and if its high water mark is greater than five blocks. |
Dependent item | oracle.long_table_scans_rate Preprocessing
|
| SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
Dependent item | oracle.service_response_time Preprocessing
|
| User rollbacks per second | The number of times that users manually issued the |
Dependent item | oracle.user_rollbacks_rate Preprocessing
|
| Total sorts per user call | The total sorts per user call. |
Dependent item | oracle.sorts_per_user_call Preprocessing
|
| Rows per sort | The average number of rows per sort for all types of sorts performed. |
Dependent item | oracle.rows_per_sort Preprocessing
|
| Disk sort per second | The number of sorts going to disk per second. |
Dependent item | oracle.disk_sorts Preprocessing
|
| Memory sorts ratio | The percentage of sorts (from |
Dependent item | oracle.memory_sorts_ratio Preprocessing
|
| Database wait time ratio | 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, etc. |
Dependent item | oracle.database_wait_time_ratio Preprocessing
|
| Database CPU time ratio | The ratio calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
Dependent item | oracle.database_cpu_time_ratio Preprocessing
|
| Temp space used | Used temporary space. |
Dependent item | oracle.temp_space_used Preprocessing
|
| PGA, Total inuse | The amount of Program Global Area (PGA) memory 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). |
Dependent item | oracle.total_pga_used Preprocessing
|
| PGA, Aggregate target parameter | The current value of the |
Dependent item | oracle.pga_target Preprocessing
|
| PGA, Total allocated | The current amount of the PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the |
Dependent item | oracle.total_pga_allocated Preprocessing
|
| PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the OS. |
Dependent item | oracle.total_pga_freeable Preprocessing
|
| PGA, Global memory bound | The maximum size of a work area executed in automatic mode. |
Dependent item | oracle.pga_global_bound Preprocessing
|
| FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
Dependent item | oracle.fra_space_limit Preprocessing
|
| FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
Dependent item | oracle.fra_space_used Preprocessing
|
| FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low-priority files from the FRA. |
Dependent item | oracle.fra_space_reclaimable Preprocessing
|
| FRA, Number of files | The number of files in the FRA. |
Dependent item | oracle.fra_number_of_files Preprocessing
|
| FRA, Usable space in % | Percentage of space usable in the FRA. |
Dependent item | oracle.fra_usable_pct Preprocessing
|
| FRA, Number of restore points | Number of restore points in the FRA. |
Dependent item | oracle.fra_restore_point Preprocessing
|
| SGA, java pool | The memory is allocated from the Java pool. |
Dependent item | oracle.sga_java_pool Preprocessing
|
| SGA, large pool | The memory is allocated from a large pool. |
Dependent item | oracle.sga_large_pool Preprocessing
|
| SGA, shared pool | The memory is allocated from a shared pool. |
Dependent item | oracle.sga_shared_pool Preprocessing
|
| SGA, log buffer | The number of bytes allocated for the redo log buffer. |
Dependent item | oracle.sga_log_buffer Preprocessing
|
| SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
Dependent item | oracle.sga_fixed Preprocessing
|
| SGA, buffer cache | The size of standard block cache. |
Dependent item | oracle.sga_buffer_cache Preprocessing
|
| Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
Dependent item | oracle.redo_logs_available Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Port {$ORACLE.PORT} is unavailable | The TCP port of the Oracle Server service is currently unavailable. |
max(/Oracle by ODBC/net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}],#3)=0 and max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)>0 |
Disaster | |
| Oracle: LISTENER process is not running | The Oracle listener process is not running. |
max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)=0 |
Disaster | |
| Oracle: Version has changed | The Oracle Database version has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.version,#1)<>last(/Oracle by ODBC/oracle.version,#2) and length(last(/Oracle by ODBC/oracle.version))>0 |
Info | Manual close: Yes |
| Oracle: Host has been restarted | Uptime is less than 10 minutes. |
last(/Oracle by ODBC/oracle.uptime)<10m |
Info | Manual close: Yes |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by ODBC/oracle.uptime,5m)=1 |
Warning | Depends on:
|
| Oracle: Instance name has changed | An Oracle Database instance name has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.instance_name,#1)<>last(/Oracle by ODBC/oracle.instance_name,#2) and length(last(/Oracle by ODBC/oracle.instance_name))>0 |
Info | Manual close: Yes |
| Oracle: Instance hostname has changed | An Oracle Database instance hostname has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.instance_hostname,#1)<>last(/Oracle by ODBC/oracle.instance_hostname,#2) and length(last(/Oracle by ODBC/oracle.instance_hostname))>0 |
Info | Manual close: Yes |
| Oracle: Too many active processes | Active processes are using more than |
min(/Oracle by ODBC/oracle.processes_count,5m) * 100 / last(/Oracle by ODBC/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
Warning | |
| Oracle: Too many database files | The number of datafiles is higher than |
min(/Oracle by ODBC/oracle.db_files_count,5m) * 100 / last(/Oracle by ODBC/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
Warning | |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than |
max(/Oracle by ODBC/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
Warning | |
| Oracle: Too many active sessions | Active sessions are using more than |
min(/Oracle by ODBC/oracle.session_count,5m) * 100 / last(/Oracle by ODBC/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
Warning | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds |
min(/Oracle by ODBC/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding |
min(/Oracle by ODBC/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too high database concurrency | The concurrency rate exceeds |
min(/Oracle by ODBC/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
Warning | |
| Oracle: Zabbix account will expire soon | The password for the Zabbix user in the database expires soon. |
last(/Oracle by ODBC/oracle.user_expire_password) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
Warning | |
| Oracle: Total PGA inuse is too high | The total PGA currently consumed by work areas is more than |
min(/Oracle by ODBC/oracle.total_pga_used,5m) * 100 / last(/Oracle by ODBC/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
Warning | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused redos available for log switching is low (risk of database downtime). |
max(/Oracle by ODBC/oracle.redo_logs_available,5m) < {$ORACLE.REDO.MIN.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Used for database discovery. |
Dependent item | oracle.db.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get CDB and No-CDB info | Gets the information about the CDB and non-CDB database on an instance. |
Database monitor | db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.db_open_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Role | The current role of the database where: 1 - SNAPSHOT STANDBY; 2 - LOGICAL STANDBY; 3 - PHYSICAL STANDBY; 4 - PRIMARY; 5 - FAR SYNC. |
Dependent item | oracle.db_role["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Log mode | The archive log mode where: 0 - NOARCHIVELOG; 1 - ARCHIVELOG; 2 - MANUAL. |
Dependent item | oracle.db_log_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode ( |
Dependent item | oracle.db_force_logging["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes Depends on:
|
| Oracle: Database '{#DBNAME}': Role has changed | The Oracle Database role has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Oracle: Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force logging mode is a very important metric for databases in |
last(/Oracle by ODBC/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by ODBC/oracle.db_log_mode["{#DBNAME}"]) = 1 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| PDB discovery | Used for the discovery of the pluggable database (PDB). |
Dependent item | oracle.pdb.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get PDB info | Gets the information about the PDB database on an instance. |
Database monitor | db.odbc.get[get_pdb_{#CON_ID}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.pdb_open_mode["{#CON_ID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"],#1)<>last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"],#2) |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Tablespace discovery | Used for the discovery of tablespaces in DBMS. |
Dependent item | oracle.tablespace.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Get tablespaces stats | Gets the statistics of the tablespace. |
Database monitor | db.odbc.get[get_{#CON_ID}tablespace{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
Dependent item | oracle.tbs_alloc_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
Dependent item | oracle.tbs_max_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles minus the free space). |
Dependent item | oracle.tbs_used_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
Dependent item | oracle.tbs_free_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
Dependent item | oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
Dependent item | oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX, percent | Used bytes/max bytes*100. |
Dependent item | oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - ONLINE; 2 - OFFLINE; 3 - READ ONLY. |
Dependent item | oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"])=2 |
Warning | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#1)<>last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Used for the discovery of the log archive. |
Dependent item | oracle.archivelog.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archivelog '{#DEST_NAME}': Get archive log info | Gets the archive log statistics. |
Database monitor | db.odbc.get[get_archivelog_{#DEST_NAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Error | Displays the error message. |
Dependent item | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived. |
Dependent item | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination where: 1 - VALID; 2 - DEFERRED; 3 - ERROR; 0 - UNKNOWN. |
Dependent item | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: |
last(/Oracle by ODBC/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM disk groups discovery | Used for discovering the ASM disk groups. |
Dependent item | oracle.asm.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM '{#DGNAME}': Get ASM stats | Gets the ASM disk group statistics. |
Database monitor | db.odbc.get[get_asm_{#DGNAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
Dependent item | oracle.asm_total_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
Dependent item | oracle.asm_free_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Used size, percent | Usage of the ASM disk group expressed in %. |
Dependent item | oracle.asm_used_pct["{#DGNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
High |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_odbc?at=release/7.2
The template is developed to monitor a single DBMS Oracle Database instance with ODBC and can monitor CDB or non-CDB installations.
Oracle Database 12c2 and newer.
Important! This integration queries the V$ACTIVE_SESSION_HISTORY dynamic performance view which is part of the Oracle Diagnostics Pack. Please make sure that you have the licence required for using this management pack.
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Create an Oracle Database user for monitoring:
In CDB installations, it is possible to monitor tablespaces from the CDB (container database) and all PDBs (pluggable databases). To do so, a common user is needed with the correct rights:
CREATE USER c##zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the c##zabbix_mon user.
ALTER USER c##zabbix_mon SET CONTAINER_DATA=ALL CONTAINER=CURRENT;
GRANT CONNECT, CREATE SESSION TO c##zabbix_mon;
GRANT SELECT_CATALOG_ROLE to c##zabbix_mon;
GRANT SELECT ON v_$instance TO c##zabbix_mon;
GRANT SELECT ON v_$database TO c##zabbix_mon;
GRANT SELECT ON v_$sysmetric TO c##zabbix_mon;
GRANT SELECT ON v_$system_parameter TO c##zabbix_mon;
GRANT SELECT ON v_$session TO c##zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO c##zabbix_mon;
GRANT SELECT ON v_$active_session_history TO c##zabbix_mon;
GRANT SELECT ON v_$osstat TO c##zabbix_mon;
GRANT SELECT ON v_$process TO c##zabbix_mon;
GRANT SELECT ON v_$datafile TO c##zabbix_mon;
GRANT SELECT ON v_$pgastat TO c##zabbix_mon;
GRANT SELECT ON v_$sgastat TO c##zabbix_mon;
GRANT SELECT ON v_$log TO c##zabbix_mon;
GRANT SELECT ON v_$archive_dest TO c##zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO c##zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup_stat TO c##zabbix_mon;
GRANT SELECT ON DBA_USERS TO c##zabbix_mon;
This is needed because the template uses CDB_* views to monitor tablespaces from the CDB and different PDBs - the monitoring user therefore needs access to the container data objects on all PDBs.
However, if you wish to monitor only a single PDB or a non-CDB instance, a local user is sufficient:
CREATE USER zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT_CATALOG_ROLE to zabbix_mon;
GRANT SELECT ON v_$instance TO zabbix_mon;
GRANT SELECT ON v_$database TO zabbix_mon;
GRANT SELECT ON v_$sysmetric TO zabbix_mon;
GRANT SELECT ON v_$system_parameter TO zabbix_mon;
GRANT SELECT ON v_$session TO zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO zabbix_mon;
GRANT SELECT ON v_$active_session_history TO zabbix_mon;
GRANT SELECT ON v_$osstat TO zabbix_mon;
GRANT SELECT ON v_$process TO zabbix_mon;
GRANT SELECT ON v_$datafile TO zabbix_mon;
GRANT SELECT ON v_$pgastat TO zabbix_mon;
GRANT SELECT ON v_$sgastat TO zabbix_mon;
GRANT SELECT ON v_$log TO zabbix_mon;
GRANT SELECT ON v_$archive_dest TO zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup_stat TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
Important! Ensure that the ODBC connection to Oracle includes the session parameter NLS_NUMERIC_CHARACTERS= '.,'. It is important for displaying the float numbers in Zabbix correctly.
Important! These privileges grant the monitoring user SELECT_CATALOG_ROLE, which, in turn, gives access to thousands of tables in the database.
This role is required to access the V$RESTORE_POINT dynamic performance view.
However, there are ways to go around this, if the SELECT_CATALOG_ROLE assigned to a monitoring user raises any security issues.
One way to do this is using pipelined table functions:
Log into your database as the SYS user or make sure that your administration user has the required privileges to execute the steps below;
Create types for the table function:
CREATE OR REPLACE TYPE zbx_mon_restore_point_row AS OBJECT (
SCN NUMBER,
DATABASE_INCARNATION# NUMBER,
GUARANTEE_FLASHBACK_DATABASE VARCHAR2(3),
STORAGE_SIZE NUMBER,
TIME TIMESTAMP(9),
RESTORE_POINT_TIME TIMESTAMP(9),
PRESERVED VARCHAR2(3),
NAME VARCHAR2(128),
PDB_RESTORE_POINT VARCHAR2(3),
CLEAN_PDB_RESTORE_POINT VARCHAR2(3),
PDB_INCARNATION# NUMBER,
REPLICATED VARCHAR2(3),
CON_ID NUMBER
);
CREATE OR REPLACE TYPE zbx_mon_restore_point_tab IS TABLE OF zbx_mon_restore_point_row;
Create the pipelined table function:
CREATE OR REPLACE FUNCTION zbx_mon_restore_point RETURN zbx_mon_restore_point_tab PIPELINED AS
BEGIN
FOR i IN (SELECT * FROM V$RESTORE_POINT) LOOP
PIPE ROW (zbx_mon_restore_point_row(i.SCN, i.DATABASE_INCARNATION#, i.GUARANTEE_FLASHBACK_DATABASE, i.STORAGE_SIZE, i.TIME, i.RESTORE_POINT_TIME, i.PRESERVED, i.NAME, i.PDB_RESTORE_POINT, i.CLEAN_PDB_RESTORE_POINT, i.PDB_INCARNATION#, i.REPLICATED, i.CON_ID));
END LOOP;
RETURN;
END;
Grant the Zabbix monitoring user the Execute privilege on the created pipelined table function and replace the monitoring user V$RESTORE_POINT view with the SYS user function (in this example, the SYS user is used to create DB types and function):
GRANT EXECUTE ON zbx_mon_restore_point TO c##zabbix_mon;
CREATE OR REPLACE VIEW c##zabbix_mon.V$RESTORE_POINT AS SELECT * FROM TABLE(SYS.zbx_mon_restore_point);
Finally, revoke the SELECT_CATALOG_ROLE and grant additional permissions that were previously covered by the SELECT_CATALOG_ROLE.
REVOKE SELECT_CATALOG_ROLE FROM c##zabbix_mon;
GRANT SELECT ON v_$pdbs TO c##zabbix_mon;
GRANT SELECT ON v_$sort_segment TO c##zabbix_mon;
GRANT SELECT ON v_$parameter TO c##zabbix_mon;
GRANT SELECT ON CDB_TABLESPACES TO c##zabbix_mon;
GRANT SELECT ON CDB_DATA_FILES TO c##zabbix_mon;
GRANT SELECT ON CDB_FREE_SPACE TO c##zabbix_mon;
GRANT SELECT ON CDB_TEMP_FILES TO c##zabbix_mon;
Note that in these examples, the monitoring user is named
c##zabbix_monand the system user -SYS. Change these example usernames to ones that are appropriate for your environment.
If this workaround does not work for you, there are more options available, such as materialized views, but look out for data refresh as V$RESTORE_POINT is a dynamic performance view.
Install the ODBC driver on Zabbix server or Zabbix proxy. See the Oracle documentation for instructions.
Configure Zabbix server or Zabbix proxy for using the Oracle environment:
This step is required only when:
installing Oracle Instant Client with .rpm packages with a version < 19.3 (if Instant Client is the only Oracle software installed on Zabbix server or Zabbix proxy);
installing Oracle Instant Client manually with .zip files.
There are multiple configuration options:
Using the LDCONFIG utility (recommended option):
To update the runtime link path, it is recommended to use the LDCONFIG utility, for example:
# sh -c "echo /opt/oracle/instantclient_19_18 > /etc/ld.so.conf.d/oracle-instantclient.conf"
# ldconfig
Using the application configuration file:
An alternative solution is to export the required variables by editing or adding a new application configuration file:
/etc/sysconfig/zabbix-server # for server
/etc/sysconfig/zabbix-proxy # for proxy
And then, adding:
# Oracle Instant Client library
LD_LIBRARY_PATH=/opt/oracle/instantclient_19_18:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
Keep in mind that the library paths will vary depending on your installation.
This is a minimal configuration example. Depending on the Oracle Instant Client version, required functionality and host operating system, a different set of additional packages might need to be installed. For more detailed configuration instructions, see the official Oracle Instant Client installation instructions for Linux.
Restart Zabbix server or Zabbix proxy.
Set the username and password in the host macros {$ORACLE.USER} and {$ORACLE.PASSWORD}.
Set the {$ORACLE.HOST}, {$ORACLE.DRIVER} and {$ORACLE.SERVICE} in the host macros.
{$ORACLE.HOST} is a hostname or IP address of the Oracle DB instance.
{$ORACLE.DRIVER} is a path to the driver location in the OS. The ODBC driver file should be found in the Instant Client directory and named libsqora.so.XX.Y.
{$ORACLE.SERVICE} is a service name to which the host will connect to. The value in this macro is important as it determines if the connection is established to a non-CDB, CDB, or PDB. If you wish to monitor tablespaces of all PDBs, you will need to set a service name that points to the CDB.
Active service names can be seen from the instance running Oracle Database with lsnrctl status.
Important! Make sure that the user created in step #1 is present on the specified service.
The "Service's TCP port state" item uses {$ORACLE.HOST} and {$ORACLE.PORT} macros to check the availability of the listener.
| Name | Description | Default |
|---|---|---|
| {$ORACLE.DRIVER} | Oracle driver path. For example: |
<Put path to oracle driver here> |
| {$ORACLE.SERVICE} | Oracle Service Name. |
<Put oracle service name here> |
| {$ORACLE.USER} | Oracle username. |
<Put your username here> |
| {$ORACLE.PASSWORD} | Oracle user's password. |
<Put your password here> |
| {$ORACLE.HOST} | The hostname or IP address of the Oracle DB instance. |
<Put oracle host here> |
| {$ORACLE.PORT} | Oracle Database TCP port. |
1521 |
| {$ORACLE.DBNAME.MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
PDB\$SEED |
| {$ORACLE.TABLESPACE.CONTAINER.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.CONTAINER.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
80 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for the Warning trigger expression. |
80 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for the Warning trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for the Warning trigger expression. |
80 |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression. |
90 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression. |
20 |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression. |
3 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of session concurrency for the Warning trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of redo logs for the Warning trigger expression. |
3 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression. |
5 |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of days before the password expires for the Warning trigger expression. |
7 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression. |
90 |
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression. |
95 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Service's TCP port state | Checks the availability of Oracle on the TCP port. |
Zabbix agent | net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}] Preprocessing
|
| Number of LISTENER processes | The number of running listener processes. |
Zabbix agent | proc.num[,,,"tnslsnr LISTENER"] Preprocessing
|
| Get instance state | Gets the state of the current instance. |
Database monitor | db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get archive log | Gets the destinations of the log archive. |
Database monitor | db.odbc.get[get_archivelog,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get ASM disk groups | Gets the ASM disk groups. |
Database monitor | db.odbc.get[get_asm,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get database | Gets the databases in the database management system (DBMS). |
Database monitor | db.odbc.get[get_db,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get PDB | Gets the pluggable database (PDB) in DBMS. |
Database monitor | db.odbc.get[get_pdb,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get tablespace | Gets tablespaces in DBMS. |
Database monitor | db.odbc.get[get_tablespace,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Version | The Oracle Server version. |
Dependent item | oracle.version Preprocessing
|
| Uptime | The Oracle instance uptime expressed in seconds. |
Dependent item | oracle.uptime Preprocessing
|
| Instance status | The status of the instance. |
Dependent item | oracle.instance_status Preprocessing
|
| Archiver state | The status of automatic archiving. |
Dependent item | oracle.archiver_state Preprocessing
|
| Instance name | The name of the instance. |
Dependent item | oracle.instance_name Preprocessing
|
| Instance hostname | The name of the host machine. |
Dependent item | oracle.instance_hostname Preprocessing
|
| Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
Dependent item | oracle.instance.role Preprocessing
|
| Get system metrics | Gets the values of the system metrics. |
Database monitor | db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Sessions limit | The user and system sessions. |
Dependent item | oracle.session_limit Preprocessing
|
| Datafiles limit | The maximum allowable number of datafiles. |
Dependent item | oracle.db_files_limit Preprocessing
|
| Processes limit | The maximum number of user processes. |
Dependent item | oracle.processes_limit Preprocessing
|
| Number of processes | The current number of user processes. |
Dependent item | oracle.processes_count Preprocessing
|
| Datafiles count | The current number of datafiles. |
Dependent item | oracle.db_files_count Preprocessing
|
| Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
Dependent item | oracle.buffer_cache_hit_ratio Preprocessing
|
| Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
Dependent item | oracle.cursor_cache_hit_ratio Preprocessing
|
| Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
Dependent item | oracle.library_cache_hit_ratio Preprocessing
|
| Shared pool free % | Free memory of a shared pool expressed in %. |
Dependent item | oracle.shared_pool_free Preprocessing
|
| Physical reads per second | Reads per second. |
Dependent item | oracle.physical_reads_rate Preprocessing
|
| Physical writes per second | Writes per second. |
Dependent item | oracle.physical_writes_rate Preprocessing
|
| Physical reads bytes per second | Read bytes per second. |
Dependent item | oracle.physical_read_bytes_rate Preprocessing
|
| Physical writes bytes per second | Write bytes per second. |
Dependent item | oracle.physical_write_bytes_rate Preprocessing
|
| Enqueue timeouts per second | Enqueue timeouts per second. |
Dependent item | oracle.enqueue_timeouts_rate Preprocessing
|
| GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
Dependent item | oracle.gc_cr_block_received_rate Preprocessing
|
| Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
Dependent item | oracle.cache_blocks_corrupt Preprocessing
|
| Global cache blocks lost | The number of lost global cache blocks. |
Dependent item | oracle.cache_blocks_lost Preprocessing
|
| Logons per second | The number of logon attempts. |
Dependent item | oracle.logons_rate Preprocessing
|
| Average active sessions | The average number of active sessions at a point in time that are either working or waiting. |
Dependent item | oracle.active_sessions Preprocessing
|
| Session count | The session count. |
Dependent item | oracle.session_count Preprocessing
|
| Active user sessions | The number of active user sessions. |
Dependent item | oracle.session_active_user Preprocessing
|
| Active background sessions | The number of active background sessions. |
Dependent item | oracle.session_active_background Preprocessing
|
| Inactive user sessions | The number of inactive user sessions. |
Dependent item | oracle.session_inactive_user Preprocessing
|
| Sessions lock rate | 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. |
Dependent item | oracle.session_lock_rate Preprocessing
|
| Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of the maximum session lock in seconds for a query using the |
Dependent item | oracle.session_long_time_locked Preprocessing
|
| Sessions concurrency | The percentage of concurrency. Concurrency is a database behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, and the rest of the transactions wait for access. When the access to a resource is locked for a long time, the concurrency grows (like the transaction queue), often leaving 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. |
Dependent item | oracle.session_concurrency_rate Preprocessing
|
| User '{$ORACLE.USER}' expire password | The number of days before the Zabbix account password expires. |
Dependent item | oracle.user_expire_password Preprocessing
|
| Active serial sessions | The number of active serial sessions. |
Dependent item | oracle.active_serial_sessions Preprocessing
|
| Active parallel sessions | The number of active parallel sessions. |
Dependent item | oracle.active_parallel_sessions Preprocessing
|
| Long table scans per second | The number of long table scans per second. A table is considered long if it is not cached and if its high water mark is greater than five blocks. |
Dependent item | oracle.long_table_scans_rate Preprocessing
|
| SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
Dependent item | oracle.service_response_time Preprocessing
|
| User rollbacks per second | The number of times that users manually issued the |
Dependent item | oracle.user_rollbacks_rate Preprocessing
|
| Total sorts per user call | The total sorts per user call. |
Dependent item | oracle.sorts_per_user_call Preprocessing
|
| Rows per sort | The average number of rows per sort for all types of sorts performed. |
Dependent item | oracle.rows_per_sort Preprocessing
|
| Disk sort per second | The number of sorts going to disk per second. |
Dependent item | oracle.disk_sorts Preprocessing
|
| Memory sorts ratio | The percentage of sorts (from |
Dependent item | oracle.memory_sorts_ratio Preprocessing
|
| Database wait time ratio | 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, etc. |
Dependent item | oracle.database_wait_time_ratio Preprocessing
|
| Database CPU time ratio | The ratio calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
Dependent item | oracle.database_cpu_time_ratio Preprocessing
|
| Temp space used | Used temporary space. |
Dependent item | oracle.temp_space_used Preprocessing
|
| PGA, Total inuse | The amount of Program Global Area (PGA) memory 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). |
Dependent item | oracle.total_pga_used Preprocessing
|
| PGA, Aggregate target parameter | The current value of the |
Dependent item | oracle.pga_target Preprocessing
|
| PGA, Total allocated | The current amount of the PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the |
Dependent item | oracle.total_pga_allocated Preprocessing
|
| PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the OS. |
Dependent item | oracle.total_pga_freeable Preprocessing
|
| PGA, Global memory bound | The maximum size of a work area executed in automatic mode. |
Dependent item | oracle.pga_global_bound Preprocessing
|
| FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
Dependent item | oracle.fra_space_limit Preprocessing
|
| FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
Dependent item | oracle.fra_space_used Preprocessing
|
| FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low-priority files from the FRA. |
Dependent item | oracle.fra_space_reclaimable Preprocessing
|
| FRA, Number of files | The number of files in the FRA. |
Dependent item | oracle.fra_number_of_files Preprocessing
|
| FRA, Usable space in % | Percentage of space usable in the FRA. |
Dependent item | oracle.fra_usable_pct Preprocessing
|
| FRA, Number of restore points | Number of restore points in the FRA. |
Dependent item | oracle.fra_restore_point Preprocessing
|
| SGA, java pool | The memory is allocated from the Java pool. |
Dependent item | oracle.sga_java_pool Preprocessing
|
| SGA, large pool | The memory is allocated from a large pool. |
Dependent item | oracle.sga_large_pool Preprocessing
|
| SGA, shared pool | The memory is allocated from a shared pool. |
Dependent item | oracle.sga_shared_pool Preprocessing
|
| SGA, log buffer | The number of bytes allocated for the redo log buffer. |
Dependent item | oracle.sga_log_buffer Preprocessing
|
| SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
Dependent item | oracle.sga_fixed Preprocessing
|
| SGA, buffer cache | The size of standard block cache. |
Dependent item | oracle.sga_buffer_cache Preprocessing
|
| Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
Dependent item | oracle.redo_logs_available Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Port {$ORACLE.PORT} is unavailable | The TCP port of the Oracle Server service is currently unavailable. |
max(/Oracle by ODBC/net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}],#3)=0 and max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)>0 |
Disaster | |
| Oracle: LISTENER process is not running | The Oracle listener process is not running. |
max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)=0 |
Disaster | |
| Oracle: Version has changed | The Oracle Database version has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.version,#1)<>last(/Oracle by ODBC/oracle.version,#2) and length(last(/Oracle by ODBC/oracle.version))>0 |
Info | Manual close: Yes |
| Oracle: Host has been restarted | Uptime is less than 10 minutes. |
last(/Oracle by ODBC/oracle.uptime)<10m |
Info | Manual close: Yes |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by ODBC/oracle.uptime,5m)=1 |
Warning | Depends on:
|
| Oracle: Instance name has changed | An Oracle Database instance name has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.instance_name,#1)<>last(/Oracle by ODBC/oracle.instance_name,#2) and length(last(/Oracle by ODBC/oracle.instance_name))>0 |
Info | Manual close: Yes |
| Oracle: Instance hostname has changed | An Oracle Database instance hostname has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.instance_hostname,#1)<>last(/Oracle by ODBC/oracle.instance_hostname,#2) and length(last(/Oracle by ODBC/oracle.instance_hostname))>0 |
Info | Manual close: Yes |
| Oracle: Too many active processes | Active processes are using more than |
min(/Oracle by ODBC/oracle.processes_count,5m) * 100 / last(/Oracle by ODBC/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
Warning | |
| Oracle: Too many database files | The number of datafiles is higher than |
min(/Oracle by ODBC/oracle.db_files_count,5m) * 100 / last(/Oracle by ODBC/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
Warning | |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than |
max(/Oracle by ODBC/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
Warning | |
| Oracle: Too many active sessions | Active sessions are using more than |
min(/Oracle by ODBC/oracle.session_count,5m) * 100 / last(/Oracle by ODBC/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
Warning | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds |
min(/Oracle by ODBC/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding |
min(/Oracle by ODBC/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too high database concurrency | The concurrency rate exceeds |
min(/Oracle by ODBC/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
Warning | |
| Oracle: Zabbix account will expire soon | The password for the Zabbix user in the database expires soon. |
last(/Oracle by ODBC/oracle.user_expire_password) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
Warning | |
| Oracle: Total PGA inuse is too high | The total PGA currently consumed by work areas is more than |
min(/Oracle by ODBC/oracle.total_pga_used,5m) * 100 / last(/Oracle by ODBC/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
Warning | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused redos available for log switching is low (risk of database downtime). |
max(/Oracle by ODBC/oracle.redo_logs_available,5m) < {$ORACLE.REDO.MIN.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Used for database discovery. |
Dependent item | oracle.db.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get CDB and No-CDB info | Gets the information about the CDB and non-CDB database on an instance. |
Database monitor | db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.db_open_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Role | The current role of the database where: 1 - SNAPSHOT STANDBY; 2 - LOGICAL STANDBY; 3 - PHYSICAL STANDBY; 4 - PRIMARY; 5 - FAR SYNC. |
Dependent item | oracle.db_role["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Log mode | The archive log mode where: 0 - NOARCHIVELOG; 1 - ARCHIVELOG; 2 - MANUAL. |
Dependent item | oracle.db_log_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode ( |
Dependent item | oracle.db_force_logging["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes Depends on:
|
| Oracle: Database '{#DBNAME}': Role has changed | The Oracle Database role has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Oracle: Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force logging mode is a very important metric for databases in |
last(/Oracle by ODBC/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by ODBC/oracle.db_log_mode["{#DBNAME}"]) = 1 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| PDB discovery | Used for the discovery of the pluggable database (PDB). |
Dependent item | oracle.pdb.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get PDB info | Gets the information about the PDB database on an instance. |
Database monitor | db.odbc.get[get_pdb_{#CON_ID}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.pdb_open_mode["{#CON_ID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"],#1)<>last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"],#2) |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Tablespace discovery | Used for the discovery of tablespaces in DBMS. |
Dependent item | oracle.tablespace.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Get tablespaces stats | Gets the statistics of the tablespace. |
Database monitor | db.odbc.get[get_{#CON_ID}tablespace{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
Dependent item | oracle.tbs_alloc_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
Dependent item | oracle.tbs_max_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles minus the free space). |
Dependent item | oracle.tbs_used_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
Dependent item | oracle.tbs_free_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
Dependent item | oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
Dependent item | oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX, percent | Used bytes/max bytes*100. |
Dependent item | oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - ONLINE; 2 - OFFLINE; 3 - READ ONLY. |
Dependent item | oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"])=2 |
Warning | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#1)<>last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Used for the discovery of the log archive. |
Dependent item | oracle.archivelog.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archivelog '{#DEST_NAME}': Get archive log info | Gets the archive log statistics. |
Database monitor | db.odbc.get[get_archivelog_{#DEST_NAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Error | Displays the error message. |
Dependent item | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived. |
Dependent item | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination where: 1 - VALID; 2 - DEFERRED; 3 - ERROR; 0 - UNKNOWN. |
Dependent item | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: |
last(/Oracle by ODBC/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM disk groups discovery | Used for discovering the ASM disk groups. |
Dependent item | oracle.asm.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM '{#DGNAME}': Get ASM stats | Gets the ASM disk group statistics. |
Database monitor | db.odbc.get[get_asm_{#DGNAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
Dependent item | oracle.asm_total_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
Dependent item | oracle.asm_free_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Used size, percent | Usage of the ASM disk group expressed in %. |
Dependent item | oracle.asm_used_pct["{#DGNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
High |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_odbc?at=release/7.0
The template is developed to monitor a single DBMS Oracle Database instance with ODBC and can monitor CDB or non-CDB installations.
Oracle Database 12c2 and newer.
Important! This integration queries the V$ACTIVE_SESSION_HISTORY dynamic performance view which is part of the Oracle Diagnostics Pack. Please make sure that you have the licence required for using this management pack.
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Create an Oracle Database user for monitoring:
In CDB installations, it is possible to monitor tablespaces from the CDB (container database) and all PDBs (pluggable databases). To do so, a common user is needed with the correct rights:
CREATE USER c##zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the c##zabbix_mon user.
ALTER USER c##zabbix_mon SET CONTAINER_DATA=ALL CONTAINER=CURRENT;
GRANT CONNECT, CREATE SESSION TO c##zabbix_mon;
GRANT SELECT_CATALOG_ROLE to c##zabbix_mon;
GRANT SELECT ON v_$instance TO c##zabbix_mon;
GRANT SELECT ON v_$database TO c##zabbix_mon;
GRANT SELECT ON v_$sysmetric TO c##zabbix_mon;
GRANT SELECT ON v_$system_parameter TO c##zabbix_mon;
GRANT SELECT ON v_$session TO c##zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO c##zabbix_mon;
GRANT SELECT ON v_$active_session_history TO c##zabbix_mon;
GRANT SELECT ON v_$osstat TO c##zabbix_mon;
GRANT SELECT ON v_$process TO c##zabbix_mon;
GRANT SELECT ON v_$datafile TO c##zabbix_mon;
GRANT SELECT ON v_$pgastat TO c##zabbix_mon;
GRANT SELECT ON v_$sgastat TO c##zabbix_mon;
GRANT SELECT ON v_$log TO c##zabbix_mon;
GRANT SELECT ON v_$archive_dest TO c##zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO c##zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup_stat TO c##zabbix_mon;
GRANT SELECT ON DBA_USERS TO c##zabbix_mon;
This is needed because the template uses CDB_* views to monitor tablespaces from the CDB and different PDBs - the monitoring user therefore needs access to the container data objects on all PDBs.
However, if you wish to monitor only a single PDB or a non-CDB instance, a local user is sufficient:
CREATE USER zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT_CATALOG_ROLE to zabbix_mon;
GRANT SELECT ON v_$instance TO zabbix_mon;
GRANT SELECT ON v_$database TO zabbix_mon;
GRANT SELECT ON v_$sysmetric TO zabbix_mon;
GRANT SELECT ON v_$system_parameter TO zabbix_mon;
GRANT SELECT ON v_$session TO zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO zabbix_mon;
GRANT SELECT ON v_$active_session_history TO zabbix_mon;
GRANT SELECT ON v_$osstat TO zabbix_mon;
GRANT SELECT ON v_$process TO zabbix_mon;
GRANT SELECT ON v_$datafile TO zabbix_mon;
GRANT SELECT ON v_$pgastat TO zabbix_mon;
GRANT SELECT ON v_$sgastat TO zabbix_mon;
GRANT SELECT ON v_$log TO zabbix_mon;
GRANT SELECT ON v_$archive_dest TO zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup_stat TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
Important! Ensure that the ODBC connection to Oracle includes the session parameter NLS_NUMERIC_CHARACTERS= '.,'. It is important for displaying the float numbers in Zabbix correctly.
Important! These privileges grant the monitoring user SELECT_CATALOG_ROLE, which, in turn, gives access to thousands of tables in the database.
This role is required to access the V$RESTORE_POINT dynamic performance view.
However, there are ways to go around this, if the SELECT_CATALOG_ROLE assigned to a monitoring user raises any security issues.
One way to do this is using pipelined table functions:
Log into your database as the SYS user or make sure that your administration user has the required privileges to execute the steps below;
Create types for the table function:
CREATE OR REPLACE TYPE zbx_mon_restore_point_row AS OBJECT (
SCN NUMBER,
DATABASE_INCARNATION# NUMBER,
GUARANTEE_FLASHBACK_DATABASE VARCHAR2(3),
STORAGE_SIZE NUMBER,
TIME TIMESTAMP(9),
RESTORE_POINT_TIME TIMESTAMP(9),
PRESERVED VARCHAR2(3),
NAME VARCHAR2(128),
PDB_RESTORE_POINT VARCHAR2(3),
CLEAN_PDB_RESTORE_POINT VARCHAR2(3),
PDB_INCARNATION# NUMBER,
REPLICATED VARCHAR2(3),
CON_ID NUMBER
);
CREATE OR REPLACE TYPE zbx_mon_restore_point_tab IS TABLE OF zbx_mon_restore_point_row;
Create the pipelined table function:
CREATE OR REPLACE FUNCTION zbx_mon_restore_point RETURN zbx_mon_restore_point_tab PIPELINED AS
BEGIN
FOR i IN (SELECT * FROM V$RESTORE_POINT) LOOP
PIPE ROW (zbx_mon_restore_point_row(i.SCN, i.DATABASE_INCARNATION#, i.GUARANTEE_FLASHBACK_DATABASE, i.STORAGE_SIZE, i.TIME, i.RESTORE_POINT_TIME, i.PRESERVED, i.NAME, i.PDB_RESTORE_POINT, i.CLEAN_PDB_RESTORE_POINT, i.PDB_INCARNATION#, i.REPLICATED, i.CON_ID));
END LOOP;
RETURN;
END;
Grant the Zabbix monitoring user the Execute privilege on the created pipelined table function and replace the monitoring user V$RESTORE_POINT view with the SYS user function (in this example, the SYS user is used to create DB types and function):
GRANT EXECUTE ON zbx_mon_restore_point TO c##zabbix_mon;
CREATE OR REPLACE VIEW c##zabbix_mon.V$RESTORE_POINT AS SELECT * FROM TABLE(SYS.zbx_mon_restore_point);
Finally, revoke the SELECT_CATALOG_ROLE and grant additional permissions that were previously covered by the SELECT_CATALOG_ROLE.
REVOKE SELECT_CATALOG_ROLE FROM c##zabbix_mon;
GRANT SELECT ON v_$pdbs TO c##zabbix_mon;
GRANT SELECT ON v_$sort_segment TO c##zabbix_mon;
GRANT SELECT ON v_$parameter TO c##zabbix_mon;
GRANT SELECT ON CDB_TABLESPACES TO c##zabbix_mon;
GRANT SELECT ON CDB_DATA_FILES TO c##zabbix_mon;
GRANT SELECT ON CDB_FREE_SPACE TO c##zabbix_mon;
GRANT SELECT ON CDB_TEMP_FILES TO c##zabbix_mon;
Note that in these examples, the monitoring user is named
c##zabbix_monand the system user -SYS. Change these example usernames to ones that are appropriate for your environment.
If this workaround does not work for you, there are more options available, such as materialized views, but look out for data refresh as V$RESTORE_POINT is a dynamic performance view.
Install the ODBC driver on Zabbix server or Zabbix proxy. See the Oracle documentation for instructions.
Configure Zabbix server or Zabbix proxy for using the Oracle environment:
This step is required only when:
installing Oracle Instant Client with .rpm packages with a version < 19.3 (if Instant Client is the only Oracle software installed on Zabbix server or Zabbix proxy);
installing Oracle Instant Client manually with .zip files.
There are multiple configuration options:
Using the LDCONFIG utility (recommended option):
To update the runtime link path, it is recommended to use the LDCONFIG utility, for example:
# sh -c "echo /opt/oracle/instantclient_19_18 > /etc/ld.so.conf.d/oracle-instantclient.conf"
# ldconfig
Using the application configuration file:
An alternative solution is to export the required variables by editing or adding a new application configuration file:
/etc/sysconfig/zabbix-server # for server
/etc/sysconfig/zabbix-proxy # for proxy
And then, adding:
# Oracle Instant Client library
LD_LIBRARY_PATH=/opt/oracle/instantclient_19_18:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
Keep in mind that the library paths will vary depending on your installation.
This is a minimal configuration example. Depending on the Oracle Instant Client version, required functionality and host operating system, a different set of additional packages might need to be installed. For more detailed configuration instructions, see the official Oracle Instant Client installation instructions for Linux.
Restart Zabbix server or Zabbix proxy.
Set the username and password in the host macros {$ORACLE.USER} and {$ORACLE.PASSWORD}.
Set the {$ORACLE.HOST}, {$ORACLE.DRIVER} and {$ORACLE.SERVICE} in the host macros.
{$ORACLE.HOST} is a hostname or IP address of the Oracle DB instance.
{$ORACLE.DRIVER} is a path to the driver location in the OS. The ODBC driver file should be found in the Instant Client directory and named libsqora.so.XX.Y.
{$ORACLE.SERVICE} is a service name to which the host will connect to. The value in this macro is important as it determines if the connection is established to a non-CDB, CDB, or PDB. If you wish to monitor tablespaces of all PDBs, you will need to set a service name that points to the CDB.
Active service names can be seen from the instance running Oracle Database with lsnrctl status.
Important! Make sure that the user created in step #1 is present on the specified service.
The "Service's TCP port state" item uses {$ORACLE.HOST} and {$ORACLE.PORT} macros to check the availability of the listener.
| Name | Description | Default |
|---|---|---|
| {$ORACLE.DRIVER} | Oracle driver path. For example: |
<Put path to oracle driver here> |
| {$ORACLE.SERVICE} | Oracle Service Name. |
<Put oracle service name here> |
| {$ORACLE.USER} | Oracle username. |
<Put your username here> |
| {$ORACLE.PASSWORD} | Oracle user's password. |
<Put your password here> |
| {$ORACLE.HOST} | The hostname or IP address of the Oracle DB instance. |
<Put oracle host here> |
| {$ORACLE.PORT} | Oracle Database TCP port. |
1521 |
| {$ORACLE.DBNAME.MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
PDB\$SEED |
| {$ORACLE.TABLESPACE.CONTAINER.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.CONTAINER.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
80 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for the Warning trigger expression. |
80 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for the Warning trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for the Warning trigger expression. |
80 |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression. |
90 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression. |
20 |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression. |
3 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of session concurrency for the Warning trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of redo logs for the Warning trigger expression. |
3 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression. |
5 |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of days before the password expires for the Warning trigger expression. |
7 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression. |
90 |
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression. |
95 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Service's TCP port state | Checks the availability of Oracle on the TCP port. |
Zabbix agent | net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}] Preprocessing
|
| Number of LISTENER processes | The number of running listener processes. |
Zabbix agent | proc.num[,,,"tnslsnr LISTENER"] Preprocessing
|
| Get instance state | Gets the state of the current instance. |
Database monitor | db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get archive log | Gets the destinations of the log archive. |
Database monitor | db.odbc.get[get_archivelog,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get ASM disk groups | Gets the ASM disk groups. |
Database monitor | db.odbc.get[get_asm,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get database | Gets the databases in the database management system (DBMS). |
Database monitor | db.odbc.get[get_db,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get PDB | Gets the pluggable database (PDB) in DBMS. |
Database monitor | db.odbc.get[get_pdb,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Get tablespace | Gets tablespaces in DBMS. |
Database monitor | db.odbc.get[get_tablespace,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Version | The Oracle Server version. |
Dependent item | oracle.version Preprocessing
|
| Uptime | The Oracle instance uptime expressed in seconds. |
Dependent item | oracle.uptime Preprocessing
|
| Instance status | The status of the instance. |
Dependent item | oracle.instance_status Preprocessing
|
| Archiver state | The status of automatic archiving. |
Dependent item | oracle.archiver_state Preprocessing
|
| Instance name | The name of the instance. |
Dependent item | oracle.instance_name Preprocessing
|
| Instance hostname | The name of the host machine. |
Dependent item | oracle.instance_hostname Preprocessing
|
| Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
Dependent item | oracle.instance.role Preprocessing
|
| Get system metrics | Gets the values of the system metrics. |
Database monitor | db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Sessions limit | The user and system sessions. |
Dependent item | oracle.session_limit Preprocessing
|
| Datafiles limit | The maximum allowable number of datafiles. |
Dependent item | oracle.db_files_limit Preprocessing
|
| Processes limit | The maximum number of user processes. |
Dependent item | oracle.processes_limit Preprocessing
|
| Number of processes | The current number of user processes. |
Dependent item | oracle.processes_count Preprocessing
|
| Datafiles count | The current number of datafiles. |
Dependent item | oracle.db_files_count Preprocessing
|
| Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
Dependent item | oracle.buffer_cache_hit_ratio Preprocessing
|
| Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
Dependent item | oracle.cursor_cache_hit_ratio Preprocessing
|
| Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
Dependent item | oracle.library_cache_hit_ratio Preprocessing
|
| Shared pool free % | Free memory of a shared pool expressed in %. |
Dependent item | oracle.shared_pool_free Preprocessing
|
| Physical reads per second | Reads per second. |
Dependent item | oracle.physical_reads_rate Preprocessing
|
| Physical writes per second | Writes per second. |
Dependent item | oracle.physical_writes_rate Preprocessing
|
| Physical reads bytes per second | Read bytes per second. |
Dependent item | oracle.physical_read_bytes_rate Preprocessing
|
| Physical writes bytes per second | Write bytes per second. |
Dependent item | oracle.physical_write_bytes_rate Preprocessing
|
| Enqueue timeouts per second | Enqueue timeouts per second. |
Dependent item | oracle.enqueue_timeouts_rate Preprocessing
|
| GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
Dependent item | oracle.gc_cr_block_received_rate Preprocessing
|
| Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
Dependent item | oracle.cache_blocks_corrupt Preprocessing
|
| Global cache blocks lost | The number of lost global cache blocks. |
Dependent item | oracle.cache_blocks_lost Preprocessing
|
| Logons per second | The number of logon attempts. |
Dependent item | oracle.logons_rate Preprocessing
|
| Average active sessions | The average number of active sessions at a point in time that are either working or waiting. |
Dependent item | oracle.active_sessions Preprocessing
|
| Session count | The session count. |
Dependent item | oracle.session_count Preprocessing
|
| Active user sessions | The number of active user sessions. |
Dependent item | oracle.session_active_user Preprocessing
|
| Active background sessions | The number of active background sessions. |
Dependent item | oracle.session_active_background Preprocessing
|
| Inactive user sessions | The number of inactive user sessions. |
Dependent item | oracle.session_inactive_user Preprocessing
|
| Sessions lock rate | 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. |
Dependent item | oracle.session_lock_rate Preprocessing
|
| Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of the maximum session lock in seconds for a query using the |
Dependent item | oracle.session_long_time_locked Preprocessing
|
| Sessions concurrency | The percentage of concurrency. Concurrency is a database behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, and the rest of the transactions wait for access. When the access to a resource is locked for a long time, the concurrency grows (like the transaction queue), often leaving 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. |
Dependent item | oracle.session_concurrency_rate Preprocessing
|
| User '{$ORACLE.USER}' expire password | The number of days before the Zabbix account password expires. |
Dependent item | oracle.user_expire_password Preprocessing
|
| Active serial sessions | The number of active serial sessions. |
Dependent item | oracle.active_serial_sessions Preprocessing
|
| Active parallel sessions | The number of active parallel sessions. |
Dependent item | oracle.active_parallel_sessions Preprocessing
|
| Long table scans per second | The number of long table scans per second. A table is considered long if it is not cached and if its high water mark is greater than five blocks. |
Dependent item | oracle.long_table_scans_rate Preprocessing
|
| SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
Dependent item | oracle.service_response_time Preprocessing
|
| User rollbacks per second | The number of times that users manually issued the |
Dependent item | oracle.user_rollbacks_rate Preprocessing
|
| Total sorts per user call | The total sorts per user call. |
Dependent item | oracle.sorts_per_user_call Preprocessing
|
| Rows per sort | The average number of rows per sort for all types of sorts performed. |
Dependent item | oracle.rows_per_sort Preprocessing
|
| Disk sort per second | The number of sorts going to disk per second. |
Dependent item | oracle.disk_sorts Preprocessing
|
| Memory sorts ratio | The percentage of sorts (from |
Dependent item | oracle.memory_sorts_ratio Preprocessing
|
| Database wait time ratio | 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, etc. |
Dependent item | oracle.database_wait_time_ratio Preprocessing
|
| Database CPU time ratio | The ratio calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
Dependent item | oracle.database_cpu_time_ratio Preprocessing
|
| Temp space used | Used temporary space. |
Dependent item | oracle.temp_space_used Preprocessing
|
| PGA, Total inuse | The amount of Program Global Area (PGA) memory 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). |
Dependent item | oracle.total_pga_used Preprocessing
|
| PGA, Aggregate target parameter | The current value of the |
Dependent item | oracle.pga_target Preprocessing
|
| PGA, Total allocated | The current amount of the PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the |
Dependent item | oracle.total_pga_allocated Preprocessing
|
| PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the OS. |
Dependent item | oracle.total_pga_freeable Preprocessing
|
| PGA, Global memory bound | The maximum size of a work area executed in automatic mode. |
Dependent item | oracle.pga_global_bound Preprocessing
|
| FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
Dependent item | oracle.fra_space_limit Preprocessing
|
| FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
Dependent item | oracle.fra_space_used Preprocessing
|
| FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low-priority files from the FRA. |
Dependent item | oracle.fra_space_reclaimable Preprocessing
|
| FRA, Number of files | The number of files in the FRA. |
Dependent item | oracle.fra_number_of_files Preprocessing
|
| FRA, Usable space in % | Percentage of space usable in the FRA. |
Dependent item | oracle.fra_usable_pct Preprocessing
|
| FRA, Number of restore points | Number of restore points in the FRA. |
Dependent item | oracle.fra_restore_point Preprocessing
|
| SGA, java pool | The memory is allocated from the Java pool. |
Dependent item | oracle.sga_java_pool Preprocessing
|
| SGA, large pool | The memory is allocated from a large pool. |
Dependent item | oracle.sga_large_pool Preprocessing
|
| SGA, shared pool | The memory is allocated from a shared pool. |
Dependent item | oracle.sga_shared_pool Preprocessing
|
| SGA, log buffer | The number of bytes allocated for the redo log buffer. |
Dependent item | oracle.sga_log_buffer Preprocessing
|
| SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
Dependent item | oracle.sga_fixed Preprocessing
|
| SGA, buffer cache | The size of standard block cache. |
Dependent item | oracle.sga_buffer_cache Preprocessing
|
| Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
Dependent item | oracle.redo_logs_available Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Port {$ORACLE.PORT} is unavailable | The TCP port of the Oracle Server service is currently unavailable. |
max(/Oracle by ODBC/net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}],#3)=0 and max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)>0 |
Disaster | |
| Oracle: LISTENER process is not running | The Oracle listener process is not running. |
max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)=0 |
Disaster | |
| Oracle: Version has changed | The Oracle Database version has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.version,#1)<>last(/Oracle by ODBC/oracle.version,#2) and length(last(/Oracle by ODBC/oracle.version))>0 |
Info | Manual close: Yes |
| Oracle: Host has been restarted | Uptime is less than 10 minutes. |
last(/Oracle by ODBC/oracle.uptime)<10m |
Info | Manual close: Yes |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by ODBC/oracle.uptime,5m)=1 |
Warning | Depends on:
|
| Oracle: Instance name has changed | An Oracle Database instance name has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.instance_name,#1)<>last(/Oracle by ODBC/oracle.instance_name,#2) and length(last(/Oracle by ODBC/oracle.instance_name))>0 |
Info | Manual close: Yes |
| Oracle: Instance hostname has changed | An Oracle Database instance hostname has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.instance_hostname,#1)<>last(/Oracle by ODBC/oracle.instance_hostname,#2) and length(last(/Oracle by ODBC/oracle.instance_hostname))>0 |
Info | Manual close: Yes |
| Oracle: Too many active processes | Active processes are using more than |
min(/Oracle by ODBC/oracle.processes_count,5m) * 100 / last(/Oracle by ODBC/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
Warning | |
| Oracle: Too many database files | The number of datafiles is higher than |
min(/Oracle by ODBC/oracle.db_files_count,5m) * 100 / last(/Oracle by ODBC/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
Warning | |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than |
max(/Oracle by ODBC/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
Warning | |
| Oracle: Too many active sessions | Active sessions are using more than |
min(/Oracle by ODBC/oracle.session_count,5m) * 100 / last(/Oracle by ODBC/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
Warning | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds |
min(/Oracle by ODBC/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding |
min(/Oracle by ODBC/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too high database concurrency | The concurrency rate exceeds |
min(/Oracle by ODBC/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
Warning | |
| Oracle: Zabbix account will expire soon | The password for the Zabbix user in the database expires soon. |
last(/Oracle by ODBC/oracle.user_expire_password) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
Warning | |
| Oracle: Total PGA inuse is too high | The total PGA currently consumed by work areas is more than |
min(/Oracle by ODBC/oracle.total_pga_used,5m) * 100 / last(/Oracle by ODBC/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
Warning | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused redos available for log switching is low (risk of database downtime). |
max(/Oracle by ODBC/oracle.redo_logs_available,5m) < {$ORACLE.REDO.MIN.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Used for database discovery. |
Dependent item | oracle.db.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get CDB and No-CDB info | Gets the information about the CDB and non-CDB database on an instance. |
Database monitor | db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.db_open_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Role | The current role of the database where: 1 - SNAPSHOT STANDBY; 2 - LOGICAL STANDBY; 3 - PHYSICAL STANDBY; 4 - PRIMARY; 5 - FAR SYNC. |
Dependent item | oracle.db_role["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Log mode | The archive log mode where: 0 - NOARCHIVELOG; 1 - ARCHIVELOG; 2 - MANUAL. |
Dependent item | oracle.db_log_mode["{#DBNAME}"] Preprocessing
|
| Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode ( |
Dependent item | oracle.db_force_logging["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes Depends on:
|
| Oracle: Database '{#DBNAME}': Role has changed | The Oracle Database role has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Oracle: Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force logging mode is a very important metric for databases in |
last(/Oracle by ODBC/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by ODBC/oracle.db_log_mode["{#DBNAME}"]) = 1 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| PDB discovery | Used for the discovery of the pluggable database (PDB). |
Dependent item | oracle.pdb.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database '{#DBNAME}': Get PDB info | Gets the information about the PDB database on an instance. |
Database monitor | db.odbc.get[get_pdb_{#CON_ID}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.pdb_open_mode["{#CON_ID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"])=1 |
Warning | |
| Oracle: Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"],#1)<>last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"],#2) |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Tablespace discovery | Used for the discovery of tablespaces in DBMS. |
Dependent item | oracle.tablespace.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Get tablespaces stats | Gets the statistics of the tablespace. |
Database monitor | db.odbc.get[get_{#CON_ID}tablespace{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
Dependent item | oracle.tbs_alloc_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
Dependent item | oracle.tbs_max_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles minus the free space). |
Dependent item | oracle.tbs_used_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
Dependent item | oracle.tbs_free_bytes["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
Dependent item | oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
Dependent item | oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX, percent | Used bytes/max bytes*100. |
Dependent item | oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| '{#CON_NAME}' TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - ONLINE; 2 - OFFLINE; 3 - READ ONLY. |
Dependent item | oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} |
Warning | Depends on:
|
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} |
High | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"])=2 |
Warning | |
| Oracle: '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#1)<>last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Used for the discovery of the log archive. |
Dependent item | oracle.archivelog.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archivelog '{#DEST_NAME}': Get archive log info | Gets the archive log statistics. |
Database monitor | db.odbc.get[get_archivelog_{#DEST_NAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Error | Displays the error message. |
Dependent item | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived. |
Dependent item | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination where: 1 - VALID; 2 - DEFERRED; 3 - ERROR; 0 - UNKNOWN. |
Dependent item | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: |
last(/Oracle by ODBC/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM disk groups discovery | Used for discovering the ASM disk groups. |
Dependent item | oracle.asm.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM '{#DGNAME}': Get ASM stats | Gets the ASM disk group statistics. |
Database monitor | db.odbc.get[get_asm_{#DGNAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
Dependent item | oracle.asm_total_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
Dependent item | oracle.asm_free_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Used size, percent | Usage of the ASM disk group expressed in %. |
Dependent item | oracle.asm_used_pct["{#DGNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle: ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
High |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_odbc?at=release/6.4
The template is developed to monitor a single DBMS Oracle Database instance with ODBC and can monitor CDB or non-CDB installations.
Oracle Database 12c2 and newer.
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Create an Oracle Database user for monitoring:
In CDB installations, it is possible to monitor tablespaces from the CDB (container database) and all PDBs (pluggable databases). To do so, a common user is needed with the correct rights:
CREATE USER c##zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the c##zabbix_mon user.
ALTER USER c##zabbix_mon SET CONTAINER_DATA=ALL CONTAINER=CURRENT;
GRANT CONNECT, CREATE SESSION TO c##zabbix_mon;
GRANT SELECT_CATALOG_ROLE to c##zabbix_mon;
GRANT SELECT ON v_$instance TO c##zabbix_mon;
GRANT SELECT ON v_$database TO c##zabbix_mon;
GRANT SELECT ON v_$sysmetric TO c##zabbix_mon;
GRANT SELECT ON v_$system_parameter TO c##zabbix_mon;
GRANT SELECT ON v_$session TO c##zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO c##zabbix_mon;
GRANT SELECT ON v_$active_session_history TO c##zabbix_mon;
GRANT SELECT ON v_$osstat TO c##zabbix_mon;
GRANT SELECT ON v_$process TO c##zabbix_mon;
GRANT SELECT ON v_$datafile TO c##zabbix_mon;
GRANT SELECT ON v_$pgastat TO c##zabbix_mon;
GRANT SELECT ON v_$sgastat TO c##zabbix_mon;
GRANT SELECT ON v_$log TO c##zabbix_mon;
GRANT SELECT ON v_$archive_dest TO c##zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO c##zabbix_mon;
GRANT SELECT ON DBA_USERS TO c##zabbix_mon;
This is needed because the template uses CDB_* views to monitor tablespaces from the CDB and different PDBs - the monitoring user therefore needs access to the container data objects on all PDBs.
However, if you wish to monitor only a single PDB or a non-CDB instance, a local user is sufficient:
CREATE USER zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT_CATALOG_ROLE to zabbix_mon;
GRANT SELECT ON v_$instance TO zabbix_mon;
GRANT SELECT ON v_$database TO zabbix_mon;
GRANT SELECT ON v_$sysmetric TO zabbix_mon;
GRANT SELECT ON v_$system_parameter TO zabbix_mon;
GRANT SELECT ON v_$session TO zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO zabbix_mon;
GRANT SELECT ON v_$active_session_history TO zabbix_mon;
GRANT SELECT ON v_$osstat TO zabbix_mon;
GRANT SELECT ON v_$process TO zabbix_mon;
GRANT SELECT ON v_$datafile TO zabbix_mon;
GRANT SELECT ON v_$pgastat TO zabbix_mon;
GRANT SELECT ON v_$sgastat TO zabbix_mon;
GRANT SELECT ON v_$log TO zabbix_mon;
GRANT SELECT ON v_$archive_dest TO zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
Important! Ensure that the ODBC connection to Oracle includes the session parameter NLS_NUMERIC_CHARACTERS= '.,'. It is important for displaying the float numbers in Zabbix correctly.
Important! These privileges grant the monitoring user SELECT_CATALOG_ROLE, which, in turn, gives access to thousands of tables in the database.
This role is required to access the V$RESTORE_POINT dynamic performance view.
However, there are ways to go around this, if the SELECT_CATALOG_ROLE assigned to a monitoring user raises any security issues.
One way to do this is using pipelined table functions:
Log into your database as the SYS user or make sure that your administration user has the required privileges to execute the steps below;
Create types for the table function:
CREATE OR REPLACE TYPE zbx_mon_restore_point_row AS OBJECT (
SCN NUMBER,
DATABASE_INCARNATION# NUMBER,
GUARANTEE_FLASHBACK_DATABASE VARCHAR2(3),
STORAGE_SIZE NUMBER,
TIME TIMESTAMP(9),
RESTORE_POINT_TIME TIMESTAMP(9),
PRESERVED VARCHAR2(3),
NAME VARCHAR2(128),
PDB_RESTORE_POINT VARCHAR2(3),
CLEAN_PDB_RESTORE_POINT VARCHAR2(3),
PDB_INCARNATION# NUMBER,
REPLICATED VARCHAR2(3),
CON_ID NUMBER
);
CREATE OR REPLACE TYPE zbx_mon_restore_point_tab IS TABLE OF zbx_mon_restore_point_row;
Create the pipelined table function:
CREATE OR REPLACE FUNCTION zbx_mon_restore_point RETURN zbx_mon_restore_point_tab PIPELINED AS
BEGIN
FOR i IN (SELECT * FROM V$RESTORE_POINT) LOOP
PIPE ROW (zbx_mon_restore_point_row(i.SCN, i.DATABASE_INCARNATION#, i.GUARANTEE_FLASHBACK_DATABASE, i.STORAGE_SIZE, i.TIME, i.RESTORE_POINT_TIME, i.PRESERVED, i.NAME, i.PDB_RESTORE_POINT, i.CLEAN_PDB_RESTORE_POINT, i.PDB_INCARNATION#, i.REPLICATED, i.CON_ID));
END LOOP;
RETURN;
END;
Grant the Zabbix monitoring user the Execute privilege on the created pipelined table function and replace the monitoring user V$RESTORE_POINT view with the SYS user function (in this example, the SYS user is used to create DB types and function):
GRANT EXECUTE ON zbx_mon_restore_point TO c##zabbix_mon;
CREATE OR REPLACE VIEW c##zabbix_mon.V$RESTORE_POINT AS SELECT * FROM TABLE(SYS.zbx_mon_restore_point);
Finally, revoke the SELECT_CATALOG_ROLE and grant additional permissions that were previously covered by the SELECT_CATALOG_ROLE.
REVOKE SELECT_CATALOG_ROLE FROM c##zabbix_mon;
GRANT SELECT ON v_$pdbs TO c##zabbix_mon;
GRANT SELECT ON v_$sort_segment TO c##zabbix_mon;
GRANT SELECT ON v_$parameter TO c##zabbix_mon;
GRANT SELECT ON CDB_TABLESPACES TO c##zabbix_mon;
GRANT SELECT ON CDB_DATA_FILES TO c##zabbix_mon;
GRANT SELECT ON CDB_FREE_SPACE TO c##zabbix_mon;
GRANT SELECT ON CDB_TEMP_FILES TO c##zabbix_mon;
Note that in these examples, the monitoring user is named
c##zabbix_monand the system user -SYS. Change these example usernames to ones that are appropriate for your environment.
If this workaround does not work for you, there are more options available, such as materialized views, but look out for data refresh as V$RESTORE_POINT is a dynamic performance view.
Install the ODBC driver on Zabbix server or Zabbix proxy. See the Oracle documentation for instructions.
Configure Zabbix server or Zabbix proxy for using the Oracle environment:
This step is required only when:
installing Oracle Instant Client with .rpm packages with a version < 19.3 (if Instant Client is the only Oracle software installed on Zabbix server or Zabbix proxy);
installing Oracle Instant Client manually with .zip files.
There are multiple configuration options:
Using the LDCONFIG utility (recommended option):
To update the runtime link path, it is recommended to use the LDCONFIG utility, for example:
# sh -c "echo /opt/oracle/instantclient_19_18 > /etc/ld.so.conf.d/oracle-instantclient.conf"
# ldconfig
Using the application configuration file:
An alternative solution is to export the required variables by editing or adding a new application configuration file:
/etc/sysconfig/zabbix-server # for server
/etc/sysconfig/zabbix-proxy # for proxy
And then, adding:
# Oracle Instant Client library
LD_LIBRARY_PATH=/opt/oracle/instantclient_19_18:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
Keep in mind that the library paths will vary depending on your installation.
This is a minimal configuration example. Depending on the Oracle Instant Client version, required functionality and host operating system, a different set of additional packages might need to be installed. For more detailed configuration instructions, see the official Oracle Instant Client installation instructions for Linux.
Restart Zabbix server or Zabbix proxy.
Set the username and password in the host macros {$ORACLE.USER} and {$ORACLE.PASSWORD}.
Set the {$ORACLE.HOST}, {$ORACLE.DRIVER} and {$ORACLE.SERVICE} in the host macros.
{$ORACLE.HOST} is a hostname or IP address of the Oracle DB instance.
{$ORACLE.DRIVER} is a path to the driver location in the OS. The ODBC driver file should be found in the Instant Client directory and named libsqora.so.XX.Y.
{$ORACLE.SERVICE} is a service name to which the host will connect to. The value in this macro is important as it determines if the connection is established to a non-CDB, CDB, or PDB. If you wish to monitor tablespaces of all PDBs, you will need to set a service name that points to the CDB.
Active service names can be seen from the instance running Oracle Database with lsnrctl status.
Important! Make sure that the user created in step #1 is present on the specified service.
The "Service's TCP port state" item uses {$ORACLE.HOST} and {$ORACLE.PORT} macros to check the availability of the listener.
| Name | Description | Default |
|---|---|---|
| {$ORACLE.DRIVER} | Oracle driver path. For example: |
<Put path to oracle driver here> |
| {$ORACLE.SERVICE} | Oracle Service Name. |
<Put oracle service name here> |
| {$ORACLE.USER} | Oracle username. |
<Put your username here> |
| {$ORACLE.PASSWORD} | Oracle user's password. |
<Put your password here> |
| {$ORACLE.HOST} | The hostname or IP address of the Oracle DB instance. |
<Put oracle host here> |
| {$ORACLE.PORT} | Oracle Database TCP port. |
1521 |
| {$ORACLE.DBNAME.MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
PDB\$SEED |
| {$ORACLE.TABLESPACE.CONTAINER.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.CONTAINER.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
80 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for the Warning trigger expression. |
80 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for the Warning trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for the Warning trigger expression. |
80 |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression. |
90 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression. |
20 |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression. |
3 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of session concurrency for the Warning trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of redo logs for the Warning trigger expression. |
3 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression. |
5 |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of days before the password expires for the Warning trigger expression. |
7 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression. |
90 |
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression. |
95 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle: Service's TCP port state | Checks the availability of Oracle on the TCP port. |
Zabbix agent | net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}] Preprocessing
|
| Oracle: Number of LISTENER processes | The number of running listener processes. |
Zabbix agent | proc.num[,,,"tnslsnr LISTENER"] Preprocessing
|
| Oracle: Get instance state | Gets the state of the current instance. |
Database monitor | db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Get archive log | Gets the destinations of the log archive. |
Database monitor | db.odbc.get[get_archivelog,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Get ASM disk groups | Gets the ASM disk groups. |
Database monitor | db.odbc.get[get_asm,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Get database | Gets the databases in the database management system (DBMS). |
Database monitor | db.odbc.get[get_db,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Get PDB | Gets the pluggable database (PDB) in DBMS. |
Database monitor | db.odbc.get[get_pdb,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Get tablespace | Gets tablespaces in DBMS. |
Database monitor | db.odbc.get[get_tablespace,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Version | The Oracle Server version. |
Dependent item | oracle.version Preprocessing
|
| Oracle: Uptime | The Oracle instance uptime expressed in seconds. |
Dependent item | oracle.uptime Preprocessing
|
| Oracle: Instance status | The status of the instance. |
Dependent item | oracle.instance_status Preprocessing
|
| Oracle: Archiver state | The status of automatic archiving. |
Dependent item | oracle.archiver_state Preprocessing
|
| Oracle: Instance name | The name of the instance. |
Dependent item | oracle.instance_name Preprocessing
|
| Oracle: Instance hostname | The name of the host machine. |
Dependent item | oracle.instance_hostname Preprocessing
|
| Oracle: Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
Dependent item | oracle.instance.role Preprocessing
|
| Oracle: Get system metrics | Gets the values of the system metrics. |
Database monitor | db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Sessions limit | The user and system sessions. |
Dependent item | oracle.session_limit Preprocessing
|
| Oracle: Datafiles limit | The maximum allowable number of datafiles. |
Dependent item | oracle.db_files_limit Preprocessing
|
| Oracle: Processes limit | The maximum number of user processes. |
Dependent item | oracle.processes_limit Preprocessing
|
| Oracle: Number of processes | The current number of user processes. |
Dependent item | oracle.processes_count Preprocessing
|
| Oracle: Datafiles count | The current number of datafiles. |
Dependent item | oracle.db_files_count Preprocessing
|
| Oracle: Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
Dependent item | oracle.buffer_cache_hit_ratio Preprocessing
|
| Oracle: Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
Dependent item | oracle.cursor_cache_hit_ratio Preprocessing
|
| Oracle: Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
Dependent item | oracle.library_cache_hit_ratio Preprocessing
|
| Oracle: Shared pool free % | Free memory of a shared pool expressed in %. |
Dependent item | oracle.shared_pool_free Preprocessing
|
| Oracle: Physical reads per second | Reads per second. |
Dependent item | oracle.physical_reads_rate Preprocessing
|
| Oracle: Physical writes per second | Writes per second. |
Dependent item | oracle.physical_writes_rate Preprocessing
|
| Oracle: Physical reads bytes per second | Read bytes per second. |
Dependent item | oracle.physical_read_bytes_rate Preprocessing
|
| Oracle: Physical writes bytes per second | Write bytes per second. |
Dependent item | oracle.physical_write_bytes_rate Preprocessing
|
| Oracle: Enqueue timeouts per second | Enqueue timeouts per second. |
Dependent item | oracle.enqueue_timeouts_rate Preprocessing
|
| Oracle: GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
Dependent item | oracle.gc_cr_block_received_rate Preprocessing
|
| Oracle: Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
Dependent item | oracle.cache_blocks_corrupt Preprocessing
|
| Oracle: Global cache blocks lost | The number of lost global cache blocks. |
Dependent item | oracle.cache_blocks_lost Preprocessing
|
| Oracle: Logons per second | The number of logon attempts. |
Dependent item | oracle.logons_rate Preprocessing
|
| Oracle: Average active sessions | The average number of active sessions at a point in time that are either working or waiting. |
Dependent item | oracle.active_sessions Preprocessing
|
| Oracle: Session count | The session count. |
Dependent item | oracle.session_count Preprocessing
|
| Oracle: Active user sessions | The number of active user sessions. |
Dependent item | oracle.session_active_user Preprocessing
|
| Oracle: Active background sessions | The number of active background sessions. |
Dependent item | oracle.session_active_background Preprocessing
|
| Oracle: Inactive user sessions | The number of inactive user sessions. |
Dependent item | oracle.session_inactive_user Preprocessing
|
| Oracle: Sessions lock rate | 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. |
Dependent item | oracle.session_lock_rate Preprocessing
|
| Oracle: Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of the maximum session lock in seconds for a query using the |
Dependent item | oracle.session_long_time_locked Preprocessing
|
| Oracle: Sessions concurrency | The percentage of concurrency. Concurrency is a database behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, and the rest of the transactions wait for access. When the access to a resource is locked for a long time, the concurrency grows (like the transaction queue), often leaving 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. |
Dependent item | oracle.session_concurrency_rate Preprocessing
|
| Oracle: User '{$ORACLE.USER}' expire password | The number of days before the Zabbix account password expires. |
Dependent item | oracle.user_expire_password Preprocessing
|
| Oracle: Active serial sessions | The number of active serial sessions. |
Dependent item | oracle.active_serial_sessions Preprocessing
|
| Oracle: Active parallel sessions | The number of active parallel sessions. |
Dependent item | oracle.active_parallel_sessions Preprocessing
|
| Oracle: Long table scans per second | The number of long table scans per second. A table is considered long if it is not cached and if its high water mark is greater than five blocks. |
Dependent item | oracle.long_table_scans_rate Preprocessing
|
| Oracle: SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
Dependent item | oracle.service_response_time Preprocessing
|
| Oracle: User rollbacks per second | The number of times that users manually issued the |
Dependent item | oracle.user_rollbacks_rate Preprocessing
|
| Oracle: Total sorts per user call | The total sorts per user call. |
Dependent item | oracle.sorts_per_user_call Preprocessing
|
| Oracle: Rows per sort | The average number of rows per sort for all types of sorts performed. |
Dependent item | oracle.rows_per_sort Preprocessing
|
| Oracle: Disk sort per second | The number of sorts going to disk per second. |
Dependent item | oracle.disk_sorts Preprocessing
|
| Oracle: Memory sorts ratio | The percentage of sorts (from |
Dependent item | oracle.memory_sorts_ratio Preprocessing
|
| Oracle: Database wait time ratio | 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, etc. |
Dependent item | oracle.database_wait_time_ratio Preprocessing
|
| Oracle: Database CPU time ratio | The ratio calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
Dependent item | oracle.database_cpu_time_ratio Preprocessing
|
| Oracle: Temp space used | Used temporary space. |
Dependent item | oracle.temp_space_used Preprocessing
|
| Oracle: PGA, Total inuse | The amount of Program Global Area (PGA) memory 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). |
Dependent item | oracle.total_pga_used Preprocessing
|
| Oracle: PGA, Aggregate target parameter | The current value of the |
Dependent item | oracle.pga_target Preprocessing
|
| Oracle: PGA, Total allocated | The current amount of the PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the |
Dependent item | oracle.total_pga_allocated Preprocessing
|
| Oracle: PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the OS. |
Dependent item | oracle.total_pga_freeable Preprocessing
|
| Oracle: PGA, Global memory bound | The maximum size of a work area executed in automatic mode. |
Dependent item | oracle.pga_global_bound Preprocessing
|
| Oracle: FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
Dependent item | oracle.fra_space_limit Preprocessing
|
| Oracle: FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
Dependent item | oracle.fra_space_used Preprocessing
|
| Oracle: FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low-priority files from the FRA. |
Dependent item | oracle.fra_space_reclaimable Preprocessing
|
| Oracle: FRA, Number of files | The number of files in the FRA. |
Dependent item | oracle.fra_number_of_files Preprocessing
|
| Oracle: FRA, Usable space in % | Percentage of space usable in the FRA. |
Dependent item | oracle.fra_usable_pct Preprocessing
|
| Oracle: FRA, Number of restore points | Number of restore points in the FRA. |
Dependent item | oracle.fra_restore_point Preprocessing
|
| Oracle: SGA, java pool | The memory is allocated from the Java pool. |
Dependent item | oracle.sga_java_pool Preprocessing
|
| Oracle: SGA, large pool | The memory is allocated from a large pool. |
Dependent item | oracle.sga_large_pool Preprocessing
|
| Oracle: SGA, shared pool | The memory is allocated from a shared pool. |
Dependent item | oracle.sga_shared_pool Preprocessing
|
| Oracle: SGA, log buffer | The number of bytes allocated for the redo log buffer. |
Dependent item | oracle.sga_log_buffer Preprocessing
|
| Oracle: SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
Dependent item | oracle.sga_fixed Preprocessing
|
| Oracle: SGA, buffer cache | The size of standard block cache. |
Dependent item | oracle.sga_buffer_cache Preprocessing
|
| Oracle: Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
Dependent item | oracle.redo_logs_available Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Port {$ORACLE.PORT} is unavailable | The TCP port of the Oracle Server service is currently unavailable. |
max(/Oracle by ODBC/net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}],#3)=0 and max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)>0 |
Disaster | |
| Oracle: LISTENER process is not running | The Oracle listener process is not running. |
max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)=0 |
Disaster | |
| Oracle: Version has changed | The Oracle Database version has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.version,#1)<>last(/Oracle by ODBC/oracle.version,#2) and length(last(/Oracle by ODBC/oracle.version))>0 |
Info | Manual close: Yes |
| Oracle: Host has been restarted | Uptime is less than 10 minutes. |
last(/Oracle by ODBC/oracle.uptime)<10m |
Info | Manual close: Yes |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by ODBC/oracle.uptime,5m)=1 |
Warning | Depends on:
|
| Oracle: Instance name has changed | An Oracle Database instance name has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.instance_name,#1)<>last(/Oracle by ODBC/oracle.instance_name,#2) and length(last(/Oracle by ODBC/oracle.instance_name))>0 |
Info | Manual close: Yes |
| Oracle: Instance hostname has changed | An Oracle Database instance hostname has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.instance_hostname,#1)<>last(/Oracle by ODBC/oracle.instance_hostname,#2) and length(last(/Oracle by ODBC/oracle.instance_hostname))>0 |
Info | Manual close: Yes |
| Oracle: Too many active processes | Active processes are using more than |
min(/Oracle by ODBC/oracle.processes_count,5m) * 100 / last(/Oracle by ODBC/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
Warning | |
| Oracle: Too many database files | The number of datafiles is higher than |
min(/Oracle by ODBC/oracle.db_files_count,5m) * 100 / last(/Oracle by ODBC/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
Warning | |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than |
max(/Oracle by ODBC/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
Warning | |
| Oracle: Too many active sessions | Active sessions are using more than |
min(/Oracle by ODBC/oracle.session_count,5m) * 100 / last(/Oracle by ODBC/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
Warning | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds |
min(/Oracle by ODBC/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding |
min(/Oracle by ODBC/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too high database concurrency | The concurrency rate exceeds |
min(/Oracle by ODBC/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
Warning | |
| Oracle: Zabbix account will expire soon | The password for the Zabbix user in the database expires soon. |
last(/Oracle by ODBC/oracle.user_expire_password) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
Warning | |
| Oracle: Total PGA inuse is too high | The total PGA currently consumed by work areas is more than |
min(/Oracle by ODBC/oracle.total_pga_used,5m) * 100 / last(/Oracle by ODBC/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
Warning | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused redos available for log switching is low (risk of database downtime). |
max(/Oracle by ODBC/oracle.redo_logs_available,5m) < {$ORACLE.REDO.MIN.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Used for database discovery. |
Dependent item | oracle.db.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle Database '{#DBNAME}': Get CDB and No-CDB info | Gets the information about the CDB and non-CDB database on an instance. |
Database monitor | db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Oracle Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.db_open_mode["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Role | The current role of the database where: 1 - SNAPSHOT STANDBY; 2 - LOGICAL STANDBY; 3 - PHYSICAL STANDBY; 4 - PRIMARY; 5 - FAR SYNC. |
Dependent item | oracle.db_role["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Log mode | The archive log mode where: 0 - NOARCHIVELOG; 1 - ARCHIVELOG; 2 - MANUAL. |
Dependent item | oracle.db_log_mode["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode ( |
Dependent item | oracle.db_force_logging["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes Depends on:
|
| Oracle Database '{#DBNAME}': Role has changed | The Oracle Database role has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Oracle Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force logging mode is a very important metric for databases in |
last(/Oracle by ODBC/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by ODBC/oracle.db_log_mode["{#DBNAME}"]) = 1 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| PDB discovery | Used for the discovery of the pluggable database (PDB). |
Dependent item | oracle.pdb.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle Database '{#DBNAME}': Get PDB info | Gets the information about the PDB database on an instance. |
Database monitor | db.odbc.get[get_pdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Oracle Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.pdb_open_mode["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Tablespace discovery | Used for the discovery of tablespaces in DBMS. |
Dependent item | oracle.tablespace.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Get tablespaces stats | Gets the statistics of the tablespace. |
Database monitor | db.odbc.get[get_{#CON_NAME}tablespace{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
Dependent item | oracle.tbs_alloc_bytes["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
Dependent item | oracle.tbs_max_bytes["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles minus the free space). |
Dependent item | oracle.tbs_used_bytes["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
Dependent item | oracle.tbs_free_bytes["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
Dependent item | oracle.tbs_used_pct["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
Dependent item | oracle.tbs_used_file_pct["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX, percent | Used bytes/max bytes*100. |
Dependent item | oracle.tbs_used_from_max_pct["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - ONLINE; 2 - OFFLINE; 3 - READ ONLY. |
Dependent item | oracle.tbs_status["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
High | |
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
High | |
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} |
Warning | Depends on:
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} |
High | |
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by ODBC/oracle.tbs_status["{#CON_NAME}","{#TABLESPACE}"])=2 |
Warning | |
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.tbs_status["{#CON_NAME}","{#TABLESPACE}"],#1)<>last(/Oracle by ODBC/oracle.tbs_status["{#CON_NAME}","{#TABLESPACE}"],#2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Used for the discovery of the log archive. |
Dependent item | oracle.archivelog.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archivelog '{#DEST_NAME}': Get archive log info | Gets the archive log statistics. |
Database monitor | db.odbc.get[get_archivelog_{#DEST_NAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Error | Displays the error message. |
Dependent item | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived. |
Dependent item | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination where: 1 - VALID; 2 - DEFERRED; 3 - ERROR; 0 - UNKNOWN. |
Dependent item | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: |
last(/Oracle by ODBC/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM disk groups discovery | Used for discovering the ASM disk groups. |
Dependent item | oracle.asm.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM '{#DGNAME}': Get ASM stats | Gets the ASM disk group statistics. |
Database monitor | db.odbc.get[get_asm_{#DGNAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
Dependent item | oracle.asm_total_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
Dependent item | oracle.asm_free_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Used size, percent | Usage of the ASM disk group expressed in %. |
Dependent item | oracle.asm_used_pct["{#DGNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
High |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_odbc?at=release/6.2
For Zabbix version: 6.2 and higher. The template is developed to monitor a single DBMS Oracle Database instance with ODBC.
This template was tested on:
See Zabbix template operation for basic instructions.
CREATE USER zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT_CATALOG_ROLE to zabbix_mon;
GRANT SELECT ON v_$instance TO zabbix_mon;
GRANT SELECT ON v_$database TO zabbix_mon;
GRANT SELECT ON v_$sysmetric TO zabbix_mon;
GRANT SELECT ON v_$system_parameter TO zabbix_mon;
GRANT SELECT ON v_$session TO zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO zabbix_mon;
GRANT SELECT ON v_$active_session_history TO zabbix_mon;
GRANT SELECT ON v_$osstat TO zabbix_mon;
GRANT SELECT ON v_$restore_point TO zabbix_mon;
GRANT SELECT ON v_$process TO zabbix_mon;
GRANT SELECT ON v_$datafile TO zabbix_mon;
GRANT SELECT ON v_$pgastat TO zabbix_mon;
GRANT SELECT ON v_$sgastat TO zabbix_mon;
GRANT SELECT ON v_$log TO zabbix_mon;
GRANT SELECT ON v_$archive_dest TO zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO zabbix_mon;
GRANT SELECT ON sys.dba_data_files TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACES TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
Note! Ensure that ODBC connects to Oracle with session parameter NLS_NUMERIC_CHARACTERS= '.,'. It is important for displaying the float numbers in Zabbix correctly.
Install the ODBC driver on Zabbix server or Zabbix proxy. See the Oracle documentation for instructions.
Configure Zabbix server or Zabbix proxy for the usage of Oracle Environment:
Edit or add a new file:
/etc/sysconfig/zabbix-server # for server
/etc/sysconfig/zabbix-proxy # for proxy
Then, add:
export ORACLE_HOME=/usr/lib/oracle/19.6/client64
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:/usr/lib:$ORACLE_HOME/bin
export TNS_ADMIN=$ORACLE_HOME/network/admin
Restart Zabbix server or Zabbix proxy.
Set the username and password in the host macros ({$ORACLE.USER} and {$ORACLE.PASSWORD}).
Set the {$ORACLE.DRIVER} and {$ORACLE.SERVICE} in the host macros. {$ORACLE.DRIVER} is a path to the driver location in OS. The "Service's TCP port state" item uses {HOST.CONN} and {$ORACLE.PORT} macros to check the availability of the listener.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used Automatic Storage Management (ASM) disk group for a high trigger expression. |
95 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used ASM disk group for a warning trigger expression. |
90 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of sessions concurrency usage for a trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for a trigger expression. |
80 |
| {$ORACLE.DBNAME.MATCHES} | This macro is used in database discovery. It can be overridden on host level or its linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | This macro is used in database discovery. It can be overridden on host level or its linked template level. |
PDB\$SEED |
| {$ORACLE.DRIVER} | The Oracle driver path. For example: |
<Put path to oracle driver here> |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of warning days before the password expires for a trigger expression. |
7 |
| {$ORACLE.PASSWORD} | The Oracle user's password. |
<Put your password here> |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for a trigger expression. |
90 |
| {$ORACLE.PORT} | Oracle DB TCP port. |
1521 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for a trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of REDO logs for a trigger expression. |
3 |
| {$ORACLE.SERVICE} | Oracle Service Name. |
<Put oracle service name here> |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for a trigger expression. |
3 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for a trigger expression. |
20 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for a trigger expression. |
80 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for a trigger expression. |
5 |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | This macro is used in tablespace discovery. It can be overridden on host level or its linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | This macro is used in tablespace discovery. It can be overridden on host level or its linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for a trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for a trigger expression. |
90 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for a trigger expression. |
90 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for a trigger expression. |
80 |
| {$ORACLE.USER} | Oracle username. |
<Put your username here> |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Destinations of the log archive. |
ODBC | db.odbc.discovery[archivelog,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| ASM disk groups discovery | The ASM disk groups. |
ODBC | db.odbc.discovery[asm,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Database discovery | Scanning databases in the database management system (DBMS). |
ODBC | db.odbc.discovery[db_list,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| PDB discovery | Scanning a pluggable database (PDB) in DBMS. |
ODBC | db.odbc.discovery[pdb_list,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| Tablespace discovery | Scanning tablespaces in DBMS. |
ODBC | db.odbc.discovery[tbsname,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Filter: AND- {#TABLESPACE} MATCHES_REGEX - {#TABLESPACE} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Oracle | Oracle: Service's TCP port state | It checks the availability of Oracle on the TCP port. |
ZABBIX_PASSIVE | net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Number of LISTENER processes | The number of running LISTENER processes. |
ZABBIX_PASSIVE | proc.num[,,,"tnslsnr LISTENER"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Version | The Oracle Server version. |
DEPENDENT | oracle.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Uptime | The Oracle instance uptime expressed in seconds. |
DEPENDENT | oracle.uptime Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance status | The status of the instance. |
DEPENDENT | oracle.instance_status Preprocessing: - JSONPATH: |
| Oracle | Oracle: Archiver state | The status of automatic archiving. |
DEPENDENT | oracle.archiver_state Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance name | The name of an instance. |
DEPENDENT | oracle.instance_name Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance hostname | The name of the host machine. |
DEPENDENT | oracle.instance_hostname Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance role | It indicates whether the instance is an active instance or an inactive secondary instance. |
DEPENDENT | oracle.instance.role Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions limit | The user and system sessions. |
DEPENDENT | oracle.session_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Datafiles limit | The maximum allowable number of datafiles. |
DEPENDENT | oracle.db_files_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Processes limit | The maximum number of user processes. |
DEPENDENT | oracle.processes_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Number of processes | DEPENDENT | oracle.processes_count Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: Datafiles count | The current number of datafiles. |
DEPENDENT | oracle.db_files_count Preprocessing: - JSONPATH: |
| Oracle | Oracle: Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
DEPENDENT | oracle.buffer_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
DEPENDENT | oracle.cursor_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
DEPENDENT | oracle.library_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Shared pool free % | Free memory of a shared pool expressed in %. |
DEPENDENT | oracle.shared_pool_free Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical reads per second | Reads per second. |
DEPENDENT | oracle.physical_reads_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical writes per second | Writes per second. |
DEPENDENT | oracle.physical_writes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical reads bytes per second | Read bytes per second. |
DEPENDENT | oracle.physical_read_bytes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical writes bytes per second | Write bytes per second. |
DEPENDENT | oracle.physical_write_bytes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Enqueue timeouts per second | Enqueue timeouts per second. |
DEPENDENT | oracle.enqueue_timeouts_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
DEPENDENT | oracle.gc_cr_block_received_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
DEPENDENT | oracle.cache_blocks_corrupt Preprocessing: - JSONPATH: |
| Oracle | Oracle: Global cache blocks lost | The number of lost global cache blocks. |
DEPENDENT | oracle.cache_blocks_lost Preprocessing: - JSONPATH: |
| Oracle | Oracle: Logons per second | The number of logon attempts. |
DEPENDENT | oracle.logons_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Average active sessions | The average active sessions at a point in time. The number of sessions that are either working or waiting. |
DEPENDENT | oracle.active_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Session count | The count of sessions. |
DEPENDENT | oracle.session_count Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active user sessions | The number of active user sessions. |
DEPENDENT | oracle.session_active_user Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Active background sessions | The number of active background sessions. |
DEPENDENT | oracle.session_active_background Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Inactive user sessions | The number of inactive user sessions. |
DEPENDENT | oracle.session_inactive_user Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Sessions lock rate | 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. |
DEPENDENT | oracle.session_lock_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of maximum session lock in seconds for a query by {$ORACLE.SESSION.LOCK.MAX.TIME} macro. Default is 600 sec). |
DEPENDENT | oracle.session_long_time_locked Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions concurrency | The percentage of concurrency. Concurrency is a DB behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, the rest of the transactions are waiting for the access. In the case when the access for the resource is locked for a long time, then the concurrency grows (like the transaction queue) and this often has an extremely negative impact on the performance. A high contention value does not indicate the root cause of the problem but is a signal to search for it. |
DEPENDENT | oracle.session_concurrency_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: User '{$ORACLE.USER}' expire password | The number of days before the password of Zabbix account expires. |
DEPENDENT | oracle.user_expire_password Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active serial sessions | The number of active serial sessions. |
DEPENDENT | oracle.active_serial_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active parallel sessions | The number of active parallel sessions. |
DEPENDENT | oracle.active_parallel_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Long table scans per second | 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 five blocks. |
DEPENDENT | oracle.long_table_scans_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
DEPENDENT | oracle.service_response_time Preprocessing: - JSONPATH: - MULTIPLIER: |
| Oracle | Oracle: User rollbacks per second | The number of times that users manually issue the ROLLBACK statement or an error occurred during the users' transactions. |
DEPENDENT | oracle.user_rollbacks_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Total sorts per user call | The total sorts per user call. |
DEPENDENT | oracle.sorts_per_user_call Preprocessing: - JSONPATH: |
| Oracle | Oracle: Rows per sort | The average number of rows per sort for all types of sorts performed. |
DEPENDENT | oracle.rows_per_sort Preprocessing: - JSONPATH: |
| Oracle | Oracle: Disk sort per second | The number of sorts going to disk per second. |
DEPENDENT | oracle.disk_sorts Preprocessing: - JSONPATH: |
| Oracle | Oracle: Memory sorts ratio | The percentage of sorts (from ORDER BY clauses or index building) that are done to disk vs in-memory. |
DEPENDENT | oracle.memory_sorts_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Database wait time ratio | 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, etc. |
DEPENDENT | oracle.database_wait_time_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Database CPU time ratio | It is calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
DEPENDENT | oracle.database_cpu_time_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Temp space used | Used temporary space. |
DEPENDENT | oracle.temp_space_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total inuse | It indicates how much the Program Global Area (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). |
DEPENDENT | oracle.total_pga_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Aggregate target parameter | The current value of the PGA_AGGREGATE_TARGET initialization parameter. If this parameter is not set, then its value is 0 and automatic management of the PGA memory is disabled. |
DEPENDENT | oracle.pga_target Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total allocated | The current amount of the 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. |
DEPENDENT | oracle.total_pga_allocated Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the operating system. |
DEPENDENT | oracle.total_pga_freeable Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Global memory bound | The maximum size of work area executed in automatic mode. |
DEPENDENT | oracle.pga_global_bound Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
DEPENDENT | oracle.fra_space_limit Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
DEPENDENT | oracle.fra_space_used Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low priority files from the FRA. |
DEPENDENT | oracle.fra_space_reclaimable Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: FRA, Number of files | The number of files in the FRA. |
DEPENDENT | oracle.fra_number_of_files Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: FRA, Usable space in % | DEPENDENT | oracle.fra_usable_pct Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
|
| Oracle | Oracle: FRA, Number of restore points | DEPENDENT | oracle.fra_restore_point Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: SGA, java pool | The memory is allocated from the Java pool. |
DEPENDENT | oracle.sga_java_pool Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: SGA, large pool | The memory is allocated from a large pool. |
DEPENDENT | oracle.sga_large_pool Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: SGA, shared pool | The memory is allocated from a shared pool. |
DEPENDENT | oracle.sga_shared_pool Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: SGA, log buffer | The number of bytes allocated for the redo log buffer. |
DEPENDENT | oracle.sga_log_buffer Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
DEPENDENT | oracle.sga_fixed Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: SGA, buffer cache | The size of standard block cache. |
DEPENDENT | oracle.sga_buffer_cache Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
DEPENDENT | oracle.redo_logs_available Preprocessing: - JSONPATH: |
| Oracle | Oracle Database '{#DBNAME}': Open status | 1 - 'MOUNTED'; 2 - 'READ WRITE'; 3 - 'READ ONLY'; 4 - 'READ ONLY WITH APPLY' (a physical standby database is open in real-time query mode). |
DEPENDENT | oracle.db_open_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Role | The current role of the database where: 1 - 'SNAPSHOT STANDBY'; 2 - 'LOGICAL STANDBY'; 3 - 'PHYSICAL STANDBY'; 4 - 'PRIMARY '; 5 - 'FAR SYNC'. |
DEPENDENT | oracle.db_role["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Log mode | The archive log mode where: 0 - 'NOARCHIVELOG'; 1 - 'ARCHIVELOG'; 2 - 'MANUAL'. |
DEPENDENT | oracle.db_log_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Force logging | It indicates whether the database is under force logging mode 'YES' or 'NO'. |
DEPENDENT | oracle.db_force_logging["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Open status | 1 - 'MOUNTED'; 2 - 'READ WRITE'; 3 - 'READ ONLY'; 4 - 'READ ONLY WITH APPLY' (a physical standby database is open in real-time query mode). |
DEPENDENT | oracle.pdb_open_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
DEPENDENT | oracle.tbs_alloc_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
DEPENDENT | oracle.tbs_max_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles - the free space). |
DEPENDENT | oracle.tbs_used_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
DEPENDENT | oracle.tbs_free_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
DEPENDENT | oracle.tbs_used_pct["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
DEPENDENT | oracle.tbs_used_file_pct["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - 'ONLINE'; 2 - 'OFFLINE'; 3 - 'READ ONLY'. |
DEPENDENT | oracle.tbs_status["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Archivelog '{#DEST_NAME}': Error | It displays the error message. |
DEPENDENT | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Archivelog '{#DEST_NAME}': Last sequence | It identifies the sequence number of the last archived redo log to be archived. |
DEPENDENT | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing: - JSONPATH: |
| Oracle | Archivelog '{#DEST_NAME}': Status | It identifies the current status of the destination where: 1 - 'VALID'; 2 - 'DEFERRED'; 3 - 'ERROR'; 0 - 'UNKNOWN'. |
DEPENDENT | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
DEPENDENT | oracle.asm_total_size["{#DGNAME}"] Preprocessing: - JSONPATH: |
| Oracle | ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
DEPENDENT | oracle.asm_free_size["{#DGNAME}"] Preprocessing: - JSONPATH: |
| Oracle | ASM '{#DGNAME}': Free size | Usage of the ASM disk group expressed in %. |
DEPENDENT | oracle.asm_used_pct["{#DGNAME}"] Preprocessing: - JSONPATH: |
| Zabbix raw items | Oracle: Get instance state | The item gets its state of the current instance. |
ODBC | db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Expression: The text is too long. Please see the template. |
| Zabbix raw items | Oracle: Get system metrics | The item gets the values of the system metrics. |
ODBC | db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Expression: The text is too long. Please see the template. |
| Zabbix raw items | Oracle Database '{#DBNAME}': Get CDB and No-CDB info | It gets the information about the container database (CDB) and non-CDB database on an instance. |
ODBC | db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: Expression: The text is too long. Please see the template. |
| Zabbix raw items | Oracle Database '{#DBNAME}': Get PDB info | It gets the information about the PDB database on an instance. |
ODBC | db.odbc.get[get_pdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: Expression: The text is too long. Please see the template. |
| Zabbix raw items | Oracle TBS '{#TABLESPACE}': Get tablespaces stats | It gets the statistics of the tablespace. |
ODBC | db.odbc.get[get_tablespace_{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: Expression: The text is too long. Please see the template. |
| Zabbix raw items | Archivelog '{#DEST_NAME}': Get archive log info | It gets the archivelog statistics. |
ODBC | db.odbc.get[get_archivelog_{#DEST_NAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: Expression: The text is too long. Please see the template. |
| Zabbix raw items | ASM '{#DGNAME}': Get ASM stats | It gets the ASM disk group statistics. |
ODBC | db.odbc.get[get_asm_{#DGNAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: Expression: The text is too long. Please see the template. |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Port {$ORACLE.PORT} is unavailable | The TCP port of the Oracle Server service is currently unavailable. |
max(/Oracle by ODBC/net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}],#3)=0 and max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)>0 |
DISASTER | |
| Oracle: LISTENER process is not running | - |
max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)=0 |
DISASTER | |
| Oracle: Version has changed | The Oracle DB version has changed. Acknowledge to close manually. |
last(/Oracle by ODBC/oracle.version,#1)<>last(/Oracle by ODBC/oracle.version,#2) and length(last(/Oracle by ODBC/oracle.version))>0 |
INFO | Manual close: YES |
| Oracle: Host has been restarted | The host uptime is less than 10 minutes. |
last(/Oracle by ODBC/oracle.uptime)<10m |
INFO | Manual close: YES |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by ODBC/oracle.uptime,5m)=1 |
WARNING | Depends on: - Oracle: Port {$ORACLE.PORT} is unavailable |
| Oracle: Instance name has changed | The Oracle DB instance has changed. Ack to close manually. |
last(/Oracle by ODBC/oracle.instance_name,#1)<>last(/Oracle by ODBC/oracle.instance_name,#2) and length(last(/Oracle by ODBC/oracle.instance_name))>0 |
INFO | Manual close: YES |
| Oracle: Instance hostname has changed | Oracle DB Instance hostname has changed. Ack to close. |
last(/Oracle by ODBC/oracle.instance_hostname,#1)<>last(/Oracle by ODBC/oracle.instance_hostname,#2) and length(last(/Oracle by ODBC/oracle.instance_hostname))>0 |
INFO | Manual close: YES |
| Oracle: Too many active processes | Active processes are using more than {$ORACLE.PROCESSES.MAX.WARN}% of the available number of processes. |
min(/Oracle by ODBC/oracle.processes_count,5m) * 100 / last(/Oracle by ODBC/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
WARNING | |
| Oracle: Too many database files | The number of datafiles is higher than {$ORACLE.DB.FILE.MAX.WARN}% of the available datafiles limit. |
min(/Oracle by ODBC/oracle.db_files_count,5m) * 100 / last(/Oracle by ODBC/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
WARNING | |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than {$ORACLE.SHARED.FREE.MIN.WARN}% for the last 5 minutes. |
max(/Oracle by ODBC/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
WARNING | |
| Oracle: Too many active sessions | Active sessions are using more than {$ORACLE.SESSIONS.MAX.WARN}% of the available sessions. |
min(/Oracle by ODBC/oracle.session_count,5m) * 100 / last(/Oracle by ODBC/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
WARNING | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds {$ORACLE.SESSIONS.LOCK.MAX.WARN}% of the running sessions. |
min(/Oracle by ODBC/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
WARNING | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding {$ORACLE.SESSION.LOCK.MAX.TIME} seconds is too high. Long-term locks can negatively affect the database performance. Therefore, if they are detected, you should first find the most difficult queries from the database point of view and then analyze possible resource leaks. |
min(/Oracle by ODBC/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
WARNING | |
| Oracle: Too high database concurrency | The concurrency rate exceeds {$ORACLE.CONCURRENCY.MAX.WARN}%. A high contention value does not indicate the root cause of the problem, but it is a signal to search for it. In the case of high competition, the analysis of resource consumption should be carried out. Which are the most "heavy" queries made in the database? Possibly, also session tracing. All this will help to determine the root cause and possible optimization points both in the database configuration and in the logic of building queries of the application itself. |
min(/Oracle by ODBC/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
WARNING | |
| Oracle: Zabbix account will expire soon | The password for Zabbix user in the database expires soon. |
last(/Oracle by ODBC/oracle.user_expire_password) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
WARNING | |
| Oracle: Total PGA inuse is too high | The total PGA in use is more than {$ORACLE.PGA.USE.MAX.WARN}% of PGA_AGGREGATE_TARGET. |
min(/Oracle by ODBC/oracle.total_pga_used,5m) * 100 / last(/Oracle by ODBC/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
WARNING | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused REDOs available for log switching is low (database down risk). |
max(/Oracle by ODBC/oracle.redo_logs_available,5m) < {$ORACLE.REDO.MIN.WARN} |
WARNING | |
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle DB is in a mounted state. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"])=1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle DB open status has changed. Ack to close manually. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#2) |
INFO | Manual close: YES Depends on: - Oracle Database '{#DBNAME}': Open status in mount mode |
| Oracle Database '{#DBNAME}': Role has changed | The Oracle DB role has changed. Ack to close manually. |
last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#2) |
INFO | Manual close: YES |
| Oracle Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force Logging mode - it is very important metric for Databases in 'ARCHIVELOG'. This feature allows to forcibly write all the transactions to the REDO. |
last(/Oracle by ODBC/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by ODBC/oracle.db_log_mode["{#DBNAME}"]) = 1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle DB is in a mounted state. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"])=1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle DB open status has changed. Ack to close manually. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"],#2) |
INFO | Manual close: YES |
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high | - |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
WARNING | Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high |
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high | - |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
HIGH | |
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high | - |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
WARNING | Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace usage is too high |
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high | - |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
HIGH | |
| Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by ODBC/oracle.tbs_status["{#TABLESPACE}"])=2 |
WARNING | |
| Oracle TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Ack to close. |
last(/Oracle by ODBC/oracle.tbs_status["{#TABLESPACE}"],#1)<>last(/Oracle by ODBC/oracle.tbs_status["{#TABLESPACE}"],#2) |
INFO | Manual close: YES Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE |
| Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: 2 - 'DEFERRED'; 3 - 'VALID'." |
last(/Oracle by ODBC/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
HIGH | |
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds {$ORACLE.ASM.USED.PCT.MAX.WARN}. |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
WARNING | Depends on: - ASM '{#DGNAME}': Disk group usage is too high |
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds {$ORACLE.ASM.USED.PCT.MAX.WARN}. |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
HIGH |
Please report any issues with the template at https://support.zabbix.com.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_odbc?at=release/6.0
The template is developed to monitor a single DBMS Oracle Database instance with ODBC and can monitor CDB or non-CDB installations.
Oracle Database 12c2 and newer.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Create an Oracle Database user for monitoring:
In CDB installations, it is possible to monitor tablespaces from the CDB (container database) and all PDBs (pluggable databases). To do so, a common user is needed with the correct rights:
CREATE USER c##zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the c##zabbix_mon user.
ALTER USER c##zabbix_mon SET CONTAINER_DATA=ALL CONTAINER=CURRENT;
GRANT CONNECT, CREATE SESSION TO c##zabbix_mon;
GRANT SELECT_CATALOG_ROLE to c##zabbix_mon;
GRANT SELECT ON v_$instance TO c##zabbix_mon;
GRANT SELECT ON v_$database TO c##zabbix_mon;
GRANT SELECT ON v_$sysmetric TO c##zabbix_mon;
GRANT SELECT ON v_$system_parameter TO c##zabbix_mon;
GRANT SELECT ON v_$session TO c##zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO c##zabbix_mon;
GRANT SELECT ON v_$active_session_history TO c##zabbix_mon;
GRANT SELECT ON v_$osstat TO c##zabbix_mon;
GRANT SELECT ON v_$process TO c##zabbix_mon;
GRANT SELECT ON v_$datafile TO c##zabbix_mon;
GRANT SELECT ON v_$pgastat TO c##zabbix_mon;
GRANT SELECT ON v_$sgastat TO c##zabbix_mon;
GRANT SELECT ON v_$log TO c##zabbix_mon;
GRANT SELECT ON v_$archive_dest TO c##zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO c##zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup_stat TO c##zabbix_mon;
GRANT SELECT ON DBA_USERS TO c##zabbix_mon;
This is needed because the template uses CDB_* views to monitor tablespaces from the CDB and different PDBs - the monitoring user therefore needs access to the container data objects on all PDBs.
However, if you wish to monitor only a single PDB or a non-CDB instance, a local user is sufficient:
CREATE USER zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT_CATALOG_ROLE to zabbix_mon;
GRANT SELECT ON v_$instance TO zabbix_mon;
GRANT SELECT ON v_$database TO zabbix_mon;
GRANT SELECT ON v_$sysmetric TO zabbix_mon;
GRANT SELECT ON v_$system_parameter TO zabbix_mon;
GRANT SELECT ON v_$session TO zabbix_mon;
GRANT SELECT ON v_$recovery_file_dest TO zabbix_mon;
GRANT SELECT ON v_$active_session_history TO zabbix_mon;
GRANT SELECT ON v_$osstat TO zabbix_mon;
GRANT SELECT ON v_$process TO zabbix_mon;
GRANT SELECT ON v_$datafile TO zabbix_mon;
GRANT SELECT ON v_$pgastat TO zabbix_mon;
GRANT SELECT ON v_$sgastat TO zabbix_mon;
GRANT SELECT ON v_$log TO zabbix_mon;
GRANT SELECT ON v_$archive_dest TO zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup TO zabbix_mon;
GRANT SELECT ON v_$asm_diskgroup_stat TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
Important! Ensure that the ODBC connection to Oracle includes the session parameter NLS_NUMERIC_CHARACTERS= '.,'. It is important for displaying the float numbers in Zabbix correctly.
Important! These privileges grant the monitoring user SELECT_CATALOG_ROLE, which, in turn, gives access to thousands of tables in the database.
This role is required to access the V$RESTORE_POINT dynamic performance view.
However, there are ways to go around this, if the SELECT_CATALOG_ROLE assigned to a monitoring user raises any security issues.
One way to do this is using pipelined table functions:
Log into your database as the SYS user or make sure that your administration user has the required privileges to execute the steps below;
Create types for the table function:
CREATE OR REPLACE TYPE zbx_mon_restore_point_row AS OBJECT (
SCN NUMBER,
DATABASE_INCARNATION# NUMBER,
GUARANTEE_FLASHBACK_DATABASE VARCHAR2(3),
STORAGE_SIZE NUMBER,
TIME TIMESTAMP(9),
RESTORE_POINT_TIME TIMESTAMP(9),
PRESERVED VARCHAR2(3),
NAME VARCHAR2(128),
PDB_RESTORE_POINT VARCHAR2(3),
CLEAN_PDB_RESTORE_POINT VARCHAR2(3),
PDB_INCARNATION# NUMBER,
REPLICATED VARCHAR2(3),
CON_ID NUMBER
);
CREATE OR REPLACE TYPE zbx_mon_restore_point_tab IS TABLE OF zbx_mon_restore_point_row;
Create the pipelined table function:
CREATE OR REPLACE FUNCTION zbx_mon_restore_point RETURN zbx_mon_restore_point_tab PIPELINED AS
BEGIN
FOR i IN (SELECT * FROM V$RESTORE_POINT) LOOP
PIPE ROW (zbx_mon_restore_point_row(i.SCN, i.DATABASE_INCARNATION#, i.GUARANTEE_FLASHBACK_DATABASE, i.STORAGE_SIZE, i.TIME, i.RESTORE_POINT_TIME, i.PRESERVED, i.NAME, i.PDB_RESTORE_POINT, i.CLEAN_PDB_RESTORE_POINT, i.PDB_INCARNATION#, i.REPLICATED, i.CON_ID));
END LOOP;
RETURN;
END;
Grant the Zabbix monitoring user the Execute privilege on the created pipelined table function and replace the monitoring user V$RESTORE_POINT view with the SYS user function (in this example, the SYS user is used to create DB types and function):
GRANT EXECUTE ON zbx_mon_restore_point TO c##zabbix_mon;
CREATE OR REPLACE VIEW c##zabbix_mon.V$RESTORE_POINT AS SELECT * FROM TABLE(SYS.zbx_mon_restore_point);
Finally, revoke the SELECT_CATALOG_ROLE and grant additional permissions that were previously covered by the SELECT_CATALOG_ROLE.
REVOKE SELECT_CATALOG_ROLE FROM c##zabbix_mon;
GRANT SELECT ON v_$pdbs TO c##zabbix_mon;
GRANT SELECT ON v_$sort_segment TO c##zabbix_mon;
GRANT SELECT ON v_$parameter TO c##zabbix_mon;
GRANT SELECT ON CDB_TABLESPACES TO c##zabbix_mon;
GRANT SELECT ON CDB_DATA_FILES TO c##zabbix_mon;
GRANT SELECT ON CDB_FREE_SPACE TO c##zabbix_mon;
GRANT SELECT ON CDB_TEMP_FILES TO c##zabbix_mon;
Note that in these examples, the monitoring user is named
c##zabbix_monand the system user -SYS. Change these example usernames to ones that are appropriate for your environment.
If this workaround does not work for you, there are more options available, such as materialized views, but look out for data refresh as V$RESTORE_POINT is a dynamic performance view.
Install the ODBC driver on Zabbix server or Zabbix proxy. See the Oracle documentation for instructions.
Configure Zabbix server or Zabbix proxy for using the Oracle environment:
This step is required only when:
installing Oracle Instant Client with .rpm packages with a version < 19.3 (if Instant Client is the only Oracle software installed on Zabbix server or Zabbix proxy);
installing Oracle Instant Client manually with .zip files.
There are multiple configuration options:
Using the LDCONFIG utility (recommended option):
To update the runtime link path, it is recommended to use the LDCONFIG utility, for example:
# sh -c "echo /opt/oracle/instantclient_19_18 > /etc/ld.so.conf.d/oracle-instantclient.conf"
# ldconfig
Using the application configuration file:
An alternative solution is to export the required variables by editing or adding a new application configuration file:
/etc/sysconfig/zabbix-server # for server
/etc/sysconfig/zabbix-proxy # for proxy
And then, adding:
# Oracle Instant Client library
LD_LIBRARY_PATH=/opt/oracle/instantclient_19_18:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
Keep in mind that the library paths will vary depending on your installation.
This is a minimal configuration example. Depending on the Oracle Instant Client version, required functionality and host operating system, a different set of additional packages might need to be installed. For more detailed configuration instructions, see the official Oracle Instant Client installation instructions for Linux.
Restart Zabbix server or Zabbix proxy.
Set the username and password in the host macros {$ORACLE.USER} and {$ORACLE.PASSWORD}.
Set the {$ORACLE.DRIVER} and {$ORACLE.SERVICE} in the host macros.
{$ORACLE.DRIVER} is a path to the driver location in the OS. The ODBC driver file should be found in the Instant Client directory and named libsqora.so.XX.Y.
{$ORACLE.SERVICE} is a service name to which the host will connect to. The value in this macro is important as it determines if the connection is established to a non-CDB, CDB, or PDB. If you wish to monitor tablespaces of all PDBs, you will need to set a service name that points to the CDB.
Active service names can be seen from the instance running Oracle Database with lsnrctl status.
Important! Make sure that the user created in step #1 is present on the specified service.
The "Service's TCP port state" item uses {HOST.CONN} and {$ORACLE.PORT} macros to check the availability of the listener.
| Name | Description | Default |
|---|---|---|
| {$ORACLE.DRIVER} | Oracle driver path. For example: |
<Put path to oracle driver here> |
| {$ORACLE.SERVICE} | Oracle Service Name. |
<Put oracle service name here> |
| {$ORACLE.USER} | Oracle username. |
<Put your username here> |
| {$ORACLE.PASSWORD} | Oracle user's password. |
<Put your password here> |
| {$ORACLE.PORT} | Oracle Database TCP port. |
1521 |
| {$ORACLE.DBNAME.MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.DBNAME.NOT_MATCHES} | Used in database discovery. It can be overridden on the host or linked template level. |
PDB\$SEED |
| {$ORACLE.TABLESPACE.CONTAINER.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.CONTAINER.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TABLESPACE.NAME.MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
.* |
| {$ORACLE.TABLESPACE.NAME.NOT_MATCHES} | Used in tablespace discovery. It can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression. |
90 |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression. |
95 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
80 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. |
90 |
| {$ORACLE.PROCESSES.MAX.WARN} | Alert threshold for the maximum percentage of active processes for the Warning trigger expression. |
80 |
| {$ORACLE.SESSIONS.MAX.WARN} | Alert threshold for the maximum percentage of active sessions for the Warning trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | The maximum percentage of used database files for the Warning trigger expression. |
80 |
| {$ORACLE.PGA.USE.MAX.WARN} | Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression. |
90 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression. |
20 |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | The maximum duration of the session lock in seconds to count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression. |
3 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | The maximum percentage of session concurrency for the Warning trigger expression. |
80 |
| {$ORACLE.REDO.MIN.WARN} | Alert threshold for the minimum number of redo logs for the Warning trigger expression. |
3 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression. |
5 |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | The number of days before the password expires for the Warning trigger expression. |
7 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression. |
90 |
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression. |
95 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle: Service's TCP port state | Checks the availability of Oracle on the TCP port. |
Zabbix agent | net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}] Preprocessing
|
| Oracle: Number of LISTENER processes | The number of running listener processes. |
Zabbix agent | proc.num[,,,"tnslsnr LISTENER"] Preprocessing
|
| Oracle: Get instance state | Gets the state of the current instance. |
Database monitor | db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Get archive log | Gets the destinations of the log archive. |
Database monitor | db.odbc.get[get_archivelog,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Get ASM disk groups | Gets the ASM disk groups. |
Database monitor | db.odbc.get[get_asm,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Get database | Gets the databases in the database management system (DBMS). |
Database monitor | db.odbc.get[get_db,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Get PDB | Gets the pluggable database (PDB) in DBMS. |
Database monitor | db.odbc.get[get_pdb,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Get tablespace | Gets tablespaces in DBMS. |
Database monitor | db.odbc.get[get_tablespace,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Version | The Oracle Server version. |
Dependent item | oracle.version Preprocessing
|
| Oracle: Uptime | The Oracle instance uptime expressed in seconds. |
Dependent item | oracle.uptime Preprocessing
|
| Oracle: Instance status | The status of the instance. |
Dependent item | oracle.instance_status Preprocessing
|
| Oracle: Archiver state | The status of automatic archiving. |
Dependent item | oracle.archiver_state Preprocessing
|
| Oracle: Instance name | The name of the instance. |
Dependent item | oracle.instance_name Preprocessing
|
| Oracle: Instance hostname | The name of the host machine. |
Dependent item | oracle.instance_hostname Preprocessing
|
| Oracle: Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
Dependent item | oracle.instance.role Preprocessing
|
| Oracle: Get system metrics | Gets the values of the system metrics. |
Database monitor | db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Oracle: Sessions limit | The user and system sessions. |
Dependent item | oracle.session_limit Preprocessing
|
| Oracle: Datafiles limit | The maximum allowable number of datafiles. |
Dependent item | oracle.db_files_limit Preprocessing
|
| Oracle: Processes limit | The maximum number of user processes. |
Dependent item | oracle.processes_limit Preprocessing
|
| Oracle: Number of processes | The current number of user processes. |
Dependent item | oracle.processes_count Preprocessing
|
| Oracle: Datafiles count | The current number of datafiles. |
Dependent item | oracle.db_files_count Preprocessing
|
| Oracle: Buffer cache hit ratio | The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead). |
Dependent item | oracle.buffer_cache_hit_ratio Preprocessing
|
| Oracle: Cursor cache hit ratio | The ratio of cursor cache hits (CursorCacheHit/SoftParse). |
Dependent item | oracle.cursor_cache_hit_ratio Preprocessing
|
| Oracle: Library cache hit ratio | The ratio of library cache hits (Hits/Pins). |
Dependent item | oracle.library_cache_hit_ratio Preprocessing
|
| Oracle: Shared pool free % | Free memory of a shared pool expressed in %. |
Dependent item | oracle.shared_pool_free Preprocessing
|
| Oracle: Physical reads per second | Reads per second. |
Dependent item | oracle.physical_reads_rate Preprocessing
|
| Oracle: Physical writes per second | Writes per second. |
Dependent item | oracle.physical_writes_rate Preprocessing
|
| Oracle: Physical reads bytes per second | Read bytes per second. |
Dependent item | oracle.physical_read_bytes_rate Preprocessing
|
| Oracle: Physical writes bytes per second | Write bytes per second. |
Dependent item | oracle.physical_write_bytes_rate Preprocessing
|
| Oracle: Enqueue timeouts per second | Enqueue timeouts per second. |
Dependent item | oracle.enqueue_timeouts_rate Preprocessing
|
| Oracle: GC CR block received per second | The global cache (GC) and the consistent read (CR) block received per second. |
Dependent item | oracle.gc_cr_block_received_rate Preprocessing
|
| Oracle: Global cache blocks corrupted | The number of blocks that encountered corruption or checksum failure during the interconnect. |
Dependent item | oracle.cache_blocks_corrupt Preprocessing
|
| Oracle: Global cache blocks lost | The number of lost global cache blocks. |
Dependent item | oracle.cache_blocks_lost Preprocessing
|
| Oracle: Logons per second | The number of logon attempts. |
Dependent item | oracle.logons_rate Preprocessing
|
| Oracle: Average active sessions | The average number of active sessions at a point in time that are either working or waiting. |
Dependent item | oracle.active_sessions Preprocessing
|
| Oracle: Session count | The session count. |
Dependent item | oracle.session_count Preprocessing
|
| Oracle: Active user sessions | The number of active user sessions. |
Dependent item | oracle.session_active_user Preprocessing
|
| Oracle: Active background sessions | The number of active background sessions. |
Dependent item | oracle.session_active_background Preprocessing
|
| Oracle: Inactive user sessions | The number of inactive user sessions. |
Dependent item | oracle.session_inactive_user Preprocessing
|
| Oracle: Sessions lock rate | 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. |
Dependent item | oracle.session_lock_rate Preprocessing
|
| Oracle: Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | The count of the prolongedly locked sessions. (You can change the duration of the maximum session lock in seconds for a query using the |
Dependent item | oracle.session_long_time_locked Preprocessing
|
| Oracle: Sessions concurrency | The percentage of concurrency. Concurrency is a database behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, and the rest of the transactions wait for access. When the access to a resource is locked for a long time, the concurrency grows (like the transaction queue), often leaving 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. |
Dependent item | oracle.session_concurrency_rate Preprocessing
|
| Oracle: User '{$ORACLE.USER}' expire password | The number of days before the Zabbix account password expires. |
Dependent item | oracle.user_expire_password Preprocessing
|
| Oracle: Active serial sessions | The number of active serial sessions. |
Dependent item | oracle.active_serial_sessions Preprocessing
|
| Oracle: Active parallel sessions | The number of active parallel sessions. |
Dependent item | oracle.active_parallel_sessions Preprocessing
|
| Oracle: Long table scans per second | The number of long table scans per second. A table is considered long if it is not cached and if its high water mark is greater than five blocks. |
Dependent item | oracle.long_table_scans_rate Preprocessing
|
| Oracle: SQL service response time | The Structured Query Language (SQL) service response time expressed in seconds. |
Dependent item | oracle.service_response_time Preprocessing
|
| Oracle: User rollbacks per second | The number of times that users manually issued the |
Dependent item | oracle.user_rollbacks_rate Preprocessing
|
| Oracle: Total sorts per user call | The total sorts per user call. |
Dependent item | oracle.sorts_per_user_call Preprocessing
|
| Oracle: Rows per sort | The average number of rows per sort for all types of sorts performed. |
Dependent item | oracle.rows_per_sort Preprocessing
|
| Oracle: Disk sort per second | The number of sorts going to disk per second. |
Dependent item | oracle.disk_sorts Preprocessing
|
| Oracle: Memory sorts ratio | The percentage of sorts (from |
Dependent item | oracle.memory_sorts_ratio Preprocessing
|
| Oracle: Database wait time ratio | 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, etc. |
Dependent item | oracle.database_wait_time_ratio Preprocessing
|
| Oracle: Database CPU time ratio | The ratio calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time. |
Dependent item | oracle.database_cpu_time_ratio Preprocessing
|
| Oracle: Temp space used | Used temporary space. |
Dependent item | oracle.temp_space_used Preprocessing
|
| Oracle: PGA, Total inuse | The amount of Program Global Area (PGA) memory 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). |
Dependent item | oracle.total_pga_used Preprocessing
|
| Oracle: PGA, Aggregate target parameter | The current value of the |
Dependent item | oracle.pga_target Preprocessing
|
| Oracle: PGA, Total allocated | The current amount of the PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the |
Dependent item | oracle.total_pga_allocated Preprocessing
|
| Oracle: PGA, Total freeable | The number of bytes of the PGA memory in all processes that could be freed back to the OS. |
Dependent item | oracle.total_pga_freeable Preprocessing
|
| Oracle: PGA, Global memory bound | The maximum size of a work area executed in automatic mode. |
Dependent item | oracle.pga_global_bound Preprocessing
|
| Oracle: FRA, Space limit | The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA). |
Dependent item | oracle.fra_space_limit Preprocessing
|
| Oracle: FRA, Used space | The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs. |
Dependent item | oracle.fra_space_used Preprocessing
|
| Oracle: FRA, Space reclaimable | The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low-priority files from the FRA. |
Dependent item | oracle.fra_space_reclaimable Preprocessing
|
| Oracle: FRA, Number of files | The number of files in the FRA. |
Dependent item | oracle.fra_number_of_files Preprocessing
|
| Oracle: FRA, Usable space in % | Percentage of space usable in the FRA. |
Dependent item | oracle.fra_usable_pct Preprocessing
|
| Oracle: FRA, Number of restore points | Number of restore points in the FRA. |
Dependent item | oracle.fra_restore_point Preprocessing
|
| Oracle: SGA, java pool | The memory is allocated from the Java pool. |
Dependent item | oracle.sga_java_pool Preprocessing
|
| Oracle: SGA, large pool | The memory is allocated from a large pool. |
Dependent item | oracle.sga_large_pool Preprocessing
|
| Oracle: SGA, shared pool | The memory is allocated from a shared pool. |
Dependent item | oracle.sga_shared_pool Preprocessing
|
| Oracle: SGA, log buffer | The number of bytes allocated for the redo log buffer. |
Dependent item | oracle.sga_log_buffer Preprocessing
|
| Oracle: SGA, fixed | The fixed System Global Area (SGA) is an internal housekeeping area. |
Dependent item | oracle.sga_fixed Preprocessing
|
| Oracle: SGA, buffer cache | The size of standard block cache. |
Dependent item | oracle.sga_buffer_cache Preprocessing
|
| Oracle: Redo logs available to switch | The number of inactive/unused redo logs available for log switching. |
Dependent item | oracle.redo_logs_available Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Port {$ORACLE.PORT} is unavailable | The TCP port of the Oracle Server service is currently unavailable. |
max(/Oracle by ODBC/net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}],#3)=0 and max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)>0 |
Disaster | |
| Oracle: LISTENER process is not running | The Oracle listener process is not running. |
max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)=0 |
Disaster | |
| Oracle: Version has changed | The Oracle Database version has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.version,#1)<>last(/Oracle by ODBC/oracle.version,#2) and length(last(/Oracle by ODBC/oracle.version))>0 |
Info | Manual close: Yes |
| Oracle: Host has been restarted | Uptime is less than 10 minutes. |
last(/Oracle by ODBC/oracle.uptime)<10m |
Info | Manual close: Yes |
| Oracle: Failed to fetch info data | Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by ODBC/oracle.uptime,5m)=1 |
Warning | Depends on:
|
| Oracle: Instance name has changed | An Oracle Database instance name has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.instance_name,#1)<>last(/Oracle by ODBC/oracle.instance_name,#2) and length(last(/Oracle by ODBC/oracle.instance_name))>0 |
Info | Manual close: Yes |
| Oracle: Instance hostname has changed | An Oracle Database instance hostname has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.instance_hostname,#1)<>last(/Oracle by ODBC/oracle.instance_hostname,#2) and length(last(/Oracle by ODBC/oracle.instance_hostname))>0 |
Info | Manual close: Yes |
| Oracle: Too many active processes | Active processes are using more than |
min(/Oracle by ODBC/oracle.processes_count,5m) * 100 / last(/Oracle by ODBC/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
Warning | |
| Oracle: Too many database files | The number of datafiles is higher than |
min(/Oracle by ODBC/oracle.db_files_count,5m) * 100 / last(/Oracle by ODBC/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
Warning | |
| Oracle: Shared pool free is too low | The free memory percent of the shared pool has been less than |
max(/Oracle by ODBC/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
Warning | |
| Oracle: Too many active sessions | Active sessions are using more than |
min(/Oracle by ODBC/oracle.session_count,5m) * 100 / last(/Oracle by ODBC/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
Warning | |
| Oracle: Too many locked sessions | The number of locked sessions exceeds |
min(/Oracle by ODBC/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too many sessions locked | The number of locked sessions exceeding |
min(/Oracle by ODBC/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
Warning | |
| Oracle: Too high database concurrency | The concurrency rate exceeds |
min(/Oracle by ODBC/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
Warning | |
| Oracle: Zabbix account will expire soon | The password for the Zabbix user in the database expires soon. |
last(/Oracle by ODBC/oracle.user_expire_password) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
Warning | |
| Oracle: Total PGA inuse is too high | The total PGA currently consumed by work areas is more than |
min(/Oracle by ODBC/oracle.total_pga_used,5m) * 100 / last(/Oracle by ODBC/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
Warning | |
| Oracle: Number of REDO logs available for switching is too low | The number of inactive/unused redos available for log switching is low (risk of database downtime). |
max(/Oracle by ODBC/oracle.redo_logs_available,5m) < {$ORACLE.REDO.MIN.WARN} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Used for database discovery. |
Dependent item | oracle.db.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle Database '{#DBNAME}': Get CDB and No-CDB info | Gets the information about the CDB and non-CDB database on an instance. |
Database monitor | db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Oracle Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.db_open_mode["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Role | The current role of the database where: 1 - SNAPSHOT STANDBY; 2 - LOGICAL STANDBY; 3 - PHYSICAL STANDBY; 4 - PRIMARY; 5 - FAR SYNC. |
Dependent item | oracle.db_role["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Log mode | The archive log mode where: 0 - NOARCHIVELOG; 1 - ARCHIVELOG; 2 - MANUAL. |
Dependent item | oracle.db_log_mode["{#DBNAME}"] Preprocessing
|
| Oracle Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode ( |
Dependent item | oracle.db_force_logging["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes Depends on:
|
| Oracle Database '{#DBNAME}': Role has changed | The Oracle Database role has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Oracle Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force logging mode is a very important metric for databases in |
last(/Oracle by ODBC/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by ODBC/oracle.db_log_mode["{#DBNAME}"]) = 1 |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| PDB discovery | Used for the discovery of the pluggable database (PDB). |
Dependent item | oracle.pdb.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle Database '{#DBNAME}': Get PDB info | Gets the information about the PDB database on an instance. |
Database monitor | db.odbc.get[get_pdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Oracle Database '{#DBNAME}': Open status | 1 - MOUNTED; 2 - READ WRITE; 3 - READ ONLY; 4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode). |
Dependent item | oracle.pdb_open_mode["{#DBNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle Database is in a mounted state. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"])=1 |
Warning | |
| Oracle Database '{#DBNAME}': Open status has changed | The Oracle Database open status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"],#2) |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Tablespace discovery | Used for the discovery of tablespaces in DBMS. |
Dependent item | oracle.tablespace.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Get tablespaces stats | Gets the statistics of the tablespace. |
Database monitor | db.odbc.get[get_{#CON_NAME}tablespace{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for the tablespace (sum of the current size of datafiles). |
Dependent item | oracle.tbs_alloc_bytes["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace MAX size, bytes | The maximum size of the tablespace. |
Dependent item | oracle.tbs_max_bytes["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for the tablespace (current size of datafiles minus the free space). |
Dependent item | oracle.tbs_used_bytes["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of the allocated space. |
Dependent item | oracle.tbs_free_bytes["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/max bytes*100. |
Dependent item | oracle.tbs_used_pct["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/allocated bytes*100. |
Dependent item | oracle.tbs_used_file_pct["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX, percent | Used bytes/max bytes*100. |
Dependent item | oracle.tbs_used_from_max_pct["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Open status | The tablespace status where: 1 - ONLINE; 2 - OFFLINE; 3 - READ ONLY. |
Dependent item | oracle.tbs_status["{#CON_NAME}","{#TABLESPACE}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace utilization is too high | The utilization of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
High | |
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
High | |
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN} |
Warning | Depends on:
|
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace usage from MAX is too high | The usage of the tablespace |
min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_NAME}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH} |
High | |
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by ODBC/oracle.tbs_status["{#CON_NAME}","{#TABLESPACE}"])=2 |
Warning | |
| Oracle '{#CON_NAME}' TBS '{#TABLESPACE}': Tablespace status has changed | Oracle tablespace status has changed. Acknowledge to close the problem manually. |
last(/Oracle by ODBC/oracle.tbs_status["{#CON_NAME}","{#TABLESPACE}"],#1)<>last(/Oracle by ODBC/oracle.tbs_status["{#CON_NAME}","{#TABLESPACE}"],#2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archive log discovery | Used for the discovery of the log archive. |
Dependent item | oracle.archivelog.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Archivelog '{#DEST_NAME}': Get archive log info | Gets the archive log statistics. |
Database monitor | db.odbc.get[get_archivelog_{#DEST_NAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Error | Displays the error message. |
Dependent item | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived. |
Dependent item | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing
|
| Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination where: 1 - VALID; 2 - DEFERRED; 3 - ERROR; 0 - UNKNOWN. |
Dependent item | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Archivelog '{#DEST_NAME}': Log Archive is not valid | The trigger will launch if the archive log destination is not in one of these states: |
last(/Oracle by ODBC/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
High |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM disk groups discovery | Used for discovering the ASM disk groups. |
Dependent item | oracle.asm.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| ASM '{#DGNAME}': Get ASM stats | Gets the ASM disk group statistics. |
Database monitor | db.odbc.get[get_asm_{#DGNAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Preprocessing
|
| ASM '{#DGNAME}': Total size | The total size of the ASM disk group. |
Dependent item | oracle.asm_total_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Free size | The free size of the ASM disk group. |
Dependent item | oracle.asm_free_size["{#DGNAME}"] Preprocessing
|
| ASM '{#DGNAME}': Used size, percent | Usage of the ASM disk group expressed in %. |
Dependent item | oracle.asm_used_pct["{#DGNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
Warning | Depends on:
|
| ASM '{#DGNAME}': Disk group usage is too high | The usage of the ASM disk group expressed in % exceeds |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
High |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/oracle_odbc?at=release/5.4
For Zabbix version: 5.4 and higher
The template is developed for monitoring DBMS Oracle Database single instance via ODBC.
This template was tested on:
See Zabbix template operation for basic instructions.
CREATE USER zabbix_mon IDENTIFIED BY <PASSWORD>;
-- Grant access to the zabbix_mon user.
GRANT CONNECT, CREATE SESSION TO zabbix_mon;
GRANT SELECT ON v$instance TO zabbix_mon;
GRANT SELECT ON v$database TO zabbix_mon;
GRANT SELECT ON v$sysmetric TO zabbix_mon;
GRANT SELECT ON v$system_parameter TO zabbix_mon;
GRANT SELECT ON v$session TO zabbix_mon;
GRANT SELECT ON v$recovery_file_dest TO zabbix_mon;
GRANT SELECT ON v$active_session_history TO zabbix_mon;
GRANT SELECT ON v$osstat TO zabbix_mon;
GRANT SELECT ON v$restore_point TO zabbix_mon;
GRANT SELECT ON v$process TO zabbix_mon;
GRANT SELECT ON v$datafile TO zabbix_mon;
GRANT SELECT ON v$pgastat TO zabbix_mon;
GRANT SELECT ON v$sgastat TO zabbix_mon;
GRANT SELECT ON v$log TO zabbix_mon;
GRANT SELECT ON v$archive_dest TO zabbix_mon;
GRANT SELECT ON v$asm_diskgroup TO zabbix_mon;
GRANT SELECT ON sys.dba_data_files TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACES TO zabbix_mon;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO zabbix_mon;
GRANT SELECT ON DBA_USERS TO zabbix_mon;
Note! Make sure that ODBC connects to Oracle with session parameter NLS_NUMERIC_CHARACTERS= '.,' It is important for displaying float numbers in Zabbix correctly.
Install the 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.
Configure Zabbix server or Zabbix proxy for Oracle ENV Usage. Edit or add a new file:
Edit or add new file
/etc/sysconfig/zabbix-server # for server
/etc/sysconfig/zabbix-proxy # for proxy
Then, add:
export ORACLE_HOME=/usr/lib/oracle/19.6/client64
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib64:/usr/lib:$ORACLE_HOME/bin
export TNS_ADMIN=$ORACLE_HOME/network/admin
Restart Zabbix server or Zabbix proxy.
Set the username and password in host macros ({$ORACLE.USER} and {$ORACLE.PASSWORD}).
Set the {$ORACLE.DRIVER} and {$ORACLE.SERVICE} in host macros. {$ORACLE.DRIVER} is a path to driver location in OS. The "Service's TCP port state" item uses {HOST.CONN} and {$ORACLE.PORT} macros to check the availability of the listener.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$ORACLE.ASM.USED.PCT.MAX.HIGH} | Maximum percentage of used ASM disk group for high trigger expression. |
95 |
| {$ORACLE.ASM.USED.PCT.MAX.WARN} | Maximum percentage of used ASM disk group for warning trigger expression. |
90 |
| {$ORACLE.CONCURRENCY.MAX.WARN} | Maximum percentage of sessions concurrency usage for trigger expression. |
80 |
| {$ORACLE.DB.FILE.MAX.WARN} | Maximum percentage of database files for trigger expression. |
80 |
| {$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} | This macro is used in database discovery. It can be overridden on a host or linked template level. |
PDB\$SEED |
| {$ORACLE.DRIVER} | Oracle driver path. e.g /usr/lib/oracle/21/client64/lib/libsqora.so.21.1 |
<Put path to oracle driver here> |
| {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} | Number of days of warning before password expires (for trigger expression). |
7 |
| {$ORACLE.PASSWORD} | Oracle user password. |
<Put your password here> |
| {$ORACLE.PGA.USE.MAX.WARN} | Maximum percentage of PGA usage alert threshold (for trigger expression). |
90 |
| {$ORACLE.PORT} | Oracle DB TCP port. |
1521 |
| {$ORACLE.PROCESSES.MAX.WARN} | Maximum percentage of active processes alert threshold (for trigger expression). |
80 |
| {$ORACLE.REDO.MIN.WARN} | Minimum number of REDO logs alert threshold (for trigger expression). |
3 |
| {$ORACLE.SERVICE} | Oracle service name |
<Put oracle service name here> |
| {$ORACLE.SESSION.LOCK.MAX.TIME} | Maximum session lock duration in seconds for count the session as a prolongedly locked query. |
600 |
| {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} | Maximum number of the prolongedly locked sessions alert threshold (for trigger expression). |
3 |
| {$ORACLE.SESSIONS.LOCK.MAX.WARN} | Maximum percentage of locked sessions alert threshold (for trigger expression). |
20 |
| {$ORACLE.SESSIONS.MAX.WARN} | Maximum percentage of active sessions alert threshold (for trigger expression). |
80 |
| {$ORACLE.SHARED.FREE.MIN.WARN} | Minimum percentage of free shared pool alert threshold (for trigger expression). |
5 |
| {$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} | This macro is used in tablespace discovery. It can be overridden on a host or linked template level. |
CHANGE_IF_NEEDED |
| {$ORACLE.TBS.USED.PCT.MAX.HIGH} | Maximum percentage of used (Used bytes/Allocated bytes) tablespace high severity alert threshold (for trigger expression). |
95 |
| {$ORACLE.TBS.USED.PCT.MAX.WARN} | Maximum percentage of used (Used bytes/Allocated bytes) tablespace warning severity alert threshold (for trigger expression). |
90 |
| {$ORACLE.TBS.UTIL.PCT.MAX.HIGH} | Maximum percentage of utilization (Allocated bytes/Max bytes) tablespace high severity alert threshold (for trigger expression). |
90 |
| {$ORACLE.TBS.UTIL.PCT.MAX.WARN} | Maximum percentage of utilization (Allocated bytes/Max bytes) tablespace warning severity alert threshold (for trigger expression). |
80 |
| {$ORACLE.USER} | Oracle username. |
<Put your username here> |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Database discovery | Scanning databases in DBMS. |
ODBC | db.odbc.discovery[db_list,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| PDB discovery | Scanning PDB in DBMS. |
ODBC | db.odbc.discovery[pdb_list,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Filter: AND- {#DBNAME} MATCHES_REGEX - {#DBNAME} NOT_MATCHES_REGEX |
| Tablespace discovery | Scanning tablespaces in DBMS. |
ODBC | db.odbc.discovery[tbsname,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Filter: AND- {#TABLESPACE} MATCHES_REGEX - {#TABLESPACE} NOT_MATCHES_REGEX |
| Archive log discovery | Log archive destinations. |
ODBC | db.odbc.discovery[archivelog,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| ASM disk groups discovery | ASM disk groups |
ODBC | db.odbc.discovery[asm,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Oracle | Oracle: Service's TCP port state | Test the availability of Oracle on TCP port. |
ZABBIX_PASSIVE | net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Number of LISTENER processes | Number of LISTENER processes running |
ZABBIX_PASSIVE | proc.num[,,,"tnslsnr LISTENER"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Version | Oracle Server version. |
DEPENDENT | oracle.version Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle: Uptime | Oracle instance uptime in seconds. |
DEPENDENT | oracle.uptime Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance status | Status of the instance. |
DEPENDENT | oracle.instance_status Preprocessing: - JSONPATH: |
| Oracle | Oracle: Archiver state | Automatic archiving status. |
DEPENDENT | oracle.archiver_state Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance name | Name of the instance. |
DEPENDENT | oracle.instance_name Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance hostname | Name of the host machine. |
DEPENDENT | oracle.instance_hostname Preprocessing: - JSONPATH: |
| Oracle | Oracle: Instance role | Indicates whether the instance is an active instance or an inactive secondary instance. |
DEPENDENT | oracle.instance.role Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions limit | User and system sessions. |
DEPENDENT | oracle.session_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Datafiles limit | Max allowable number of datafile. |
DEPENDENT | oracle.db_files_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Processes limit | Max user processes. |
DEPENDENT | oracle.processes_limit Preprocessing: - JSONPATH: |
| Oracle | Oracle: Number of processes | DEPENDENT | oracle.processes_count Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: Datafiles count | Current number of datafile. |
DEPENDENT | oracle.db_files_count Preprocessing: - JSONPATH: |
| Oracle | Oracle: Buffer cache hit ratio | Ratio of buffer cache hits. (LogRead - PhyRead)/LogRead |
DEPENDENT | oracle.buffer_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Cursor cache hit ratio | Ratio of cursor cache hits. CursorCacheHit/SoftParse |
DEPENDENT | oracle.cursor_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Library cache hit ratio | Ratio of library cache hits. Hits/Pins |
DEPENDENT | oracle.library_cache_hit_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Shared pool free % | Shared pool free memory percent. Free/Total |
DEPENDENT | oracle.shared_pool_free Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical reads per second | Reads per second. |
DEPENDENT | oracle.physical_reads_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical writes per second | Writes per second. |
DEPENDENT | oracle.physical_writes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical reads bytes per second | Read bytes per second. |
DEPENDENT | oracle.physical_read_bytes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Physical writes bytes per second | Write bytes per second. |
DEPENDENT | oracle.physical_write_bytes_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Enqueue timeouts per second | Enqueue timeouts per second. |
DEPENDENT | oracle.enqueue_timeouts_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: GC CR block received per second | GC CR block received per second. |
DEPENDENT | oracle.gc_cr_block_received_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Global cache blocks corrupted | The number of blocks that encountered a corruption or checksum failure during interconnect. |
DEPENDENT | oracle.cache_blocks_corrupt Preprocessing: - JSONPATH: |
| Oracle | Oracle: Global cache blocks lost | The number of global cache blocks lost |
DEPENDENT | oracle.cache_blocks_lost Preprocessing: - JSONPATH: |
| Oracle | Oracle: Logons per second | The number of logon attempts. |
DEPENDENT | oracle.logons_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Average active sessions | The average active sessions at a point in time. It is the number of sessions that are either working or waiting. |
DEPENDENT | oracle.active_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Session count | Session count. |
DEPENDENT | oracle.session_count Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active user sessions | The number of active user sessions. |
DEPENDENT | oracle.session_active_user Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Active background sessions | The number of active background sessions. |
DEPENDENT | oracle.session_active_background Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Inactive user sessions | The number of inactive user sessions. |
DEPENDENT | oracle.session_inactive_user Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Sessions lock rate | 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. |
DEPENDENT | oracle.session_lock_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s | Count of the prolongedly locked sessions. (You can change maximum session lock duration in seconds for query by {$ORACLE.SESSION.LOCK.MAX.TIME} macro. Default 600 sec) |
DEPENDENT | oracle.session_long_time_locked Preprocessing: - JSONPATH: |
| Oracle | Oracle: Sessions concurrency | 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. |
DEPENDENT | oracle.session_concurrency_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: User '{$ORACLE.USER}' expire password | The number of days before zabbix account password expired. |
DEPENDENT | oracle.user_expire_password Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active serial sessions | The number of active serial sessions. |
DEPENDENT | oracle.active_serial_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Active parallel sessions | The number of active parallel sessions. |
DEPENDENT | oracle.active_parallel_sessions Preprocessing: - JSONPATH: |
| Oracle | Oracle: Long table scans per second | 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. |
DEPENDENT | oracle.long_table_scans_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: SQL service response time | SQL service response time in seconds. |
DEPENDENT | oracle.service_response_time Preprocessing: - JSONPATH: - MULTIPLIER: |
| Oracle | Oracle: User rollbacks per second | The number of times that users manually issue the ROLLBACK statement or an error occurred during a user's transactions. |
DEPENDENT | oracle.user_rollbacks_rate Preprocessing: - JSONPATH: |
| Oracle | Oracle: Total sorts per user call | Total sorts per user call. |
DEPENDENT | oracle.sorts_per_user_call Preprocessing: - JSONPATH: |
| Oracle | Oracle: Rows per sort | The average number of rows per sort for all types of sorts performed. |
DEPENDENT | oracle.rows_per_sort Preprocessing: - JSONPATH: |
| Oracle | Oracle: Disk sort per second | The number of sorts going to disk per second |
DEPENDENT | oracle.disk_sorts Preprocessing: - JSONPATH: |
| Oracle | Oracle: Memory sorts ratio | The percentage of sorts (from ORDER BY clauses or index building) that are done to disk vs in-memory. |
DEPENDENT | oracle.memory_sorts_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Database wait time ratio | 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 |
DEPENDENT | oracle.database_wait_time_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Database CPU time ratio | Calculated by dividing the total CPU used by the database by the Oracle time model statistic DB time. |
DEPENDENT | oracle.database_cpu_time_ratio Preprocessing: - JSONPATH: |
| Oracle | Oracle: Temp space used | Temp space used. |
DEPENDENT | oracle.temp_space_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total inuse | 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). |
DEPENDENT | oracle.total_pga_used Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Aggregate target parameter | 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. |
DEPENDENT | oracle.pga_target Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total allocated | 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. |
DEPENDENT | oracle.total_pga_allocated Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Total freeable | Number of bytes of PGA memory in all processes that could be freed back to the operating system. |
DEPENDENT | oracle.total_pga_freeable Preprocessing: - JSONPATH: |
| Oracle | Oracle: PGA, Global memory bound | Maximum size of a work area executed in automatic mode. |
DEPENDENT | oracle.pga_global_bound Preprocessing: - JSONPATH: |
| Oracle | Oracle: FRA, Space limit | Maximum amount of disk space (in bytes) that the database can use for the fast recovery area. |
DEPENDENT | oracle.fra_space_limit Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: FRA, Used space | Amount of disk space (in bytes) used by fast recovery area files created in current and all previous fast recovery areas. |
DEPENDENT | oracle.fra_space_used Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: FRA, Space reclaimable | 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. |
DEPENDENT | oracle.fra_space_reclaimable Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: FRA, Number of files | Number of files in the fast recovery area |
DEPENDENT | oracle.fra_number_of_files Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: FRA, Usable space in % | DEPENDENT | oracle.fra_usable_pct Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
|
| Oracle | Oracle: FRA, Number of restore points | DEPENDENT | oracle.fra_restore_point Preprocessing: - JSONPATH: |
|
| Oracle | Oracle: SGA, java pool | Memory is allocated from the java pool. |
DEPENDENT | oracle.sga_java_pool Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: SGA, large pool | Memory is allocated from the large pool. |
DEPENDENT | oracle.sga_large_pool Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: SGA, shared pool | Memory is allocated from the shared pool. |
DEPENDENT | oracle.sga_shared_pool Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: SGA, log buffer | The number of bytes allocated for the redo log buffer. |
DEPENDENT | oracle.sga_log_buffer Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: SGA, fixed | The fixed SGA is an internal housekeeping area. |
DEPENDENT | oracle.sga_fixed Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: SGA, buffer cache | The size of the cache of standard blocks. |
DEPENDENT | oracle.sga_buffer_cache Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
| Oracle | Oracle: Redo logs available to switch | Number of available for log switching inactive/unused REDO logs. |
DEPENDENT | oracle.redo_logs_available Preprocessing: - JSONPATH: |
| Oracle | Oracle Database '{#DBNAME}': Open status | 1 - 'MOUNTED', 2 - 'READ WRITE', 3 - 'READ ONLY', 4 - 'READ ONLY WITH APPLY' (A physical standby database is open in real-time query mode) |
DEPENDENT | oracle.db_open_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Role | Current role of the database, 1 - 'SNAPSHOT STANDBY', 2 - 'LOGICAL STANDBY', 3 - 'PHYSICAL STANDBY', 4 - 'PRIMARY ', 5 -'FAR SYNC' |
DEPENDENT | oracle.db_role["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Log mode | Archive log mode, 0 - 'NOARCHIVELOG', 1 - 'ARCHIVELOG', 2 - 'MANUAL' |
DEPENDENT | oracle.db_log_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Force logging | Indicates whether the database is under force logging mode (YES) or not (NO) |
DEPENDENT | oracle.db_force_logging["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle Database '{#DBNAME}': Open status | 1 - 'MOUNTED', 2 - 'READ WRITE', 3 - 'READ ONLY', 4 - 'READ ONLY WITH APPLY' (A physical standby database is open in real-time query mode) |
DEPENDENT | oracle.pdb_open_mode["{#DBNAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace allocated, bytes | Currently allocated bytes for tablespace (sum of the current size of datafiles). |
DEPENDENT | oracle.tbs_alloc_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace MAX size, bytes | Maximum size of tablespace. |
DEPENDENT | oracle.tbs_max_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace used, bytes | Currently used bytes for tablespace (current size of datafiles-free space). |
DEPENDENT | oracle.tbs_used_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace free, bytes | Free bytes of allocated space. |
DEPENDENT | oracle.tbs_free_bytes["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace allocated, percent | Allocated bytes/Max bytes*100 |
DEPENDENT | oracle.tbs_used_pct["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Tablespace usage, percent | Used bytes/Allocated bytes*100 |
DEPENDENT | oracle.tbs_used_file_pct["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Oracle TBS '{#TABLESPACE}': Open status | Tablespace status. 1 - 'ONLINE' 2 - 'OFFLINE' 3- 'READ ONLY' |
DEPENDENT | oracle.tbs_status["{#TABLESPACE}"] Preprocessing: - JSONPATH: |
| Oracle | Archivelog '{#DEST_NAME}': Error | Displays the error text |
DEPENDENT | oracle.archivelog_error["{#DEST_NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | Archivelog '{#DEST_NAME}': Last sequence | Identifies the sequence number of the last archived redo log to be archived |
DEPENDENT | oracle.archivelog_log_sequence["{#DEST_NAME}"] Preprocessing: - JSONPATH: |
| Oracle | Archivelog '{#DEST_NAME}': Status | Identifies the current status of the destination: 1 - 'Valid', 2 - 'Deferred',3 - 'Error', 0 - 'Unknown' |
DEPENDENT | oracle.archivelog_log_status["{#DEST_NAME}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Oracle | ASM '{#DG_NAME}': Total size | Total size of ASM disk group. |
DEPENDENT | oracle.asm_total_size["{#DG_NAME}"] Preprocessing: - JSONPATH: |
| Oracle | ASM '{#DG_NAME}': Free size | Free size of ASM disk group. |
DEPENDENT | oracle.asm_free_size["{#DG_NAME}"] Preprocessing: - JSONPATH: |
| Oracle | ASM '{#DG_NAME}': Free size | Usage percent of ASM disk group. |
DEPENDENT | oracle.asm_used_pct["{#DG_NAME}"] Preprocessing: - JSONPATH: |
| Zabbix_raw_items | Oracle: Get instance state | The item gets state of the current instance. |
ODBC | db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Expression: The text is too long. Please see the template. |
| Zabbix_raw_items | Oracle: Get system metrics | The item gets system metric values. |
ODBC | db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Expression: The text is too long. Please see the template. |
| Zabbix_raw_items | Oracle: Get tablespaces stats | Get tablespaces stats. |
ODBC | db.odbc.get[get_tablespaces_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Expression: The text is too long. Please see the template. |
| Zabbix_raw_items | Oracle: Get CDB and No-CDB info | Get info about CDB and No-CDB databases on instance. |
ODBC | db.odbc.get[get_cdb_info,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Expression: The text is too long. Please see the template. |
| Zabbix_raw_items | Oracle: Get PDB info | Get info about PDB databases on instance. |
ODBC | db.odbc.get[get_pdb_info,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Expression: The text is too long. Please see the template. |
| Zabbix_raw_items | Oracle: Get archive log info | ODBC | db.odbc.get[get_archivelog_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Expression: The text is too long. Please see the template. |
|
| Zabbix_raw_items | Oracle: Get ASM stats | Get ASM disk groups stats. |
ODBC | db.odbc.get[get_asm_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{HOST.CONN}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"] Expression: The text is too long. Please see the template. |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Oracle: Port {$ORACLE.PORT} is unavailable | The TCP port of the Oracle Server service is currently unavailable. |
max(/Oracle by ODBC/net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}],#3)=0 and max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)>0 |
DISASTER | |
| Oracle: LISTENER process is not running | - |
max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)=0 |
DISASTER | |
| Oracle: Version has changed (new version value received: {ITEM.VALUE}) | Oracle DB version has changed. Ack to close. |
last(/Oracle by ODBC/oracle.version,#1)<>last(/Oracle by ODBC/oracle.version,#2) and length(last(/Oracle by ODBC/oracle.version))>0 |
INFO | Manual close: YES |
| Oracle: has been restarted (uptime < 10m) | Uptime is less than 10 minutes |
last(/Oracle by ODBC/oracle.uptime)<10m |
INFO | Manual close: YES |
| Oracle: Failed to fetch info data (or no data for 5m) | Zabbix has not received data for items for the last 5 minutes. The database might be unavailable for connecting. |
nodata(/Oracle by ODBC/oracle.uptime,5m)=1 |
WARNING | Depends on: - Oracle: Port {$ORACLE.PORT} is unavailable |
| Oracle: Instance name has changed (new name received: {ITEM.VALUE}) | Oracle DB Instance name has changed. Ack to close. |
last(/Oracle by ODBC/oracle.instance_name,#1)<>last(/Oracle by ODBC/oracle.instance_name,#2) and length(last(/Oracle by ODBC/oracle.instance_name))>0 |
INFO | Manual close: YES |
| Oracle: Instance hostname has changed (new hostname received: {ITEM.VALUE}) | Oracle DB Instance hostname has changed. Ack to close. |
last(/Oracle by ODBC/oracle.instance_hostname,#1)<>last(/Oracle by ODBC/oracle.instance_hostname,#2) and length(last(/Oracle by ODBC/oracle.instance_hostname))>0 |
INFO | Manual close: YES |
| Oracle: Too many active processes (over {$ORACLE.PROCESSES.MAX.WARN}% for 5 min) | Active processes are using more than {$ORACLE.PROCESSES.MAX.WARN}% of the available number of processes. |
min(/Oracle by ODBC/oracle.processes_count,5m) * 100 / last(/Oracle by ODBC/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN} |
WARNING | |
| Oracle: Too many database files (over {$ORACLE.DB.FILE.MAX.WARN}% for 5 min) | Number of datafiles is higher than {$ORACLE.DB.FILE.MAX.WARN}% of the available datafile files limit. |
min(/Oracle by ODBC/oracle.db_files_count,5m) * 100 / last(/Oracle by ODBC/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN} |
WARNING | |
| Oracle: Shared pool free is too low (less {$ORACLE.SHARED.FREE.MIN.WARN}% for 5m) | The shared pool free memory percent has been less than {$ORACLE.SHARED.FREE.MIN.WARN}% in the last 5 minutes. |
max(/Oracle by ODBC/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN} |
WARNING | |
| Oracle: Too many active sessions (over {$ORACLE.SESSIONS.MAX.WARN}% for 5 min) | Active sessions are using more than {$ORACLE.SESSIONS.MAX.WARN}% of the available sessions. |
min(/Oracle by ODBC/oracle.session_count,5m) * 100 / last(/Oracle by ODBC/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN} |
WARNING | |
| Oracle: Too many locked sessions (over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% for 5 min) | Number of locked sessions is over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% of the running sessions. |
min(/Oracle by ODBC/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN} |
WARNING | |
| Oracle: Too many sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s (over {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} for 5 min) | 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. |
min(/Oracle by ODBC/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} |
WARNING | |
| Oracle: Too high database concurrency (over {$ORACLE.CONCURRENCY.MAX.WARN}% for 5 min) | 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. |
min(/Oracle by ODBC/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN} |
WARNING | |
| Oracle: Zabbix account will expire soon (under {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} days) | Password for zabbix user in the database will expire soon. |
last(/Oracle by ODBC/oracle.user_expire_password) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} |
WARNING | |
| Oracle: Total PGA inuse is too high (over {$ORACLE.PGA.USE.MAX.WARN}% for 5 min) | Total PGA in use is more than {$ORACLE.PGA.USE.MAX.WARN}% of PGA_AGGREGATE_TARGET. |
min(/Oracle by ODBC/oracle.total_pga_used,5m) * 100 / last(/Oracle by ODBC/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN} |
WARNING | |
| Oracle: Number of REDO logs available for switching is too low (less {$ORACLE.REDO.MIN.WARN} for 5 min) | Number of available for log switching inactive/unused REDOs is low (Database down risk) |
max(/Oracle by ODBC/oracle.redo_logs_available,5m) < {$ORACLE.REDO.MIN.WARN} |
WARNING | |
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle DB has a MOUNTED state. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"])=1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status has changed (new value received: {ITEM.VALUE}) | Oracle DB open status has changed. Ack to close. |
last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#2) |
INFO | Manual close: YES Depends on: - Oracle Database '{#DBNAME}': Open status in mount mode |
| Oracle Database '{#DBNAME}': Role has changed (new value received: {ITEM.VALUE}) | Oracle DB role has changed. Ack to close. |
last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#2) |
INFO | Manual close: YES |
| Oracle Database '{#DBNAME}': Force logging is deactivated for DB with active Archivelog | Force Logging mode - it is very important metric for Databases in 'ARCHIVELOG'. This feature allows to forcibly write all transactions to the REDO. |
last(/Oracle by ODBC/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by ODBC/oracle.db_log_mode["{#DBNAME}"]) = 1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status in mount mode | The Oracle DB has a MOUNTED state. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"])=1 |
WARNING | |
| Oracle Database '{#DBNAME}': Open status has changed (new value received: {ITEM.VALUE}) | Oracle DB open status has changed. Ack to close. |
last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"],#2) |
INFO | Manual close: YES |
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m). | - |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
WARNING | Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m). |
| Oracle TBS '{#TABLESPACE}': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m). | - |
min(/Oracle by ODBC/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH} |
HIGH | |
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m). | - |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN} |
WARNING | Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m). |
| Oracle TBS '{#TABLESPACE}': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m). | - |
min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH} |
HIGH | |
| Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE | The tablespace is in the offline state. |
last(/Oracle by ODBC/oracle.tbs_status["{#TABLESPACE}"])=2 |
WARNING | |
| Oracle TBS '{#TABLESPACE}': Tablespace status has changed (new value received: {ITEM.VALUE}) | Oracle tablespace status has changed. Ack to close. |
last(/Oracle by ODBC/oracle.tbs_status["{#TABLESPACE}"],#1)<>last(/Oracle by ODBC/oracle.tbs_status["{#TABLESPACE}"],#2) |
INFO | Manual close: YES Depends on: - Oracle TBS '{#TABLESPACE}': Tablespace is OFFLINE |
| Archivelog '{#DEST_NAME}': Log Archive is not valid | ARL destination not in 3 - Valid or 2 - Deferred. |
last(/Oracle by ODBC/oracle.archivelog_log_status["{#DEST_NAME}"])<2 |
HIGH | |
| ASM '{#DG_NAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.WARN}% for 5m) | Usage percent of ASM disk group is over {$ORACLE.ASM.USED.PCT.MAX.WARN} |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DG_NAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN} |
WARNING | Depends on: - ASM '{#DG_NAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m) |
| ASM '{#DG_NAME}': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m) | Usage percent of ASM disk group is over {$ORACLE.ASM.USED.PCT.MAX.WARN} |
min(/Oracle by ODBC/oracle.asm_used_pct["{#DG_NAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH} |
HIGH |
Please report any issues with the template at https://support.zabbix.com
| Link | Source | Compatibility | Type, Technology | Created Updated | Rating |
|---|---|---|---|---|---|
| OCI_Dbaas This is a template to monitor OCI Dbaas with Zabbix.If you want to monitor Dbaas, OCI Monitoring function is not enough (or there is not Dbaas metrics?)So, It is Necessary to use other monitoring tools.This Zabbix template has been verified to run on zabbix3 or 4series.■ Sourcehttps://github.com/y-araki-git/zabbix-oci-dbaas■ ... template_zabbix_oci_dbaas |
GitHub Community Templates |
5.0+ |
| ||
| SNMP Tape Library Oracle StorageTek SL150 Hello,I created this template to monitor the Oracle StorageTek SL150 Modular Tape Library equipment ((www.oracle.com/br/storage/tape-storage/sl150-modular-tape-library/) via SNMP agent. I used as a base the MIB called "STREAMLINE-TAPE-LIBRARY-MIB" and validated it on an SL 150 device. This template is ... template_tape_library_oracle_storagetek_sl150 |
GitHub Community Templates |
5.0+ |
| ||
| SNMP Oracle SL3000 This is simple SNMP template for monitoring Oracle StorageTek SL3000 Modular Library SystemChecks:CapAccessibility (open allow/prevent)CapStateControllerHaId[1] (0=active/1=standby)TapeCountTriggers:ControllerHA_changestatusLLD:Checks:DriveCellContentLabelDriveFibreNodeNameDriveStateDriveTypeDriveRobotStateState ... template_oracle_storagetek_sl3000_modular_library_system_snmp |
GitHub Community Templates |
5.0+ |
| ||
| Oracle DB Zabbix template for oracle template_oracle_db |
GitHub Community Templates |
5.0+ |
| ||
| Pyora active send This is the fixed template for Zabbix PyOra to work on 3.0. I remove the unsupported tags and downgraded version. Note you will most likely have to update the triggers manually. template_3.0_for_pyora |
GitHub Community Templates |
5.0+ |
| ||
| ILOM ORACLE SRV X8-2 SNMP Trap Template for monitoring Oracle Exadata Infraestructure. template_oracle_exadata |
GitHub Community Templates |
5.0+ |
| ||
| Zabbix plugin to monitor RDBMS ZabbixDBA is fast, flexible, and continuously developing plugin to monitor your RDBMS. ZabbixDBA uses threading of DBI connections which is good for monitoring of multiple database instances simultaneously. Just configure it, run daemon and it will do all the job github.com/netrusov/ZabbixDBA |
GitHub |
Module, Template perl |
2015-06-29 2 y |
Popular
|
|
| Oracle database monitoring through Zabbix. Active check version of Pyora github.com/Lelik13a/Zabbix-PyOra-ActiveCheck |
GitHub |
Script, Template python |
2017-03-23 2 y |
Popular
|
|
| Oracle Database Monitoring on Zabbix Oracle monitoring script, that supports RAC. Written in GoLang github.com/FarhadF/orazabbix |
GitHub |
Script, Template golang |
2017-06-27 4 y |
||
| Zabbix template for Oracle databases monitoring via ODBC This template monitors Oracle database health, performance, security audit, etc. This is kinda fork of Orabbix probes. github.com/den-is/zbx_oracle_odbc |
GitHub |
Template |
2014-11-24 3 y |
||
| Oracle replication monitoring Everything done on the Database (Monitoring) was done via scripting, as on the Standard version the Standby server cannot have the listener running. Because of that, I had to develop a simple Bash script so I could monitor the replication delay between a Master and a Slave Oracle DB. github.com/lpossamai/zabbix_check_oracle_replication |
GitHub |
Externalscripts, Template bash |
2018-06-26 2 y |
||
| Zabbix Oracle ODBC Template Zabbix Oracle ODBC Template with Tablespace Autodiscovery github.com/rodrigoluissilva/Zabbix-Oracle-ODBC-Template |
GitHub |
Template, odbc odbc |
2016-07-25 4 y |
||
| github.com/crmall/oracle-zabbix [pt] |
GitHub |
Shell |
2015-06-03 3 y |
||
| Template Oracle VM (SNMP) for ZABBIX This template uses the SNMP to monitoring Oracle VM Server. github.com/sshutdownow/zabbix-oracle-vm |
GitHub |
Template |
2017-03-15 4 y |
||
| Generic database plugin - zbxdb A very simple but advanced monitoring solution for <b>databases</b>. It runs on a client machine so no extra software is needed on the database server. Just configure a client connection with enough privileges to be able to run queries in the databases that you want to monitor. github.com/ikzelf/zbxdb |
GitHub |
Module, Template python | |||
| Monitoring for ORACLE DB on HP-UX, SUSE, Windows Oracle DB: 11.2.x.x & 12.1.x.x github.com/alexpaknix/zabbix |
GitHub |
Oracle DB Oracle DB, Suse |
2013-08-02 6 y |
||
| Loadable module for Oracle github.com/alexander-nesterov/zabbix_module_oracle |
GitHub |
Module, Template C |
2017-09-28 8 y |