Oracle Monitoring

For some time now, checkmk has been thinking about rewriting the mk_oracle plugin to make it more maintainable and to adapt it to new requirements.

Since Oracle 23c Multitenant is the standard and mk_oracle does not handle CDB/PDBs so well by default, a rework of the Oracle check is a necessary step.

I would be interested to know what your experiences are with the mk_oracle plugin? What does the existing mk_oracle do well and what is missing or needs to be improved from your point of view?

We use oracle-Exadata-Server. So no installation of checkmk-agent on db-server. As we use 2 node RAC an 2 node standby-RAC monitoring has to be done by remote-server.
checkMK-plugin uses v$views instead of gv$views. Due to this we have to configure 5 Remote_instances per database: 4 database-instances with sync_sections, 1 with async_sections.
Otherwise after database switchover most services would be stale or vanished:
example
#database: jobs, tablespaces, …
REMOTE_INSTANCE_pp1disp=‘checkmk:checkmk:::::pp1disp:19.18:pp1disp’
EXCLUDE_REMOTE_INSTANCE_pp1disp=$SYNC_SECTIONS
#primary-DB instances - sessions, processes, logswitch, locks, etc.
EXCLUDE_REMOTE_INSTANCE_pp1disp1=$ASYNC_SECTIONS
EXCLUDE_REMOTE_INSTANCE_pp1disp2=$ASYNC_SECTIONS
REMOTE_INSTANCE_pp1disp1=‘checkmk:checkmk:::::pp1disp:19.18:pp1disp1’
REMOTE_INSTANCE_pp1disp2=‘checkmk:checkmk:::::pp1disp:19.18:pp1disp2’
#Standby-DB instances
EXCLUDE_REMOTE_INSTANCE_pp1dispx1=$ASYNC_SECTIONS
EXCLUDE_REMOTE_INSTANCE_pp1dispx2=$ASYNC_SECTIONS
REMOTE_INSTANCE_pp1dispx1=‘checkmk:checkmk:::::pp1dispx:19.18:pp1dispx1’
REMOTE_INSTANCE_pp1dispx2=‘checkmk:checkmk:::::pp1dispx:19.18:pp1dispx2’

It would be very nice if checkmk would use gv$views for monitoring instead of v$views. So it could be one connect to database instead of 5. This Remotserver monitors 20 databases resulting in 100 connections per intervall to databases.