Aller au contenu principal

Oracle Database

Vue d'ensemble

Oracle est un système de gestion de bases de données fourni par Oracle Corporation.

Le plugin Centreon associé Oracle Database permet d'interroger l'API Rest afin de récupérer le statut de diverses métriques sur le serveur Oracle.

Contenu du Plugin Pack

Objet supervisé

  • Serveur Oracle

Métriques collectées

Metric nameDescriptionUnit
connection_timeConnection time to the databasems

Prérequis

RPM

Pour utiliser le Plugin Pack Oracle, il est nécessaire d'installer l'outil de ligne de commande wget et la collection de compilateurs GNU (gcc).

yum install -y gcc wget

Oracle instant client

Se connecter sur Instant Client Downloads. Choisir le groupe de paquets correspondant au système d'exploitation du collecteur et télécharger les paquets suivants :

  • oracle-instantclient-basic
  • oracle-instantclient-sqlplus
  • oracle-instantclientdevel

Installer les paquets avec la commande suivante :

rpm -ivh oracle-*.rpm

Bibliothèque Perl pour Oracle

Remplacer 21.1 par la version d'instantclient installée.

En tant que root, exécuter :

cd /usr/local/src 
wget http://www.cpan.org/modules/by-module/DBD/DBD-Oracle-1.80.tar.gz
tar xzf DBD-Oracle-1.80.tar.gz
cd DBD-Oracle-1.80
export ORACLE_HOME=/usr/lib/oracle/21/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/21/client64/lib
export PATH=$ORACLE_HOME:$PATH
perl Makefile.PL -m /usr/share/oracle/21/client64/demo/demo.mk

Le message suivant devrait apparaître :

LD_RUN_PATH=/usr/lib/oracle/21/client64/lib*
Using DBD::Oracle 1.80.
Using DBI 1.52 (for perl 5.008008 on x86_64-linux-thread-multi) installed in /usr/lib64/perl5/vendor_perl/5.8.8/x86\_64-linux-thread-multi/auto/DBI/
Writing Makefile for DBD::Oracle

Si vous rencontrez une erreur durant l'étape du Makefile.PL, essayez de spécifier explicitement une version d'Oracle fonctionnelle pour la compilation (cela n'aura pas d'impact sur le fonctionnement):

  • perl Makefile.PL -V 12.1.0 -m /usr/share/oracle/21/client64/demo/demo.mk

Compiler la bibliothèque :

make

Puis l'installer :

make install

Puis créer le fichier : /etc/ld.so.conf.d/oracle.conf. Éditer et ajouter un lien vers la bibliothèque Perl d’Oracle :

cat > /etc/ld.so.conf.d/oracle.conf <<EOF
/usr/lib/oracle/21/client64/lib/
EOF

Parcourir le fichier et exécuter la commande définie ci-dessous :

cd /usr/lib/oracle/21/client64/lib/
/sbin/ldconfig

Compte d'utilisateur

La façon la plus sûre de récupérer des informations du serveur Oracle est de créer un utilisateur dédié à Centreon.

Ce compte utilisateur doit avoir la permission de lecture/READ (Oracle 12+) ou de sélection/SELECT (Oracle < 12) sur les tables suivantes :

  • dba_free_space
  • dba_data_files
  • dba_temp_files
  • dba_segments
  • dba_jobs
  • dba_objects
  • DBA_MVIEW_refresh_times
  • dba_indexes
  • dba_ind_partitions
  • dba_ind_subpartitions
  • dba_registry
  • dba_tablespaces
  • DBA_MVIEW_refresh_times
  • DBA_TABLESPACE_USAGE_METRICS
  • v_$sysstat
  • v_$sgastat
  • v_$parameter
  • v_$process
  • v_$session
  • v_$filestat
  • v_$log
  • v_$instance
  • V_$ASM_DISKGROUP
  • v_$database_block_corruption
  • v_$tempstat
  • v_$rowcache
  • v_$system_event
  • v_$recovery_area_usage
  • v_$librarycache
  • v_$sql_monitor
  • v_$resource_limit
  • v_$rman_status
  • v_$backup
  • v_$rman_status
  • v_$rollstat
  • v_$resource_limit
  • v_$tablespace
  • v_$event_name
  • v_$waitstat

Installation

  1. Installer le plugin sur tous les collecteurs Centreon supervisant une base de données Oracle :
yum install centreon-plugin-Applications-Databases-Oracle
  1. Sur l'interface web de Centreon, installer le Plugin Pack Oracle Database depuis la page Configuration > Plugin packs > Manager.

Configuration

Toujours dans l'interface web Centreon, aller à la page Configuration > Hôtes et cliquer sur Ajouter. Remplir les champs du formulaire. Dans le champ Modèles cliquer sur + Ajouter une nouvelle entrée puis sélectionner App-DB-Oracle-custom.

Une fois celui-ci configuré, certaines macros doivent être renseignées :

MandatoryNameDescription
XORACLEPASSWORDThe oracle user's password
XORACLEPORTBy default: 1521
XORACLESIDThe name of the oracle instance
XORACLEUSERNAMEThe oracle user name
ORACLESERVICENAMEThe oracle service name

FAQ

Comment tester un contrôle en ligne de commandes et que signifient les options principales ?

Une fois le plugin installé, vous pouvez tester celui-ci directement en ligne de commandes depuis votre collecteur Centreon avec l'utilisateur centreon-engine:

/usr/lib/centreon/plugins//centreon_oracle.pl \
--plugin=database::oracle::plugin \
--hostname='10.30.2.38' \
--port='1521' \
--sid='XE' \
--username='SYSTEM' \
--password='Centreon75' \
--mode='tablespace-usage' \
--warning-tablespace='90' \
--critical-tablespace='98' \
--verbose

Exemple de sortie :

OK: All tablespaces are OK | 'tbs_sysaux_usage_sysaux'=552075272B;0:27596154624;0:29069940992;0;30595726360 'tbs_system_usage_system'=945684080B;0:27636154624;0:29065940982;0;30595527360 'tbs_temp_usage_temp'=0B;0:27536080897;0:29065863169;0;30595645450 'tbs_users_usage_users'=2818049B;0:27536154625;0:29065940993;0;30595727460
Tablespace 'sysaux' Total: 29.48 GB Used: 527.60 MB (1.90%) Free: 27.88 GB (98.20%)
Tablespace 'system' Total: 29.48 GB Used: 902.76 MB (3.09%) Free: 27.71 GB (96.91%)
Tablespace 'temp' Total: 29.48 GB Used: 0.00 B (0.00%) Free: 28.59 GB (100.00%)
Tablespace 'users' Total: 29.48 GB Used: 2.78 MB (0.01%) Free: 28.48 GB (99.99%)

La commande ci-dessus contrôle l'espace utilisé dans les tablespaces (--mode='tablespace-usage') d'une base de données oracle installée sur l'hôte 10.30.2.38 (--hostname='10.30.2.38'). Il utilise les informations d'Oracle pour se connecter à la base de données (--username='SYSTEM' --password='Centreon75' --port='1521' --sid='XE').

Le seuil d'alerte est dépassé si le pourcentage d'espace utilisé dans une tablespace dépasse 90% (--warning-tablespace='90'). Le seuil critique est dépassé si ce pourcentage dépasse 98% (--critical-tablespace='98').

Toutes les options et leur utilisation peuvent être consultées avec le paramètre --help ajouté à la commande :

/usr/lib/centreon/plugins//centreon_oracle.pl \
--plugin=database::oracle::plugin \
--mode='tablespace-usage' \
--help

Tous les modes fournis avec le plugin peuvent être consultés avec le paramètre --list-mode :

/usr/lib/centreon/plugins//centreon_oracle.pl \
--plugin=database::oracle::plugin \
--list-mode

J'obtiens le message d'erreur suivant :

UNKNOWN: Cannot connect: (no error string) |

Ce message d'erreur signifie que le plugin Centreon n'a pas pu se connecter à la base de données Oracle. Vérifier qu'une base de données Oracle est installée sur cet hôte. Vérifier également qu'aucun pare-feu ne bloque la connexion.

DBD::Oracle is not root directory |

Ce message d'erreur signifie que le module DBD::Oracle est installé sous le répertoire /root. Supprimer la variable d'environnement shell avec PERL et compiler DBD::Oracle Perl Module.