Installation Oracle Client 19c sous CentOS7 (Centreon)

Hello, après l’installation d’Oracle Database 19c sous OEL7, je termine donc ce projet avec l’installation du client oracle sous CentOS 7 (Centreon). En effet, afin de pouvoir superviser les bases de données Oracle avec Centreon, il faut installer et configurer Oracle Client sur votre plate-forme de supervision.

Ce qu’il vous faut :

Remarque : Pour ma part, j’ai mis en place une nouvelle VM avec la dernière version de Centreon (centreon-19.04-0.el7.x86_64.iso) sans rien installé de plus. Donc, je pars de ZERO.

  • Oracle Client for Linux : downloads/oracle19c-linux
    • Accepter la licence pour débloquer les liens de téléchargement.
    • Tout en bas, sous la ligne : Oracle Database 19c Client (19.3) for Linux x86-64
      • Télécharger le fichier : LINUX.X64_193000_client.zip (64-bit) (1,134,912,540 bytes) 

Oracle Client Linux

Configuration Serveur Centreon

Mettez à jour votre serveur Centreon si c’est nécessaire.

Attention, cette commande mettra à jour également Centreon si vous l’avez installé depuis l’ISO CES.

[root@centreon ~]# yum update -y

Installer les packages suivant :

Remarque : Si vous êtes en PROD n’hésitez pas à faire une sauvegarde avant d’installer d’autres packages sur votre plateforme de supervision.

[root@centreon ~]# yum groupinstall -y "X Window System"
[root@centreon ~]# yum install zip unzip git wget mlocate nano binutils.x86_64 compat-libcap1.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 ksh compat-libstdc++-33 libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 make.x86_64 sysstat.x86_64

Création de groupe et l’utilisateur Oracle :

[root@centreon ~]# groupadd oinstall
[root@centreon ~]#
[root@centreon ~]# groupadd dba
[root@centreon ~]#
[root@centreon ~]# useradd -g oinstall -G dba oracle
[root@centreon ~]#

Ajouter un mot de passe pour l’user Oracle :

[root@centreon ~]# passwd oracle
Changement de mot de passe pour l'utilisateur oracle.
Nouveau mot de passe :
Retapez le nouveau mot de passe :
passwd : mise à jour réussie de tous les jetons d'authentification.
[root@centreon ~]#

Installation Oracle Client

Télécharger l’archive ZIP et le transférer dans le dossier /tmp de votre serveur Centreon. Utilisez MobaXterm, c’est plus simple :

Upload MobaXterm

Une fois le transfère terminé, appliquer les droits nécessaires  :

[root@centreon tmp]# chmod 775 LINUX.X64_193000_client.zip

Dézipper l’archive :

[root@centreon tmp]# unzip LINUX.X64_193000_client.zip

Passer sous l’utilisateur ORACLE :

[root@centreon tmp]# su - oracle
[oracle@centreon ~]$

Lancer l’installation :

[oracle@centreon ~]# cd /tmp/client/
[oracle@centreon client]$ ll
total 20
drwxr-xr-x  4 root root  221 17 avril 10:28 install
drwxrwxr-x  2 root root   49 17 avril 12:40 response
-rwxr-xr-x  1 root root 8854 17 avril 10:28 runInstaller
drwxr-xr-x 15 root root 4096 17 avril 12:41 stage
-rwxrwxr-x  1 root root  500  6 févr.  2013 welcome.html
[oracle@centreon client]$
[oracle@centreon client]# ./runInstaller
Démarrage d'Oracle Universal Installer...

Vérification de l'espace temporaire : doit être supérieur à 415 Mo.   Réel 22430 Mo    Succès
Vérification de l'espace de swap : il doit être supérieur à 150 Mo.   Réel 3071 Mo    Succès
Vérification de l'écran : doit être configuré pour afficher au moins 256 couleurs
    >>> Impossible d'exécuter la vérification automatique des couleurs d'affichage à l'aide de la commande /usr/bin/xdpyinfo. Vérifiez que la variable DISPLAY est définie.    Echec <<<<

Echec de la vérification de certaines exigences. Vous devez répondre à ces exigences pour

pouvoir poursuivre l'installation,

Voulez-vous poursuivre ?# (o/n) [n] n

Si vous avez le message :

>>> Impossible d’exécuter la vérification automatique des couleurs d’affichage à l’aide de la commande /usr/bin/xdpyinfo. Vérifiez que la variable DISPLAY est définie. Echec <<<<

Annuler l’installation et déconnectez-vous totalement de votre serveur avec la commande EXIT (si vous êtes directement sur le serveur, redémarrer) puis reconnectez-vous directement avec l’utilisateur ORACLE :

Lancer les commandes suivantes. L’adresse IP est celle de votre propre machine.

[oracle@centreon client]# DISPLAY=192.168.1.30:0.0
[oracle@centreon client]# export DISPLAY
[oracle@centreon client]# xhost + 192.168.1.30
192.168.1.30 being added to access control list
[oracle@centreon client]#

export DISPLAY permet de lancer une application en mode graphique !

Toujours sous l’utilisateur Oracle, lancer l’installation et patienter un petit moment :

[oracle@centreon client]# ./runInstaller

Installation Oracle Client Linux

  • Laisser  Administrateur et cliquer sur Suivant >
  • Personnaliser l’emplacement si vous le souhaiter :

Oracle Client Directory

  • Cliquer su Suivant >
  • Laisser l’emplacement de l’inventaire par défaut ainsi que le groupe :

Oracle Client Inventory

  • Cliquer sur Suivant >
  • Après vérification, cliquer sur Installer
  • Vers la fin de l’installation, une fenêtre s’affiche. Il faut exécuter le script indiqué sous ROOT sur un nouveau Terminal (SSH).

Install Oracle Client

  • Ouvrir une nouvelle connexion SSH
  • Exécuter le script directement à la racine :
[root@centreon ~]# /home/oracle/oraInventory/orainstRoot.sh
Modification des droits d'accès de /home/oracle/oraInventory.
Ajout de droits d'accès en lecture/écriture pour le groupe.
Suppression des droits d'accès en lecture/écriture/exécution pour le monde.

Modification du nom de groupe de /home/oracle/oraInventory en oinstall.
L'exécution du script est terminée.
[root@centreon ~]#
  • Retourner sur la fenêtre et cliquer sur OK
  • C’est terminé

Oracle Client 19c

  • Cliquer sur Fermer

Passons à la configuration.

Configuration des ENV

Voici les variables d’environnement qu’il faut configurer :

  • ORACLE_HOME = /home/oracle/app/product/19.0.0/client64
  • TNS_ADMIN = /home/oracle/app/product/19.0.0/client64/network/admin
  • LD_LIBRARY_PATH = /home/oracle/app/product/19.0.0/client64/lib

Utilisateur et groupe par défaut :

  • User : oracle
  • Groupe : oinstall

Ajouter les variables d’environnement Oracle pour les 3 utilisateurs :

Utilisateur ROOT : à la racine du serveur

[root@centreon ~]# nano .bash_profile

Ajoutez-y :

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

# User specific environment and startup programs
export LD_LIBRARY_PATH=/home/oracle/app/product/19.0.0/client64/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=/home/oracle/app/product/19.0.0/client64/network/admin
export ORACLE_HOME=/home/oracle/app/product/19.0.0/client64
export NLS_LANG=FRENCH_FRANCE.WE8MSWIN1252

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

Reload :

[root@centreon ~]# source ~/.bash_profile
[root@centreon ~]#

Utilisateur ORACLE :

[root@centreon ~]# su - oracle
[oracle@centreon ~]# nano .bash_profile

la même chose :

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

# User specific environment and startup programs
export LD_LIBRARY_PATH=/home/oracle/app/product/19.0.0/client64/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=/home/oracle/app/product/19.0.0/client64/network/admin
export ORACLE_HOME=/home/oracle/app/product/19.0.0/client64
export NLS_LANG=FRENCH_FRANCE.WE8MSWIN1252

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

Reload :

[oracle@centreon ~]$ source ~/.bash_profile
[oracle@centreon ~]$

Utilisateur CENTREON-ENGINE : copier le .bash_profile de l’utilisateur ROOT :

[root@centreon ~]# cp .bash_profile /var/lib/centreon-engine
[root@centreon ~]#

Reload :

[root@centreon ~]# su - centreon-engine
Dernière connexion : mardi  9 juillet 2019 à 13:48:13 CEST sur pts/1
-bash-4.2$ source ~/.bash_profile
-bash-4.2$ exit
déconnexion
[root@centreon ~]#

TNSNames & SQLnet

Nous allons copier les fichiers tnsnames.ora et sqlnet.ora depuis le serveur Oracle vers le serveur Centreon. Sur votre serveur Oracle, les fichiers se trouvent dans  : /u01/app/oracle/product/19.2.0/dbhome_1/network/admin/

Sur votre serveur Centreon, le fichier doit être placé dans le répertoire : TNS_ADMIN=/home/oracle/app/product/19.0.0/client64/network/admin

Utilisez SCP pour copier les fichiers depuis votre serveur Oracle vers votre serveur Centreon : (à lancer depuis votre serveur Centreon) :

[root@centreon ~]# scp root@192.168.1.22:/u01/app/oracle/product/19.2.0/dbhome_1/network/admin/tnsnames.ora root@192.168.1.30:/home/oracle/app/product/19.0.0/client64/network/admin/
[...]
Are you sure you want to continue connecting (yes/no)? yes
root@192.168.1.22's password:
[...]
Are you sure you want to continue connecting (yes/no)? yes
root@192.168.1.30's password:
tnsnames.ora                                                     100%  435   341.0KB/s   00:00
Connection to 192.168.1.22 closed.
[root@centreon ~]#

Faire la même chose pour le fichier sqlnet.ora

  • 192.168.1.22 = serveur Oracle
  • 192.168.1.30 = serveur Centreon

Installation Oracle Module Perl

Installer les modules perl  suivants dans l’ordre :

[root@centreon plugins]# cpan -i Test::NoWarnings
[root@centreon plugins]# cpan -i CPAN::Meta
[root@centreon plugins]# cpan -i DBD::Oracle
[root@centreon plugins]# cpan -i DBI

Remarque : si au lancement de la commande CPAN pose des questions, laissez tout par défaut et Entrée.

Test de supervision

Nous allons maintenant tester la supervision en ligne de commande.

Placez-vous dans le répertoire des plugins Centreon et lancer la commande suivante :

Check TNSPing  :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --mode=tnsping --hostname=192.168.1.22 --sid=PIXEL --port=1521
OK: Connection established to listener 'PIXEL'. |
[root@centreon plugins]#

Check TableSpace Usage :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --mode=tablespace-usage --hostname=192.168.1.22 --port=1521 --sid=PIXEL --username=system --password=Oracle19! --warning-tablespace=90 --critical-tablespace=95 --verbose
OK: All tablespaces are OK | 'tbs_sysaux_usage_sysaux'=552075264B;0:27536154624;0:29065940992;0;30595727360 'tbs_system_usage_system'=945684480B;0:27536154624;0:29065940992;0;30595727360 'tbs_temp_usage_temp'=0B;0:27536080896;0:29065863168;0;30595645440 'tbs_users_usage_users'=2818048B;0:27536154624;0:29065940992;0;30595727360
Tablespace 'sysaux' Total: 28.49 GB Used: 526.50 MB (1.80%) Free: 27.98 GB (98.20%)
Tablespace 'system' Total: 28.49 GB Used: 901.88 MB (3.09%) Free: 27.61 GB (96.91%)
Tablespace 'temp' Total: 28.49 GB Used: 0.00 B (0.00%) Free: 28.49 GB (100.00%)
Tablespace 'users' Total: 28.49 GB Used: 2.69 MB (0.01%) Free: 28.49 GB (99.99%)
[root@centreon plugins]#

La suite est ici : supervision-oracle-database-avec-centreon/

C’est terminé les amis. Fin de mon projet Oracle Database. Amusez-vous bien.

Bonne journée et à bientôt.

8 Responses

  1. Juan Carlos Huayane dit :

    Hello,

    Could you please help me, the tsping works but when I make the query with the oracle user it doesn’t work, I don’t know where the error can be. Could you help me.

    Thanks

    [root@Jimbo plugins]# ./centreon_oracle.pl --plugin=database::oracle::plugin --mode=tnsping --hostname=oradesa1 --sid=DESA --port=1521
    OK: Connection established to listener 'DESA'. |
    [root@Jimbo plugins]# ./centreon_oracle.pl --plugin=database::oracle::plugin --hostname=oradesa1 --port='1521' --sid='DESA' -username='SYS' --password='xxxxxx' --mode='tablespace-usage' --warning-tablespace='90' --critical-tablespace='98' --verbose
    UNKNOWN: Cannot connect: ORA-01017: invalid username/password; logon denied (DBD ERROR: OCISessionBegin) 
    [root@Jimbo plugins]#
    • sysadmin dit :

      Hello,
      TNSping its a sample PING, user and password not needed.

      For other mods, user and password its required :

      UNKNOWN: Cannot connect: ORA-01017: invalid username/password; logon denied (DBD ERROR: OCISessionBegin)  

      Password wrong or user not allowed or user locked.
      Try also with user system

    • Juan Carlos Huayane dit :

      Thank you very much I found the error in the sqlnet.ora file. 

      #NAMES.DIRECTORY_PATH= (TNSNAMES)
      NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

      I added EZCONNECT

      Thank you for the contribution

  2. batcox dit :

    Bonjour,
    Avant tout, merci pour cette article.
    Par contre je rencontre un soucis c’est que lorsque je fais les tests depuis l’utilisateur centreon-engine j’ai un message d’erreur :  » install_driver(Oracle) failed ».
    ça fonctionne très bien en tant que root. Visiblement l’utilisateur centreon-engine n’a pas accès au dossier /home/oracle.
    Comment puis-je résoudre le problème ?
    Merci d’avance

    • sysadmin dit :

      Salut,
      Vérifies bien les variables d’environnement (le chemin d’installation Oracle) pour les trois utilisateurs.
      Pour l’user Centreon-Engine, le .bash_profile doit se trouver dans /var/lib/centreon-engine
      Tu as bien installé le module Perl : DBD::Oracle ?

      Je pense que ce n’est pas nécessaire. Pour en avoir le coeur net, essaies de mettre en place la supervision sous Centreon-web.
      Si tout fonctionne en ligne de commande, je pense que ça doit fonctionner depuis l’interface web.
      Tu as l’article ici : https://pixelabs.fr/supervision-oracle-database-avec-centreon/

      Bonne journée.
      -sysadmin

      • batcox dit :

        Depuis l’interface web il m’indique le message "(No output returned from plugin)" et c’est pourquoi j’ai fait le test en ligne de commande depuis l’utilisateur centreon-engine. En tant qu’utilisateur root je n’ai pas de soucis.
        Voici le message d’erreur :

        ./centreon_plugins.pl --plugin=database::oracle::plugin --mode=tnsping --hostname=10.0.10.101 --sid=CPTA
        UNKNOWN: install_driver(Oracle) failed: Can't load '/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.19.1: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 190.
         at (eval 12) line 3.
        Compilation failed in require at (eval 12) line 3.
        Perhaps a required shared library or dll isn't installed where expected
         at /usr/lib/centreon/plugins/centreon/plugins/dbi.pm line 216.
        • sysadmin dit :

          As-tu installé les modules perl (oracle) ?
          ça doit marcher depuis l’interface web. Le message No output returned from plugin indique qu’il ne trouve pas les plugins Centreon.
          Il faut revoir la configuration de tes plugins (Configuration > Collecteurs > Ressources).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *