Metricbeat Oracle module

Hi,

I am trying to use the Metricbeat oracle module, but it seems that it requires the user to connect as a sysdba. Is there anyway for the sysdba requirement to be disabled?

I executed all queries for the tablespaces metricset without sysdba access successfully.

Thanks.

Hi @hendry.lim :slightly_smiling_face:

Unless I'm wrong, sysdba user role is mandatory for some tables in a 12c R2 fresh Oracle instance . Can you check with a fresh Oracle instance of the version supported in Metricbeat to confirm, please?

Thanks

Hi @Mario_Castro

I just built a new docker image using https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance based on Oracle Database 12c Release 2 (12.2.0.1.0) for Linux x86-64.

I am able to use the Metricbeat oracle module without the sysdba flag with the host URL: oracle://<host>:1521/ORCLCDB. I was using the default system user.

Thank you for your reply and help.

I guess that if you access with any other user than system (which has the dba role) you'll get some permissions error. ¿Can you check? We have had questions in the past regarding the exact permissions required to use the metricset, which seems fair because a database administrator will want to have a specific user for metrics and not use the system user, for example.

My main concern is that, as far as I remember, we implemented that check in code because the error returned wasn't descriptive enough to figure out what was going on.

We wanted something that could help developers be "ready to go" with as much feedback from the console as possible, without having to look at the docs.

I understand the concern and the required permission for the access. However, it is not a really usable implementation currently, since we usually do not have user access as a sysdba. I will try to check and get back to you on the permissions given to the Oracle non-sysdba user that we are using in another environment.

Thank you.

Just for completeness, the required tables that are being accessed now are:

From tablespace metricset, tables:

  • SYS.DBA_TEMP_FILES
  • DBA_TEMP_FREE_SPACE
  • dba_data_files
  • dba_free_space

From performance metricset:

  • V$BUFFER_POOL_STATISTICS
  • v$sesstat
  • v$statname
  • v$session
  • v$sysstat
  • V$LIBRARYCACHE

Another thing worth to mention is that more metricsets will be added to this module and it's unclear which tables will be required.

Feel free to open a PR to change this, we can discuss there, with more opinions of the community, what's the best approach :slight_smile:

Yup, thank you. I have seen those tables in the code and your PR to update the docs. I replicated the whole implementation (kind of) using Logstash before I moved back to use Metricbeat after I removed the if block in the connection.go.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.