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
- Connection-Time
- Tnsping
- Tablespace-Usage
- Session-Usage
- Rman-Backup-Problems
- Process-Usage
- Datacache-Hitratio
- Corrupted-Blocks
- Connection-Number
Metric name | Description | Unit |
---|---|---|
connection_time | Connection time to the database | ms |
Metric name | Description | Unit |
---|---|---|
status | Check Oracle listener status |
Metric name | Description | Unit |
---|---|---|
tbs_#instance_usage | Tablespace usage per Instance | B |
tbs_#instance_free | Tablespace free space left per instance | B |
Metric name | Description | Unit |
---|---|---|
session_used | The percentage of Oracle session used | % |
Metric name | Description | Unit |
---|---|---|
#backup_backup_problems | Number of problems per backup (last 3 days by default) | Count |
Metric name | Description | Unit |
---|---|---|
process_used | The percentage of Oracle process used | % |
Metric name | Description | Unit |
---|---|---|
sga_data_buffer_hit_ratio | Check the 'Data Buffer Cache Hit Ratio' of the server | % |
Metric name | Description | Unit |
---|---|---|
corrupted_blocks | The number of corrupted blocks in the database | Count |
Metric name | Description | Unit |
---|---|---|
connected_users | The number of connection to the Oracle server | Count |
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
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 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
- Online License
- Offline License
- Installer le plugin sur tous les collecteurs Centreon supervisant une base de données Oracle :
yum install centreon-plugin-Applications-Databases-Oracle
- Sur l'interface web de Centreon, installer le Plugin Pack Oracle Database depuis la page Configuration > Plugin packs > Manager.
- Installer le plugin sur tous les collecteurs Centreon supervisant une base de données Oracle :
yum install centreon-plugin-Applications-Databases-Oracle
- Sur le serveur Central Centreon, installer le Plugin Pack via le RPM :
yum install centreon-pack-applications-databases-oracle
- 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 :
Mandatory | Name | Description |
---|---|---|
X | ORACLEPASSWORD | The oracle user's password |
X | ORACLEPORT | By default: 1521 |
X | ORACLESID | The name of the oracle instance |
X | ORACLEUSERNAME | The oracle user name |
ORACLESERVICENAME | The 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.