Superviser Oracle Database avec Centreon
Le connecteur Oracle Database de Centreon se connecte à l'instance depuis le collecteur, comme le ferait une application. Il faut un client Oracle sur ce collecteur, un compte en lecture sur les vues du dictionnaire, puis des seuils choisis selon votre base.
Une base Oracle peut répondre au ping, avoir son listener démarré et pourtant refuser des sessions, saturer un tablespace ou ne plus avoir de sauvegarde RMAN valide depuis plusieurs jours. La supervision Oracle avec Centreon vise ces trois niveaux : la joignabilité du listener, l'état interne de l'instance, et les sauvegardes.
Le connecteur de supervision (monitoring connector, appelé Plugin Pack avant avril 2023) Oracle Database n'utilise ni SNMP ni agent. La sonde centreon_oracle.pl, exécutée sur le collecteur (poller), ouvre une connexion Oracle Net vers l'instance avec un compte dédié et lit les vues du dictionnaire. Elle a donc besoin d'Oracle Instant Client et du module Perl DBD::Oracle sur le collecteur.
Préparez et testez tout sur une base de laboratoire avant de pointer la supervision vers la production, et sauvegardez la configuration Centreon avant de déployer.
Ce que le connecteur surveille
La documentation Centreon fournit deux modèles d'hôte : App-DB-Oracle-custom pour une instance, et App-DB-Rman-Catalog-custom pour un catalogue de restauration RMAN externe.
| Créés avec App-DB-Oracle-custom | À ajouter si besoin |
|---|---|
| Tnsping (connexion au listener distant) | Rman-Backup-Age, Rman-Backup-Online-Age |
| Connection-Time, Connection-Number | Fra-Usage (zone de récupération rapide) |
| Session-Usage, Process-Usage | ASM-Diskgroup-Usage |
| Tablespace-Usage-Global | Data-Files-Status, Invalid-Object |
| Corrupted-Blocks | Long-Queries, Redolog-Usage |
| Rman-Backup-Problems (erreurs RMAN des trois derniers jours) | Sql et Sql-String (requêtes libres) |
| Datacache-Hitratio (sans alerte par défaut) | caches dictionnaire et bibliothèque |
Deux règles de découverte de services existent, pour les tablespaces et pour les groupes de disques ASM : elles créent un service par objet au lieu d'une vue globale.
Le service Tnsping et le port Oracle
Le service Tnsping vérifie, selon Centreon, la connexion à un listener distant. C'est le premier contrôle à regarder : s'il échoue, tous les autres échoueront aussi, et l'alerte utile est celle-ci.
Il reprend la logique de l'utilitaire tnsping d'Oracle. La documentation Oracle 19c précise que cet utilitaire vérifie si le listener d'un service Oracle Net est joignable, sans déterminer si la base elle-même tourne. Le connecteur combine donc Tnsping avec Connection-Time, qui ouvre une vraie session.
Quand vous diagnostiquez à la main, la syntaxe documentée est :
tnsping <nom-de-service-net> 8
Le nom doit exister dans tnsnames.ora ou dans le service de noms utilisé ; le nombre final, facultatif, fixe le nombre de tentatives. L'utilitaire n'apparaît pas dans les paquets Instant Client demandés par Centreon : utilisez-le depuis une machine qui dispose d'un client Oracle complet.
Pour le port Oracle, la macro ORACLEPORT vaut 1521 par défaut dans le modèle Centreon, et les exemples de la documentation Oracle utilisent ce même port. Votre listener peut en écouter un autre : relevez-le dans sa configuration plutôt que de le supposer.
Préparer le collecteur
Instant Client et DBD::Oracle
La documentation Centreon demande d'installer sur le collecteur les paquets Instant Client basic, sqlplus et devel, téléchargés depuis la page Instant Client d'Oracle, puis de compiler le module Perl DBD::Oracle. Elle publie un tableau de compatibilité client et serveur : un client 19c ou 21c est indiqué comme pris en charge avec des serveurs 19c, 21c et 23ai.
Sur Alma Linux, RHEL ou Oracle Linux 8 et 9, Centreon demande d'abord :
dnf install gcc wget
L'installation détaillée du client, ses variables d'environnement et le cache des bibliothèques font l'objet d'une page dédiée : installer Oracle Instant Client pour Centreon.
Le compte de supervision
Centreon recommande un utilisateur dédié, avec le droit READ (Oracle 12 et suivants) ou SELECT (versions antérieures) sur une liste de vues : dba_free_space, dba_data_files, dba_tablespaces, v_$session, v_$process, v_$rman_status, v_$recovery_area_usage et plusieurs dizaines d'autres. Reprenez la liste complète de la documentation plutôt que d'accorder un rôle DBA par commodité.
Si vous montez une base de test pour valider tout cela, la page sur l'installation d'Oracle Database 19c décrit le serveur. Pour rappel, Oracle publie pour la 19c, version à support long, un support Premier jusqu'en décembre 2029 et un support étendu jusqu'en décembre 2032.
Configurer l'hôte dans Centreon
Avec une licence hors ligne, installez le connecteur sur le serveur central, et la sonde sur le collecteur si l'installation automatique (disponible depuis Centreon 22.04) est désactivée :
dnf install centreon-pack-applications-databases-oracle
dnf install centreon-plugin-Applications-Databases-Oracle
Créez l'hôte, appliquez App-DB-Oracle-custom et renseignez :
| Macro | Rôle | Valeur par défaut documentée |
|---|---|---|
ORACLEUSERNAME / ORACLEPASSWORD | compte de supervision | aucune valeur réelle |
ORACLEPORT | port du listener | 1521 |
ORACLESID | SID de l'instance | à renseigner |
ORACLESERVICENAME | nom de service | vide |
Renseignez soit le SID, soit le nom de service, selon la manière dont l'instance est déclarée sur le listener. Pour une base conteneur, l'option --container permet de changer de conteneur.
Tester en ligne de commande
Sous le compte centreon-engine du collecteur, la documentation donne ce test (ici le mode d'usage des segments d'annulation) :
/usr/lib/centreon/plugins/centreon_oracle.pl \
--plugin=database::oracle::plugin \
--hostname='192.168.10.30' \
--port='1521' \
--sid='<SID>' \
--username='<utilisateur>' \
--password='<mot-de-passe>' \
--mode=rollback-segment-usage
Une sortie OK: suivie de données de performance prouve que le client, DBD::Oracle, le compte et le listener fonctionnent ensemble. Une erreur de bibliothèque partagée renvoie au client Oracle ; une erreur ORA, au compte ou au SID.
Choisir les seuils
Centreon ne fixe pas de valeur pour la plupart de ces services. Réglez-les sur votre base :
- Tablespaces : sur l'espace restant et la vitesse de remplissage observée sur les graphiques, pas sur un pourcentage générique ; un tablespace en extension automatique ne se lit pas comme un tablespace fixe.
- Sessions et processus : en proportion des limites de sessions et de processus configurées sur l'instance, avec une marge pour les pics.
- RMAN : sur votre politique de sauvegarde. Les seuils d'âge sont en secondes et se déclinent par type (
db-full,db-incr,archivelog,controlfile). - Datacache-Hitratio : à laisser sans alerte, comme le fait le modèle ; c'est un indicateur de tendance.
La rubrique Centreon regroupe les autres connecteurs, et la page sur les plugins de supervision Nagios explique d'où vient ce modèle de sondes.
Questions fréquentes
Faut-il installer un agent sur le serveur Oracle ?
Non. La sonde s'exécute sur le collecteur Centreon et se connecte à l'instance par Oracle Net. Il faut Oracle Instant Client et DBD::Oracle sur le collecteur, et un compte de lecture sur la base.
À quoi sert le service Tnsping dans Centreon ?
Il vérifie la connexion au listener distant. C'est le contrôle de base : s'il échoue, la base est injoignable pour tous les autres services. Comme l'utilitaire tnsping d'Oracle, il ne prouve pas que la base elle-même tourne.
Quel est le port Oracle par défaut dans Centreon ?
La macro ORACLEPORT vaut 1521 par défaut dans le modèle App-DB-Oracle-custom. Si votre listener écoute un autre port, indiquez celui de sa configuration.
Quels droits donner au compte de supervision Oracle ?
Le droit READ, ou SELECT avant Oracle 12, sur la liste de vues dba_ et v_$ publiée par Centreon. Évitez le rôle DBA : la supervision n'a besoin que de lire.
Comment surveiller les sauvegardes RMAN ?
Rman-Backup-Problems est créé avec le modèle d'hôte et signale les erreurs des trois derniers jours. Ajoutez Rman-Backup-Age pour l'âge des sauvegardes, ou le modèle App-DB-Rman-Catalog-custom si vous utilisez un catalogue RMAN externe.