Installer le client Oracle 19c sur un collecteur Centreon
La sonde Oracle de Centreon ne parle à la base qu'à travers un client Oracle installé sur le collecteur. Instant Client suffit, à condition de l'accompagner du module Perl DBD::Oracle et de rendre ses bibliothèques visibles au système.
Un client Oracle (Oracle Database client) est l'ensemble de bibliothèques qui permet à un programme d'ouvrir une session sur une base Oracle à distance. Pour un collecteur Centreon, inutile d'installer le client complet : la documentation du connecteur Oracle Database demande Oracle Instant Client, plus léger, livré en paquets RPM ou en archives ZIP.
L'ancienne version de ce tutoriel visait CentOS 7. Cette distribution a atteint sa fin de vie le 30 juin 2024, selon le projet CentOS, et la documentation actuelle du connecteur ne la mentionne plus. Cette page est donc écrite pour les systèmes que Centreon documente aujourd'hui : Alma Linux, RHEL ou Oracle Linux 8 et 9, et Debian 11 et 12. Si un collecteur tourne encore sous CentOS 7, migrez-le plutôt que d'y ajouter des composants.
Faites l'installation d'abord sur un collecteur de test, et prenez un instantané (snapshot) de la machine avant de compiler quoi que ce soit sur un collecteur de production.
Le contexte
| Hôte | Rôle | Adresse (exemple) |
|---|---|---|
centreon-poller01 | collecteur Centreon, reçoit le client Oracle | 192.168.10.10 |
srv-ora01 | serveur Oracle Database supervisé | 192.168.10.30 |
Seul le collecteur est modifié. Le serveur Oracle n'a besoin que d'un compte de supervision, traité dans la page sur la supervision. C'est le même principe que pour la supervision d'une réponse HTTPS : la sonde vit sur le collecteur, rien n'est installé sur la cible.
Quelle version du client choisir
La version 19c reste un bon choix. Oracle la classe comme version à support long (Long Term Support), avec un support Premier jusqu'en décembre 2029 et un support étendu jusqu'en décembre 2032.
Le connecteur Centreon publie un tableau des combinaisons client et serveur prises en charge. Il en ressort que :
- un client 19c est pris en charge avec des serveurs 23ai, 21c et 19c, ainsi qu'avec certaines versions plus anciennes sous conditions précisées en note ;
- un client 21c est pris en charge avec des serveurs 23ai, 21c et 19c ;
- les exemples de Centreon sont écrits avec un client 21, dont il faut adapter les chemins si vous installez la 19c.
Vérifiez votre version de serveur dans ce tableau avant de télécharger.
Prérequis
| Élément | Où le trouver |
|---|---|
| Accès root sur le collecteur | — |
| Outils de compilation | dnf install gcc wget (RHEL et dérivés) |
| Paquets Instant Client basic, sqlplus et devel | page de téléchargement Instant Client d'Oracle, ou dépôt Oracle Linux |
Bibliothèque libaio | requise par Oracle pour l'installation ZIP |
Sur Debian 11 et 12, Centreon liste wget, gcc, make, unzip, libaio1 et libdbi-perl.
Étape 1 : installer Instant Client
Par RPM (RHEL, Alma, Oracle Linux)
Sur Oracle Linux, la documentation Oracle 19c permet d'installer depuis le dépôt Oracle. On ajoute d'abord le paquet qui déclare les dépôts :
dnf install oracle-release-el9
(oracle-release-el8 sur Oracle Linux 8.) Le nom des paquets contient le numéro de mise à jour du client, par exemple oracle-instantclient19.<n>-basic. Ce numéro change avec chaque mise à jour : relevez celui qui est publié dans le dépôt plutôt que de recopier un exemple.
Sur RHEL ou Alma Linux, téléchargez les RPM depuis la page Instant Client d'Oracle (plateforme Linux x86-64) : basic, sqlplus et le paquet devel (SDK), que Centreon demande pour compiler DBD::Oracle. Installez-les ensemble :
rpm -ivh oracle-*.rpm
Oracle précise qu'à partir de la 19c, une seule version des paquets RPM Instant Client peut être installée à la fois. Si plusieurs versions doivent cohabiter, passez par les archives ZIP.
Par archive ZIP
L'archive se décompresse dans un répertoire unique, /opt/oracle dans les exemples d'Oracle et de Centreon :
mkdir /opt/oracle
cd /opt/oracle
unzip 'instantclient-*.zip'
Les paquets s'y décompressent dans un sous-dossier dont le nom porte la version, de la forme instantclient_19_<n>. Installez aussi libaio (libaio1 sur Debian).
Étape 2 : rendre les bibliothèques visibles
Les programmes qui chargent le client doivent trouver ses bibliothèques. Centreon et Oracle utilisent le même mécanisme : un fichier dans /etc/ld.so.conf.d/ qui contient le chemin, puis la reconstruction du cache.
echo /opt/oracle/instantclient_19_<n> > /etc/ld.so.conf.d/oracle-instantclient.conf
/sbin/ldconfig
Pour une installation RPM, le chemin est celui créé par le paquet sous /usr/lib/oracle/, avec le sous-dossier client64/lib. Centreon nomme alors le fichier /etc/ld.so.conf.d/oracle.conf.
Si vous utilisez un fichier tnsnames.ora ou sqlnet.ora, Oracle indique de le placer dans le sous-répertoire network/admin du client, ou de pointer la variable TNS_ADMIN vers le répertoire qui le contient.
Étape 3 : compiler DBD::Oracle
La sonde Centreon est écrite en Perl : elle passe par le module DBD::Oracle, qu'il faut compiler contre le client installé. La documentation Centreon donne cette séquence pour une installation ZIP, en root (adaptez les chemins à votre dossier) :
cd /usr/local/src
wget https://www.cpan.org/modules/by-module/DBD/DBD-Oracle-1.83.tar.gz
tar xzf DBD-Oracle-1.83.tar.gz
cd DBD-Oracle-1.83
export ORACLE_HOME=/opt/oracle/instantclient_19_<n>/
export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_<n>/
export PATH=$ORACLE_HOME:$PATH
perl Makefile.PL -m /opt/oracle/instantclient_19_<n>/sdk/demo/demo.mk
make
make install
L'étape perl Makefile.PL doit se terminer par l'écriture du Makefile de DBD::Oracle. Si elle échoue à identifier la version du client, Centreon indique de la forcer avec l'option -V suivie d'une version nommée, sans effet sur le fonctionnement de la sonde.
Étape 4 : vérifier depuis Centreon
Installez la sonde Oracle sur le collecteur si l'installation automatique est désactivée :
dnf install centreon-plugin-Applications-Databases-Oracle
Puis lancez, sous le compte centreon-engine, la commande de test décrite dans la page sur la supervision Oracle avec Centreon. Une sortie OK: confirme que le client, DBD::Oracle et le réseau fonctionnent ensemble.
Erreurs courantes
- Bibliothèque partagée introuvable : chemin absent de
/etc/ld.so.conf.d/ouldconfignon relancé. - Échec de
Makefile.PL: paquet devel (SDK) manquant, ouORACLE_HOMEqui ne pointe pas vers le bon dossier. - Conflit RPM : une autre version d'Instant Client est déjà installée en RPM.
- Nom de service introuvable :
tnsnames.oraabsent du répertoirenetwork/adminouTNS_ADMINnon défini.
Pour monter le serveur de test en face, voyez l'installation d'Oracle Database 19c. Les autres connecteurs sont présentés dans la rubrique Centreon.
Questions fréquentes
Quelle différence entre Oracle Client et Instant Client ?
Instant Client est la forme légère du client Oracle : quelques paquets ou archives qui fournissent les bibliothèques de connexion, sans installateur. C'est ce que la documentation Centreon demande sur le collecteur.
Où télécharger le client Oracle 19c ?
Uniquement chez Oracle : sur la page de téléchargement Instant Client, en choisissant la plateforme Linux x86-64, ou depuis le dépôt Oracle Linux. N'utilisez pas de miroir tiers.
Peut-on installer plusieurs versions d'Instant Client ?
Pas en RPM : Oracle indique qu'à partir de la 19c, une seule version des paquets RPM peut être installée à la fois. Les archives ZIP, décompressées dans des dossiers distincts, permettent la cohabitation.
Le client 19c fonctionne-t-il avec une base 21c ou 23ai ?
Le tableau publié par Centreon indique qu'un client 19c est pris en charge avec des serveurs 19c, 21c et 23ai. Vérifiez votre combinaison dans ce tableau avant de déployer.
Peut-on encore suivre une procédure CentOS 7 ?
CentOS Linux 7 est en fin de vie depuis le 30 juin 2024 et ne reçoit plus de mises à jour. Installez le collecteur sur une distribution que Centreon documente, comme Alma Linux, RHEL ou Oracle Linux 8 ou 9.