AlexNogard: Tutos IT

Linux & Opensource : Supervision : Centreon, Nagios, Owncloud ..

By

Centreon / Nagios : Supervision de base Oracle avec check_oracle_health

oracle logo

Le plugin pour Nagios / Centreon : check_oracle_health est un excellent plugin de supervision de base de données Oracle. Ce plugin pour Oracle permet d’extraire une multitude de données tel que le temps de connexion d’un utilisateur à une base, le nombre d’utilisateurs connectés, la somme des objets invalides, l’espace libre dans un tablespace et bien d’autres compteurs …

Nous l’utiliserons avec Centreon afin d’exploiter les données de monitoring de check_oracle_health sous forme de graphiques. Une partie dédiée à Nagios ce trouve également dans cet article.

Avant de mettre en place le plugin check_oracle_health, plusieurs éléments sont à installer tel que les RPM instantclient fournis par Oracle, quelques librairies perl.

Pour installer les différents packages fournis par Oracle, rendez vous sur la page Instant Client Downloads, téléchargez les packages suivants :

  • oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64.rpm
  • oracle-instantclient12.1-sqlplus-12.1.0.1.0-1.x86_64.rpm
  • oracle-instantclient12.1-devel-12.1.0.1.0-1.x86_64.rpm
  • oracle-instantclient12.1-jdbc-12.1.0.1.0-1.x86_64.rpm

Pour les installer :

# rpm -Uvh oracle-instantclient12.1-basic-12.1.0.1.0-1.x86_64.rpm
# rpm -Uvh oracle-instantclient12.1-sqlplus-12.1.0.1.0-1.x86_64.rpm
# rpm -Uvh oracle-instantclient12.1-devel-12.1.0.1.0-1.x86_64.rpm
# rpm -Uvh oracle-instantclient12.1-jdbc-12.1.0.1.0-1.x86_64.rpm

Nous installons également quelques packages nécessaires :

# yum install libdbi-drivers libdbi perl-DBI

Puis la librairie Perl : DBD-Oracle, nécessaire au bon fonctionnement du plugin check_oracle_health pour notre supervision:

# wget http://search.cpan.org/CPAN/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.66.tar.gz
# tar xvzf DBD-Oracle-1.66.tar.gz
# cd DBD-Oracle-1.66
# export ORACLE_HOME=/usr/lib/oracle/12.1/client/lib
# export LD_LIBRARY_PATH=$ORACLE_HOME
# perl Makefile.PL
# make
# make install

On télécharge puis installe check_oracle_health :

# wget http://labs.consol.de/download/shinken-nagios-plugins/check_oracle_health-1.7.8.1.tar.gz
# tar xzvf check_oracle_health-1.7.8.1.tar.gz
# cd check_oracle_health-1.7.8.1
# ./configure –prefix=/usr/local/nagios/libexec –with-nagios-user=nagios –with-nagios-group=nagios
# make
# make install

Puis, comme le préconise le développeur du plugin, nous créons un utilisateur dédié à la supervision, connectez vous à votre base oracle et entrez les lignes suivantes :

CREATE USER nagios IDENTIFIED BY oradbmon;
GRANT CREATE SESSION TO nagios;
GRANT SELECT any dictionary TO nagios;
GRANT SELECT ON V_$SYSSTAT TO nagios;
GRANT SELECT ON V_$INSTANCE TO nagios;
GRANT SELECT ON V_$LOG TO nagios;
GRANT SELECT ON SYS.DBA_DATA_FILES TO nagios;
GRANT SELECT ON SYS.DBA_FREE_SPACE TO nagios;

Nous testons ensuite le bon fonctionnement de notre plugin :

# /usr/local/nagios/libexec/check_oracle_health –connect=XXX.XXX.XXX.XXX –username=nagios –password=nagios –tablespace=SUPERVISION  –mode tablespace-usage

CRITICAL - tbs SYSTEM usage is 99.33%

Centreon

Pour ajouter le plugin check_oracle_health dans Centreon : Nous nous connectons à notre Centreon, puis créons la commande suivante :

check_oracle_health command

check_oracle_health command

Il ne reste plus qu’à attacher des services à vos hôtes en changeant les 3 arguments :). La liste des modes est disponible ici : check_oracle_health : liste des modes

Voici le résultat avec le “user connection time” :

Oracle-Server-Check_connection-time

Oracle-Server-Check_connection-time

Nagios

Pour monitorer votre base oracle avec check_oracle_health depuis centreon, nous créons la commande suivante dans checkcommand.cfg :

define command{
command_name                    check_oracle_health
command_line                    /usr/local/nagios/libexec/check_oracle_health –connect=X.X.X.X –username=nagios –password=nagios –tablespace=SUPERVISION  –mode $ARG1$ –warning=$ARG2$ –critical=$ARG3$
}

Puis ajoutons dans services.cfg les paramètres suivants :

Nombre d’utilisateurs connectés :

define service{
host_name                               Oracle-Server
service_description             Check_connected-users
use                             Oracle-server
check_command                   check_oracle_health!connected-users!80!100
}

Temps de connection à la base Oracle :

define service{
host_name                               Oracle-Server
service_description             Check_connected-users
use                             Oracle-server
check_command                   check_oracle_health!connection-time!50!100
}

Objets invalides :

define service{
host_name                               Oracle-Server
service_description             Check_connected-users
use                             Oracle-server
check_command                   check_oracle_health!invalid-objects
}

Utilisation du Tablespace :

define service{
host_name                               Oracle-Server
service_description             Check_connected-users
use                             Oracle-server
check_command                   check_oracle_health!tablespace-usage!80!90
}

Pour connaitre toute la liste des modes que vous pouvez utiliser avec check_oracle_health, cliquez sur le liens ;).

Vous monitorez maintenant votre Base de Données Oracle avec Centreon / Nagios et le plugin Check_oracle_health.

Si vous avez des remarques, questions, n’hésitez pas ;). N’hésitez pas également à partager cet article.

One Response to Centreon / Nagios : Supervision de base Oracle avec check_oracle_health

  1. MyL0 says:

    Merci a toi, tout c’est bien déroulé, je test ça demain quand le DBA aura le temps de me validé l’accès et c’est pas gagné ;)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>