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ôteRôleAdresse (exemple)
centreon-poller01collecteur Centreon, reçoit le client Oracle192.168.10.10
srv-ora01serveur 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 :

Vérifiez votre version de serveur dans ce tableau avant de télécharger.

Prérequis

ÉlémentOù le trouver
Accès root sur le collecteur—
Outils de compilationdnf install gcc wget (RHEL et dérivés)
Paquets Instant Client basic, sqlplus et develpage de téléchargement Instant Client d'Oracle, ou dépôt Oracle Linux
Bibliothèque libaiorequise 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

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.