Metric beat oracle module configuration

Hi Everyone,

I have configure my Orcacle.yml file in module.d folder with all required details ,also started the metricbeat.

Still i am not able to see anything in my my oracle dashboard .

is there any more setting i need to do .
please suggest.

Thanks in advance,
Mrunalini

Hi @mrunalini ,

You can run a couple of tests to verify that everything is configured properly:

  • metricbeat test output this will verify that Metricbeat can connect to the output

  • metricbeat test modules to test your modules settings. You can also run metricbeat test modules oracle to test only the oracle module.

After that, you can also run metricbeat setup that sets up the initial environment.

Let me know if this helps or you've already done this and you still don't see any data.

Hi @estermv

Thanks for response.

I am not sure about exact error:

I am getting 2 different error by running two different command as below

  1. journalctl -xe | grep 'metricbeat'

Error fetching data for metricset oracle.tablespace: error creating connection to Oracle: error doing ping to database: ORA-00000: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory".

  1. metricbeat test modules oracle

tablespace...
error... ERROR error getting or interpreting data from Oracle: error extracting data: error getting data_files: error executing query: dpiStmt_execute: ORA-00942: table or view does not exist
performance...
error... ERROR error extracting data: error getting buffer cache hit ratio: error executing query: dpiStmt_execute: ORA-00942: table or view does not exist

can you please explain why there is difference.

Thanks and regards,
Mrunalini

HI @estermv ,

can you please respond.

I asked some colleagues to look into this since I'm not familiar with the Oracle module

Thanks for the heads up Ester :slightly_smiling_face:

Hi @mrunalini :slightly_smiling_face:

What's your Oracle version and how your configuration looks like? Can you paste it here in markdown format, please?

Hi @Mario_Castro ,

My oracle version is 12c.
I have installed oracle instant client - instantclient-basic-linux.x64-21.1
My Os where metric-beat installed is RHEL Linux 7.3

we have below oracle module configured:

  • module: oracle
    metricsets: ["tablespace", "performance"]
    enabled: true
    period: 10s
    hosts: ["oracle://host:IP/Servicename"]
    username: "User"
    password: "pass"

Please let me know what else is missing ?

Thanks.

Ok so your Oracle version seems to be supported, good :grinning_face_with_smiling_eyes: You instant client might be too updated and I'd try with v18.5 which is the tested version. I think I have manualled tested v19 too but check, just in case.

This looks like some error setting up the environment Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory Follow closely the instructions here (including setting up the LD_LIBRARY_PATH envar) and check the permissions for each metricset here and here.

Hi @Mario_Castro ,

Thanks for reply !!

Sure i will try changic oracle client.

But , As mentioned on Elastic official page ,does my user need to have access to below tables connect metrics:

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



SYS.DBA_TEMP_FILES
DBA_TEMP_FREE_SPACE
dba_data_files
dba_free_space

As this are system table my user does not have this access

so is this can be problem?

Thanks and regards ,
mrunalini

Hi @Mario_Castro ,

I installed OCI 18.5 version on my system,still getting same error ,below is my Environment variable value:
$LD_LIBRARY_PATH - /usr/lib/instantclient_18_5

Can you please help me find the issue here.

Thanks and regards,
Mrunalini Sinnarkar

Hi @mrunalini
Assuming you are using systemctl it will not pick up that environment variable.

See here

You need to add a drop in conf like described in the documents above or add it using the method below using systemctl edit

systemctl edit metricbeat.service
 [Service]
 # Client Env Vars
 Environment=ORACLE_HOME=/path/to/oracle

You might need to add ORACLE_HOME and / or LD_LIBRARY_PATH

These processes are not uncommon for system services

or you can do following

vi /etc/ld.so.conf.d/*
add following line in end. ( I have 1.2 client and proper path, this is my example, you do your path)

/usr/lib/oracle/12.2/client64/lib/

Then run ldconfig

1 Like

Hi @stephenb ,

I think the solution u suggested has worked .
But our User seems to not having access to system table that's we are facing :"Table or view does not exist."

I wanted to ask Does oracle metricset configured for "Username/Password " expiry alert.

We need to set alerts for password expiry of users from Oracle DB ,is it possible?

Please help with above requirement.

that username/password is on oracle side. ELK has nothing to do with it. and no there is no alert for that. you can tackle this two way.

from oracle side write bash script to find out if username is locked or expire
from ELK side check the count of document in last X minute and if they are zero then alert because that means your logstash which is ingesting data is not working.