-
Epic
-
Resolution: Unresolved
-
Low
-
None
-
6.0.31
-
None
-
Zabbix Agent2 and Oracle in mounted state
It will be nice that zabbix user will be able to connect to oracle MOUNTED database with SYSDG role, which is default role in Oracle DBMS.
MOUNTED database - are dataguard databases (which is not in open state).
MOUNTED database - can only connect sysdba, sysoper and sysdg users.
sysdba - can connect to mounted database, but the problem ** is the highest level of admin, to give this to zabbix user - is not acceptible by security reasons.
sysoper - can connect to mounted database, but is is not allowed to query any views or table, this kind of role is good for startup and shutdown database, etc...
sysasm - cannot connect
sysdg - is made specially for this case, to check dataguard (hence - dg) and can connect to mounted database and also, can query views and do periodical check on dataguard status (v$dataguard_stats, v$dataguard_status etc...)
From official documentation i read and missing sysdg role
User can contain sysdba, sysoper, sysasm privileges.
When i tried to enter in connect string "as sysdg" - zabbix agent2 does not understands tis and generates errors:
2024/07/24 12:47:07.595982 [Oracle] user="C##ZABBIX as sysdg"
ConnectString="(
DESCRIPTION=(
ADDRESS=(PROTOCOL=tcp)
(HOST=oracle.com)
(PORT=1521)
)
(CONNECT_DATA=(SERVICE_NAME=\"CDB1\"))
(CONNECT_TIMEOUT=30)
(RETRY_COUNT=0)
)"
standalone params=
:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
When i tried to enter in connect string "as sysoper" - zabbix agent2, it can connect, but cannot query anything, agent does not understand this and generates errors:
2024/07/24 13:01:17.077494 [Oracle] Cannot fetch data: dpiStmt_execute: ORA-01219: database or pluggable database not open: queries allowed on fixed tables or views only.
When i enter into connect string as default user, like in open state, zabbix user cannot connect, thus, throws an error:
2024/07/24 12:50:54.005388 [Oracle] user="C##ZABBIX as sysdg"
ConnectString="(
DESCRIPTION=(
ADDRESS=(PROTOCOL=tcp)
(HOST=oracle.com)
(PORT=1521)
)
(CONNECT_DATA=(SERVICE_NAME=\"CDB1\"))
(CONNECT_TIMEOUT=30)
(RETRY_COUNT=0)
)"
standalone params=
:
ORA-01033: ORACLE initialization or shutdown in progress
Process ID: 0
Session ID: 0 Serial number: 0
Or maybe im doing something wrong, because i can see in your documentation it is possible to monitor database states:
But as i mentioned above, mounted and physical standby can be monitored with sysdba role, or with sysdg. Maybe i'm missing someting?
P.s. i also tried to give C##ZABBIX user "select any dictionary" as sysoper user, but still no go.
Thank you. Looking forward for your answer.
Our agent: