Uploaded image for project: 'ZABBIX FEATURE REQUESTS'
  1. ZABBIX FEATURE REQUESTS
  2. ZBXNEXT-9364

Add support "as sysdg" connecting to MOUNTED database state for Oracle

XMLWordPrintable

    • Icon: Epic Epic
    • Resolution: Unresolved
    • Icon: Low Low
    • None
    • 6.0.31
    • Agent (G)
    • 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=

      {     authMode:0 connectionClass:<nil>      connectionClassLength:0      purity:0      newPassword:<nil>      newPasswordLength:0      appContext:<nil>      numAppContext:0      externalAuth:0      externalHandle:<nil>      pool:<nil>      tag:<nil>      tagLength:0      matchAnyTag:0      outTag:<nil>      outTagLength:0      outTagFound:0      shardingKeyColumns:<nil>      numShardingKeyColumns:0      superShardingKeyColumns:<nil>      numSuperShardingKeyColumns:0      outNewSession:0}


          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=

      {     authMode:0 connectionClass:<nil>      connectionClassLength:0      purity:0      newPassword:<nil>      newPasswordLength:0      appContext:<nil>      numAppContext:0      externalAuth:0      externalHandle:<nil>      pool:<nil>      tag:<nil>      tagLength:0      matchAnyTag:0      outTag:<nil>      outTagLength:0      outTagFound:0      shardingKeyColumns:<nil>      numShardingKeyColumns:0      superShardingKeyColumns:<nil>      numSuperShardingKeyColumns:0      outNewSession:0}


      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:

       

            vso Vladislavs Sokurenko
            Dardalion Julius
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: