Supervision Oracle Database avec Centreon

Hello, Nous allons voir dans cet article comment mettre en place la supervision Oracle avec Centreon et Centreon Plugins Pack. Il est nécessaire d’installer le client Oracle sur votre plate-forme de supervision. Oracle est installé sur un serveur Unix (IBM AIX  7.4).

Ce qu’il vous faut :

Configuration requise sur votre serveur Centreon :

Voir également mes projets sur la supervision : /supervision

Supervision Oracle via CLI

Commençons par la supervision Oracle en ligne de commande. Connectez-vous à votre serveur Centreon et placez-vous dans le répertoire ou vous avez installé les plugins centreon.

Chercher le plugin pour Oracle.

[root@centreon plugins]# ./centreon_plugins.pl --list-plugin | grep oracle | grep PLUGIN
# PLUGIN: database::oracle::plugin
PLUGIN: network::oracle::infiniband::snmp::plugin
PLUGIN: network::oracle::otd::snmp::plugin
PLUGIN: storage::oracle::zs::snmp::plugin
[root@centreon plugins]#

Afficher les modes disponibles :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --list-mode

Plugin Description:
    Check Oracle Server.

    --hostname
            Hostname to query.

    --port  Database Server Port.

    --sid   Database SID.

    --servicename
            Database Service Name.

Global Options:
    --mode  Choose a mode.

    --dyn-mode
            Specify a mode with the path (separated by '::').

    --list-mode
            List available modes.

    --mode-version
            Check minimal version of mode. If not, unknown error.

    --version
            Display plugin version.

    --sqlmode
            Choose a sql mode (Default: "dbi").

    --list-sqlmode
            List available sql modes.

    --multiple
            Multiple database connections (some mode needs it).

Modes Available:
   asm-diskgroup-usage
   connected-users
   connection-time
   corrupted-blocks
   data-files-status
   datacache-hitratio
   event-waits-usage
   invalid-object
   list-asm-diskgroups
   long-queries
   password-expiration
   process-usage
   rman-backup-age
   rman-backup-problems
   rman-online-backup-age
   rollback-segment-usage
   session-usage
   sql
   sql-string
   tablespace-usage
   temp-usage
   tnsping
   undo-usage
[root@centreon plugins]#

Il y a de quoi faire hein ! je ne compte pas les faire tous et pour ceux qui maîtrise SQL, ils vont se régaler puisqu’on peut exécuter des requêtes SQL depuis Centreon.

Check-Oracle-TNSPing

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

Check-Connected-Users

[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --mode=connected-users --hostname=PIXELABS --sid=PIXEL --port=1521 --username=system --password=pixel123
OK: 7 Connected user(s). | 'connected_users'=7;;;0;
[root@centreon plugins]#

Check-CorruptedBlocks

[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --mode=corrupted-blocks --hostname=PIXELABS --sid=PIXEL --port=1521 --username=system --password=pixel123
OK: 0 corrupted blocks. | 'corrupted_blocks'=0;;;0;
[root@centreon plugins]#

Check-DataFilesStatus

Ajoutez le paramètres –verbose pour avoir plus d’infos.

[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --mode=data-files-status --hostname=PIXELABS --port=1521 --sid=PIXEL --username=system --password=pixel123 --warning-online-status='%{online_status}=~/sysoff/i' --critical-online-status='%{online_status}=~/offline|recover/i' --verbose
OK: All data files are ok |
Data file 'DONNEES//pixelabs/pixel/base/donnees.dbf' Status : AVAILABLE, Online Status : ONLINE
Data file 'DONNEES//pixelabs/pixel/base/donnees02.dbf' Status : AVAILABLE, Online Status : ONLINE
Data file 'DONNEES//pixelabs/pixel/base/donnees03.dbf' Status : AVAILABLE, Online Status : ONLINE
Data file 'INDEXES//pixelabs/pixel/base/indexes.dbf' Status : AVAILABLE, Online Status : ONLINE
Data file 'INDEXES//pixelabs/pixel/base/indexes02.dbf' Status : AVAILABLE, Online Status : ONLINE
Data file 'INDEXES//pixelabs/pixel/base/indexes03.dbf' Status : AVAILABLE, Online Status : ONLINE
Data file 'PIX//pixelabs/pixel/base/pix.dbf' Status : AVAILABLE, Online Status : ONLINE
Data file 'SYSAUX//pixelabs/pixel/base/sysaux.dbf' Status : AVAILABLE, Online Status : ONLINE
Data file 'SYSTEM//pixelabs/pixel/base/system.dbf' Status : AVAILABLE, Online Status : SYSTEM
Data file 'UNDO//pixelabs/pixel/base/undo.dbf' Status : AVAILABLE, Online Status : ONLINE
Data file 'WRKODI//pixelabs/pixel/base/wkodi.dbf' Status : AVAILABLE, Online Status : ONLINE
[root@centreon plugins]#

Check-DataCacheHitRatio

Evaluer les performances de vos bases de données avec le mode DATACACHE HITRATIO

[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --mode=datacache-hitratio --hostname=PIXELABS --sid=PIXEL --username=system --password=pixel123 --warning-usage='95:' --critical-usage='90:'
OK: Buffer cache hit ratio is 99.65% | 'sga_data_buffer_hit_ratio'=99%;95:;90:;0;100
[root@centreon plugins]#

Check-ProcessUsage

[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --mode=process-usage --hostname=PIXELABS --port=1521 --sid=PIXEL --username=system --password=pixel123 --warning='90' --critical='95'
OK: 22.00% of process resources used. | 'process_used'=22.00%;0:80;0:90;0;100
[root@centreon plugins]#

Check-TableSpaceUsage

[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --mode=tablespace-usage --hostname=PIXELABS --port=1521 --sid=PIXEL --username=system --password=PIXEL123 --warning-tablespace=90 --critical-tablespace=95 --verbose
OK: All tablespaces are OK | 'tbs_data_usage_data'=22936158208B;0:61847499571;0:65283471769;0;68719443968 'tbs_geda_usage_geda'=25302401024B;0:30923749785;0:32641735884;0;34359721984 'tbs_indx_usage_indx'=6388449280B;0:30923749785;0:32641735884;0;34359721984 'tbs_perf_usage_perf'=160169984B;0:966367641;0:1020054732;0;1073741824 'tbs_sysaux_usage_sysaux'=1048248320B;0:1932735283;0:2040109465;0;2147483648 'tbs_system_usage_system'=3357278208B;0:30923749785;0:32641735884;0;34359721984 'tbs_temp_usage_temp'=20971520B;0:30923749785;0:32641735884;0;34359721984
Tablespace 'data' Total: 64.00 GB Used: 21.36 GB (33.38%) Free: 42.64 GB (66.62%)
Tablespace 'geda' Total: 32.00 GB Used: 23.56 GB (73.64%) Free: 8.44 GB (26.36%)
Tablespace 'indx' Total: 32.00 GB Used: 5.95 GB (18.59%) Free: 26.05 GB (81.41%)
Tablespace 'perf' Total: 1.00 GB Used: 152.75 MB (14.92%) Free: 871.25 MB (85.08%)
Tablespace 'sysaux' Total: 2.00 GB Used: 999.69 MB (48.81%) Free: 1.02 GB (51.19%)
Tablespace 'system' Total: 32.00 GB Used: 3.13 GB (9.77%) Free: 28.87 GB (90.23%)
Tablespace 'temp' Total: 32.00 GB Used: 20.00 MB (0.06%) Free: 31.98 GB (99.94%)
[root@centreon plugins]#

Check-SQLString (Requête SQL) #1

Un petit exemple pour l’utilisation du mode SQL. Je lance une requête SQL pour vérifier la version Oracle de ma base de données.

Directement sur le serveur :

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
# Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0      Production
TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

SQL>

Depuis Centreon :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --mode=sql --hostname=PIXELABS --port=1521 --sid=PIXEL --username=system --password=pixel123 --sql-statement='select * from v$version' --format='SQL statement result'
OK: SQL statement result | 'value'=Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production;;;;
[root@centreon plugins]#

Il est possible d’améliorer les résultats (–help).

Check-SQLString (Requête SQL) #2

Allez encore une requête. On vérifie si la base est démarré ou pas (instance=ACTIVE).

Sur le serveur directement :

SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
----------------- -------- ------------ --- ---------- ------- ---
LOGINS     SHU  DATABASE_STATUS   INSTANCE_ROLE     ACTIVE_ST  BLO
---------- --- ----------------- ------------------ --------- ---
ALLOWED    NO   ACTIVE            PRIMARY_INSTANCE  NORMAL     NO

SQL>

J’ai dû supprimer des lignes pour y voir clair. La colonne qui nous intéresse c’est DATABASE_STATUS

Requête SQL : SQL#> select database_status from v$instance;

[root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --mode=sql --hostname=PIXELABS --port=1521 --sid=PIXEL --username=system --password=pixel123 --sql-statement='select database_status from v$instance' --format='SQL statement result'
OK: SQL statement result | 'value'=ACTIVE;;;;
[root@centreon plugins]#

La base est ACTIVE. Amusez-vous bien 🙂

Supervision Oracle via UI

Passons maintenant à la supervision Oracle via Centreon web. Faisons les choses étape par étape :

  • Step 1 : création des macros nécessaire
  • Step 2 : création des commandes
  • Step 3 : création d’hôte (serveur de base de données)
  • Step 4 : création de services pour l’hôte
  • Step 5 : exporter la configuration

Création de macros : vous devez avoir déjà les macros suivantes : #Macros_personnalisees 

Ajouter en plus les macros suivantes :

  • $_SERVICEFORMAT$
  • $_SERVICESQLSTATEMENT$

Passons à la deuxième étape.

Les amis, je vais créer 3 ou 4 commandes/services et à vous de faire le reste.

Check-Oracle-TNSPing

Allez dans : Configuration > Commandes > Contrôles

  • Nom de commande : Check-Oracle-TNSPing
  • Ligne de commande : copier/coller
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --sid=$_SERVICESID$

Rappel : $USER2$ = Centreon plugins Path = /usr/lib/centreon/plugins

Check-Oracle-TNSPing Centreon

Remarque : si vous avez personnalisé les ports Oracle, ajoutez le paramètre --port=$_SERVICEPORT$

  • Sauvegarder.

Check-Oracle-TableSpace

Allez dans : Configuration > Commandes > Contrôles

  • Nom de commande : Check-Oracle-TableSpace
  • Ligne de commande : copier/coller
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --sid=$_SERVICESID$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --warning-tablespace=$_SERVICEWARNING$ --critical-tablespace=$_SERVICECRITICAL$ $_SERVICEOPTION$

Rappel : $USER2$ = Centreon plugins Path = /usr/lib/centreon/plugins

Check-Oracle-TableSpace-Usage Centreon

  • Sauvegarder.

Check-Oracle-HitRatio

Allez dans : Configuration > Commandes > Contrôles

  • Nom de commande : Check-Oracle-DataCachHitRatio
  • Ligne de commande : copier/coller
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --port=$_SERVICEPORT$ --sid=$_SERVICESID$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --warning-usage=$_SERVICEWARNING$ critical-usage=$_SERVICECRITICAL$ $_SERVICEOPTION$

Rappel : $USER2$ = Centreon plugins Path = /usr/lib/centreon/plugins

Check-Oracle-Version (Requête SQL)

Allez dans : Configuration > Commandes > Contrôles

  • Nom de commande : Check-Oracle-Version
  • Ligne de commande : copier/coller
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --sid=$_SERVICESID$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --sql-statement=$_SERVICESQLSTATEMENT$ --format=$_SERVICEFORMAT$ $_SERVICEOPTION$

Rappel : $USER2$ = Centreon plugins Path = /usr/lib/centreon/plugins

Check-Oracle-Version SQL String Centreon

  • Sauvegarder.

Création d’hôte & Services

Vous savez le faire normalement hein 🙂

  • Allez dans : Configuration > Hôtes > Ajouter

Creation hote oracle centreon

  • Onglet Notification
  • Période de notification : workhours ou 24×7

Service Check-Oracle-TNSPing

  • Allez dans Configuration > Services > Ajouter
    • Description : Check-PIXEL-TNSPing (PIXEL = nom de la base de données)
    • Lié aux hôtes : Serveur de base de données (PIXELABS)
    • Modèle : Rien (ou service_template)
    • Commande de vérification : sélectionnez dans la liste la commande : Check-Oracle-TNSPing
      • PLUGIN :database::oracle::plugin
      • MODE :tnsping
      • SID : PIXEL

Check Oracle TNSPing Service Centreon

  • Période de contrôle : 24×7
  • Onglet Notification
    • Période de notification : wordhours ou 24×7
  • Sauvegarder

Service Check-Oracle-TableSpace

  • Allez dans Configuration > Services > Ajouter
    • Description : Check-PIXEL-TableSpace (PIXEL = nom de la base de données)
    • Lié aux hôtes : Serveur de base de données (PIXELABS)
    • Modèle : Rien (ou service_template)
    • Commande de vérification : sélectionnez dans la liste la commande : Check-Oracle-TableSpace
      • PLUGIN : database::oracle::plugin
      • MODE : tablespace-usage
      • SID : PIXEL
      • USERNAME : system
      • PASSWORD : pixel123
      • WARNING : 90
      • CRITICAL : 95
      • OPTION : --verbose

Check-Oracle-TableSpace-Usage Service Centreon

  • Période de contrôle : 24×7
  • Onglet Notification
    • Période de notification : wordhours ou 24×7
  • Sauvegarder

Service Check-Oracle-HitRatio

  • Allez dans Configuration > Services > Ajouter
    • Description : Check-PIXEL-HitRatio (PIXEL = nom de la base de données)
    • Lié aux hôtes : Serveur de base de données (PIXELABS)
    • Modèle : Rien (ou service_template)
    • Commande de vérification : sélectionnez dans la liste la commande : Check-Oracle-DataCacheHitRatio
      • PLUGIN : database::oracle::plugin
      • MODE : datacache-hitratio
      • SID : PIXEL
      • USERNAME : system
      • PASSWORD : pixel123
      • WARNING : ’90:’
      • CRITICAL : ’80:’
      • OPTION : --verbose

Check-Oracle-DataCachHitRatio Service Centreon

  • Période de contrôle : 24×7
  • Onglet Notification
    • Période de notification : wordhours ou 24×7
  • Sauvegarder

Service Check-Oracle-Version (SQL)

  • Allez dans Configuration > Services > Ajouter
    • Description : Check-PIXEL-Version (PIXEL = nom de la base de données)
    • Lié aux hôtes : Serveur de base de données (PIXELABS)
    • Modèle : Rien (ou service_template)
    • Commande de vérification : sélectionnez dans la liste la commande : Check-Oracle-Version
      • PLUGIN : database::oracle::plugin
      • MODE : sql
      • SID : PIXEL
      • USERNAME : system
      • PASSWORD : pixel123
      • SQLSTATEMENT : select * from v$version
      • FORMAT : SQL statement result
      • OPTION : --verbose

Check-Oracle-Version SQL String Service Centreon

  • Période de contrôle : 24×7
  • Onglet Notification
    • Période de notification : wordhours ou 24×7
  • Sauvegarder

Supervision Oracle Résultat 🙂

Exporter la configuration et relancer le collecteur Central :

Oracle Database Monitoring Centreon Server

Check-PIXEL-Version :

Get Oracle Version SQL Command Centreon

C’est terminé. A vous de mettre en place les autres services. N’oubliez pas de superviser la charge, le CPU, Memory, Disk, Hardware, de votre serveur de base de données. N’hésitez pas en cas de besoin.

Bonne journée et à bientôt.

Supervision Systèmes & Réseaux

Voir également mes projets sur la supervision : /supervision

97 Responses

  1. Mickael dit :

    Bonjour,

    J’ai le même problème que plusieurs personnes ici, en root ca fonctionne, mais pas avec l’user centreon-engine.
    Je fais un perl -V sous centreon-engine, j’ai meme pas de %ENV et il me manque des @INC:
    @INC:
    /usr/local/lib64/perl5
    /usr/local/share/perl5
    /usr/lib64/perl5/vendor_perl
    /usr/share/perl5/vendor_perl
    /usr/lib64/perl5
    /usr/share/perl5

    J’aimerais ajouter les %ENV et @INC en plus comme dans mon perl -V sous root:

    %ENV:
    PERL5LIB= »/root/perl5/lib/perl5: »
    PERL_LOCAL_LIB_ROOT= »:/root/perl5″
    PERL_MB_OPT= »–install_base /root/perl5″
    PERL_MM_OPT= »INSTALL_BASE=/root/perl5″
    @INC:
    /root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi
    /root/perl5/lib/perl5/5.16.3
    /root/perl5/lib/perl5/x86_64-linux-thread-multi
    /root/perl5/lib/perl5
    /usr/local/lib64/perl5
    /usr/local/share/perl5
    /usr/lib64/perl5/vendor_perl
    /usr/share/perl5/vendor_perl
    /usr/lib64/perl5
    /usr/share/perl5

    Comment on fait pour les ajouter pour centreon-engine? (je laisse perl5 dans root et je donne les droits à centreon-engine)

    Merci

    • sysadmin dit :

      Le mieux est de désinstaller les modules oracle perl et de modifier le chemin d’installation de perl.
      C’est dans bashrc je pense.
      Sinon, tentes l’installation via RPM.

      Il faut que je mette à jour cet article.

  2. acid_zenox dit :

    Bonjour,

    J’ai une erreur avec l’user centreon-engine quand je supervise les tablespace avec la commande :

    ./centreon_plugins.pl –plugin=database::oracle::plugin –mode=tablespace-usage –hostname=xxxx –port=1521 –sid=xxxx –username=xxxx–password=xxxx -warning-tablespace=90 –critical-tablespace=95

    voici le resultat :

    UNKNOWN: Cannot connect: install_driver(Oracle) failed: Can’t locate DBD/Oracle.pm in @INC (@INC contains: /usr/lib/centreon/plugins /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at (eval 12) line 3.

    Perhaps the DBD::Oracle perl module hasn’t been fully installed,

    or perhaps the capitalisation of ‘Oracle’ isn’t right.

    ça fonctionne en root

    mon perl -V en root :

    %ENV:
    PERL5LIB= »/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5″
    PERL_LOCAL_LIB_ROOT= »/root/perl5:/root/perl5:/root/perl5:/root/perl5:/root/perl5″
    PERL_MB_OPT= »–install_base « /root/perl5″ »
    PERL_MM_OPT= »INSTALL_BASE=/root/perl5″
    @INC:
    /root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi
    /root/perl5/lib/perl5/5.16.3
    /root/perl5/lib/perl5/x86_64-linux-thread-multi
    /root/perl5/lib/perl5
    /root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi
    /root/perl5/lib/perl5/5.16.3
    /root/perl5/lib/perl5/x86_64-linux-thread-multi
    /root/perl5/lib/perl5
    /root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi
    /root/perl5/lib/perl5/5.16.3
    /root/perl5/lib/perl5/x86_64-linux-thread-multi
    /root/perl5/lib/perl5
    /root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi
    /root/perl5/lib/perl5/5.16.3
    /root/perl5/lib/perl5/x86_64-linux-thread-multi
    /root/perl5/lib/perl5
    /root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi
    /root/perl5/lib/perl5/5.16.3
    /root/perl5/lib/perl5/x86_64-linux-thread-multi
    /root/perl5/lib/perl5
    /usr/local/lib64/perl5
    /usr/local/share/perl5
    /usr/lib64/perl5/vendor_perl
    /usr/share/perl5/vendor_perl
    /usr/lib64/perl5
    /usr/share/perl5
    .
    Mon perl -V en centreon-engine
    %ENV:
    PERL5LIB= »/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5″
    PERL_LOCAL_LIB_ROOT= »/root/perl5:/root/perl5:/root/perl5:/root/perl5:/root/perl5″
    PERL_MB_OPT= »–install_base /root/perl5″
    PERL_MM_OPT= »INSTALL_BASE=/root/perl5″
    @INC:
    /root/perl5/lib/perl5
    /root/perl5/lib/perl5
    /root/perl5/lib/perl5
    /root/perl5/lib/perl5
    /root/perl5/lib/perl5
    /usr/local/lib64/perl5
    /usr/local/share/perl5
    /usr/lib64/perl5/vendor_perl
    /usr/share/perl5/vendor_perl
    /usr/lib64/perl5
    /usr/share/perl5

    Pouvez-vous m’aider ?

    • sysadmin dit :

      Salut,
      Si ça fonctionne en root, c’est clairement une variable env qui te manque.
      Le module perl Oracle a été installé dans /root (par défaut).
      Il faut qu’il soit installé dans /usr.

      Essaies de modifier directement les env Centreon

      PERL5LIB= »/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5″
      PERL_LOCAL_LIB_ROOT= »/root/perl5:/root/perl5:/root/perl5:/root/perl5:/root/perl5″
      PERL_MB_OPT= »–install_base /root/perl5″
      PERL_MM_OPT= »INSTALL_BASE=/root/perl5″

      Et réinstaller le module cpan oracle DBD.

      • acid_zenox dit :

        Hello
        met variable d’environnement son bonne comme ça ?

        %ENV:
        PERL5LIB= »/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5:/root/perl5/lib/perl5″
        PERL_LOCAL_LIB_ROOT= »/root/perl5:/root/perl5:/root/perl5:/root/perl5:/root/perl5:/root/perl5″
        PERL_MB_OPT= »–install_base « /root/perl5″ »
        PERL_MM_OPT= »INSTALL_BASE=/root/perl5″

        J’ai fait un cpanm –uninstall DBD::Oracle
        et cpan -i DBD::Oracle

        mais toujours pareil

        comment on install le module oracle dans /usr ?

        merci de ton aide

        • sysadmin dit :

          A ta place je modifie le chemin des variables pour que les modules perl s’installe dans /usr/perl5…etc au lieu de /root/…
          Tu réinstalles ensuite tes modules.

          Tentes simplement de rempalcer /root/ par /usr/ ça ne risque rien.

          • acid_zenox dit :

            Salut,

            J’ai une autre erreur maintenant :

            CRITICAL: Cannot connect: install_driver(Oracle) failed: Can’t load ‘/usr/perl5/lib/perl5/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so’ for module DBD::Oracle: libclntsh.so.19.1: Ne peut ouvrir le fichier d’objet partagé: Aucun fichier ou dossier de ce type at /usr/lib64/perl5/DynaLoader.pm line 190.
            at (eval 13) line 3.
            Compilation failed in require at (eval 13) line 3.
            Perhaps a required shared library or dll isn’t installed where expected
            at /usr/lib/centreon/plugins/database/oracle/dbi.pm line 36.

          • sysadmin dit :

            cpan -i DBD::Oracle

          • acid_zenox dit :

            Bonjour,

            Je suis revenu sur un snapshot de la machine avant l’installation du client oracle.

            j’ai refait toute l’installation mais j’ai toujours l’erreur

            CRITICAL: Cannot connect: install_driver(Oracle) failed: Can’t load ‘/usr/perl5/lib/perl5/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so’ for module DBD::Oracle: libclntsh.so.19.1: Ne peut ouvrir le fichier d’objet partagé: Aucun fichier ou dossier de ce type at /usr/lib64/perl5/DynaLoader.pm line 190.
            at (eval 13) line 3.
            Compilation failed in require at (eval 13) line 3.
            Perhaps a required shared library or dll isn’t installed where expected
            at /usr/lib/centreon/plugins/database/oracle/dbi.pm line 36.

            merci d’avance

      • acid_zenox dit :

        J’ai réussi avec le instantclient, ça marche avec l’user centreon-engine mais pas sur le web

        tu a une idée ?

        j’ai l’erreur :

        CRITICAL: Cannot connect: install_driver(Oracle) failed: Can’t locate DBD/Oracle.pm in @INC (@INC contains: /usr/lib/centreon/plugins /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at (eval 12) line 3.

        Perhaps the DBD::Oracle perl module hasn’t been fully installed,

        or perhaps the capitalisation of ‘Oracle’ isn’t right.

        • sysadmin dit :

          Tu as modifié les variables Centreon avant d’installer le module.
          Si tu as du mal, je pense qu’il faut passer par les packages RPM c’est plus simple.
          Il fait que je mettent à jour cet article dés que possible.

  3. Juan Carlos Huayane dit :

    Bonjour,

    Je suis toujours vos articles. Félicitations.

    Eh bien, j’ai un problème J’ai suivi l’installation selon votre article et j’ai un problème pour exécuter l’oracle avec le centreon-engine Je pense que cela se passe de la même manière que la plupart des autres. c’est-à-dire que si je lance le tnsping avec root fonctionne mais si je le fais avec centreon-engine donne une erreur UNKNOWN : Cannot connect : (no error string) |. et c’est correct j’ai installé le perl dans le répertoire root. Pouvez-vous m’aider à le résoudre ? Merci

    • sysadmin dit :

      Hello,
      ça donne quoi ces commandes sous l’user root et centreon-engine

      [root@centreon plugins]# echo $ORACLE_HOME
      [root@centreon plugins]# perl -V
      
      • Juan Carlos Huayane dit :

        Bonjour,

        Si vous regardez dans le cas de $HOME_ORACLE à la fois dans root et centreon-engine il me dit la même chose

        /home/oracle/app/product/19.0.0/client64

        Mais dans le cas de perl -V
        root

        Built under linux
        Compiled at Feb 2021 16:31:58
        %ENV:
        PERL5LIB="/root/perl5/lib/perl5:"
        PERL_LOCAL_LIB_ROOT=":/root/perl5"
        PERL_MB_OPT="--install_base /root/perl5"
        PERL_MM_OPT="INSTALL_BASE=/root/perl5"
        @INC:
        /root/perl5/lib/perl5/x86_64-linux-thread-multi
        /root/perl5/lib/perl5
        /usr/local/lib64/perl5
        /usr/local/share/perl5
        /usr/lib64/perl5/vendor_perl
        /usr/share/perl5/vendor_perl
        /usr/lib64/perl5
        /usr/share/perl5

        Centreon-engine.

        Built under linux
        Compiled at Feb 2 2021 16:31:58
        @INC:
        /usr/local/lib64/perl5
        /usr/local/share/perl5
        /usr/lib64/perl5/vendor_perl
        /usr/share/perl5/vendor_perl
        /usr/lib64/perl5
        /usr/share/perl5

        Que dois-je faire ? Merci pour votre aide.

        Salutations

        • sysadmin dit :

          Non, ce n’est pas la même chose. Ton perl est installé dans /root/perl5
          Il manque des variables ENV pour l’user centreon-engine :

           %ENV:
            PERL5LIB= »/root/perl5/lib/perl5: »
            PERL_LOCAL_LIB_ROOT= »:/root/perl5″
            PERL_MB_OPT= »–install_base /root/perl5″
            PERL_MM_OPT= »INSTALL_BASE=/root/perl5″
           @INC:
            /root/perl5/lib/perl5/x86_64-linux-thread-multi
            /root/perl5/lib/perl5
          • Juan Carlos Huayane dit :

            Vous me suggérez donc d’ajouter les variables manquantes ?

          • sysadmin dit :

            Oui, il faut ajouter les variables pour l’user centreon-engine (.bash_profile).

              /root/perl5/lib/perl5/x86_64-linux-thread-multi
              /root/perl5/lib/perl5

            Tu peux aussi essayer d’ajouter dans .bashrc les ENV :

            PERL5LIB= "/root/perl5/lib/perl5:"
            PERL_LOCAL_LIB_ROOT= ":/root/perl5"
            PERL_MB_OPT= "--install_base /root/perl5"
            PERL_MM_OPT= "INSTALL_BASE=/root/perl5"

            Reload :

            [oracle@centreon ~]$ source ~/.bash_profile
          • Juan Carlos Huayane dit :

            Bonjour,

            J’ai ajouté les chemins comme vous l’avez indiqué dans le .bash_profile ; si vous regardez les images, elles sont identiques. Mais même avec ça, ça ne marche pas. Je ne sais pas quoi faire d’autre. Quelle autre alternative recommandez-vous ?

            -bash-4.2$ /usr/lib/centreon/plugins//centreon_oracle.pl --plugin=database::oracle::plugin --mode=tnsping --hostname=x.x.x.x--sid=DESA
            CRITICAL: Cannot connect: (no error string) |
            -bash-4.2$
          • sysadmin dit :

            Bonjour,
            Maintenant que les variables sont Ok, réinstalles les modules perl Oracle :

            [root@centreon plugins]# cpan -i DBD::Oracle
            [root@centreon plugins]# cpan -i DBI
          • Juan Carlos Huayane dit :

            Bonjour,

            Je viens de réinstaller les modules avec l’utilisateur root et c’est toujours la même chose depuis.

            Salutations

          • sysadmin dit :

            C’est bizarre. Je vois pas.
            Je peux y jeter un coup d’oeil à distance si possible.
            sysadmin[at]pixelabs.fr

          • Juan Carlos Huayane dit :

            Bien sûr, je vous enverrai un courriel

  4. Doane dit :

    Bonjour,

    J’utilise Centreon pour effectuer la supervision de mes bases Oracle, tout est OK, sauf la supervision des tablespace, j’aimerai faire un graph en pourcentage restant, or je n’ai pas la possibilité de le faire, j’ai uniquement un graph des tailles de chaque tablespace. Auriez-vous une solution pour, peut être faire un calcul entre la taille totale et la taille restante ou tout simplement récupérer le pourcentage restant (ou le pourcentage utilisé peut importe).

    Merci d’avance pour votre aide.

    • sysadmin dit :

      Bonjour,
      Oui, c’est possible. Il faut jouer avec ce paramètre

      --change-perfdata --extend-perfdata
                  Change or extend perfdata. Syntax:
                  --extend-perfdata=searchlabel,newlabel,target[,[newuom],[min],[m
                  ax]]

      Tu as des exemples dans la page --help :

          --change-perfdata --extend-perfdata
                  Change or extend perfdata. Syntax:
                  --extend-perfdata=searchlabel,newlabel,target[,[newuom],[min],[m
                  ax]]
      
                  Common examples:
      
                      Change storage free perfdata in used:
                      --change-perfdata=free,used,invert()
      
                      Change storage free perfdata in used:
                      --change-perfdata=used,free,invert()
      
                      Scale traffic values automaticaly:
                      --change-perfdata=traffic,,scale(auto)
      
                      Scale traffic values in Mbps:
                      --change-perfdata=traffic_in,,scale(Mbps),mbps
      
                      Change traffic values in percent:
                      --change-perfdata=traffic_in,,percent()
      • Doane dit :

        Bonjour, 

        Merci beaucoup pour ta réponse, je t’avoue que je ne comprends pas très bien comment fonctionne ce paramètre, lorsque je m’en sert, il me demande un argument à mettre entre parenthèse : 

        Je ne vois pas trop comment faire, peut être n’est-ce pas possible avec ce mode Oracle ??

        Merci d’avance pour ton retour.

        • sysadmin dit :

          Il n’y a rien à mettre entre parenthèse :
          ajoutes les '...'
          --change-perfdata='free,,percent()'
          Ma commande :

          perl centreon_plugins.pl --plugin=database::oracle::plugin --mode=tablespace-usage --hostname=XX --sid=XX --username=XX--password=XX --change-perfdata='free,,percent()' --verbose --notemp
          OK: All tablespaces are OK | [...]
          Tablespace 'audt' Total: 4.00 GB Used: 1.00 MB (0.02%) Free: 4.00 GB (99.98%)
          Tablespace 'donnees' Total: 128.00 GB Used: 55.84 GB (43.62%) Free: 72.16 GB (56.38%)
          Tablespace 'indexes' Total: 128.00 GB Used: 47.91 GB (37.43%) Free: 80.09 GB (62.57%)
          Tablespace 'perf' Total: 1.00 GB Used: 154.75 MB (15.11%) Free: 869.25 MB (84.89%)
          Tablespace 'sysaux' Total: 32.00 GB Used: 6.29 GB (19.66%) Free: 25.71 GB (80.34%)
          Tablespace 'system' Total: 4.00 GB Used: 1.50 GB (37.42%) Free: 2.50 GB (62.58%)

          Tu verras le résultat sur le graph et non en ligne de commande.
          Egalement, je n’ai pas pour habitude moi aussi d’utiliser ces paramètres, mais il le faut pour améliorer les graph et cibler le résultat.

          Edit :
          A tester aussi :
          --explode-perfdata-max='free,total'

          • Doane dit :

            Bonjour,

            Merci pour ta réponse.

            En effet, cela fonctionne mieux avec les ‘…’

            Cependant, mon graphique reste identique par rapport à l’autre version, il y a t’il une conf spécifique à effectuer au niveau du service ou de la commande ?

            J’ai testé en forçant le graphique en pourcentage, mais ca ne fonctionne pas mieux.

            Merci d’avance pour ta réponse.

            Doane

          • sysadmin dit :

            Je sèche désolé.
            Je te conseil de faire un ticket ici : https://github.com/centreon/centreon/issues
            un expert te donnera surement le bon paramètre
            N’hésites pas à faire un retour ici 🙂
            Bonne journée.

          • Doane dit :

            Bonjour,

            N’ayant pas eu de retour sur le site Github, j’ai continué à chercher.

            Je suis tombé sur cette requête qui me conviendrait parfaitement :

            select
              tablespace_name,
              trunc(used_percent,2)
            from
              dba_tablespace_usage_metrics;

            le soucis est que lorsque je l’exécute, une seule ligne s’affiche et toutes les valeurs n’y sont pas présentes :

            J’aimerai avoir ces valeurs en PJ 1
            et j’obtiens ces valeurs en PJ 2

            Ma commande complète est la suivante :

            /usr/lib/centreon/centreon-plugins/centreon_plugins.pl --plugin=database::oracle::plugin --mode=sql --hostname=jdeora02dev --port=1521 --sid=JDEDEV --username=User --password=Password --sql-statement='select tablespace_name, trunc(used_percent,2) from dba_tablespace_usage_metrics'

            Merci d’avance pour votre retour.

            Doane

          • sysadmin dit :

            Salut,

            Utilise le monde sql-string :

            perl centreon_plugins.pl --plugin=database::oracle::plugin --mode=sql-string --hostname=jdeora02dev --port=1521 --sid=JDEDEV --username=User --password=Password --sql-statement='select tablespace_name, trunc(used_percent,2) from dba_tablespace_usage_metrics' --value-column='TRUNC(USED_PERCENT,2)' --verbose

            Tu peux jouer avec d’autres options en affichant de l’aide --help
            Il y a surement un moyen pour tout avoir, mais hors de mes compétences, désolé 🙂

          • Doane dit :

            Super 🙂
            Merci ca me fait avancer 🙂
            Bon maintenant… Il me manque toujours quelque chose… Les noms des tablespaces, il me sort bien les valeurs, mais pas les noms.
            De base, il me sort que les valeurs en pourcentage
            En ajoutant le paramètre –dual-table, il me sort que les noms des tablespace (normal)
            Comment pourrais-je faire pour avoir les 2 en même temps ? Du genre pour avoir un syntaxe en clé valeurs.

            Merci pour ton temps.

          • sysadmin dit :

            Oui, c’est la que je sèche moi aussi… 🙂
            Je n’arrive pas à récupérer les deux colonnes.
            Je vais réessayer quand j’aurais un peu de temps, je suis un peu overbooké au boulot.
            Je te tiens au courant si je trouve 🙂

          • Doane dit :

            Ca marche, je continue mes recherches et on se tient au courant.
            Bon courage 🙂

          • Doane dit :

            Bon ca y est j’ai enfin les valeurs que je souhaitais, mais cette fois ci… j’ai trop d’informations…

            Est ce que je peux faire un graph personnalisé qu’avec uniquement les pourcentages ?

            Afin d’avoir les informations, j’ai utilisé le plugin check_oracle_health

            Voici ma commande :
            /usr/local/nagios/libexec/check_oracle_health –connect user/password@JDEDEV –mode tablespace-usage

            J’ai testé avec le paramètre –units % mais je récupère toujours les mêmes informations…

            On avance 🙂

            Merci d’avance pour ton aide 🙂

            Doane

          • sysadmin dit :

            J’ai peut être mal compris, tu veux simplement superviser les tableSpaces ?
            Si oui, tu as ce mode déjà :

            perl centreon_plugins.pl --plugin=database::oracle::plugin --mode=tablespace-usage --help

            Il ne fait pas ce que tu veux vraiment ?

          • Doane dit :

            Je veux simplement superviser l’espace utilisé des tablespaces en pourcentage, or le plugin ne le permet pas, au niveau du graph, je n’ai que l’espace utilisé en MB.

            Et au final, le plugin check_oracle_health me permet de le faire et j’ai trouvé comment faire pour ne plus avoir les valeurs non désirables.

            Il suffit de désactiver les metrics au niveau du menu Administration > Parameters > Data

            Merci beaucoup pour ton aide.

            Maintenant j’ai tout ce qu’il me faut.

            Doane

          • sysadmin dit :

            Ah d’accord. Nickel
            Il y a surement un moyen de mettre les graph en % sur le plugin centreon. Je mettrais à jour l’article dés que possible.
            Il est bien également le plugin que tu utilises.
            A+

          • Doane dit :

            Oui, il y a surement un moyen, mais je ne l’ai pas trouvé… j’ai un peu tout tester je pense…

            Tiens moi informé si tu peux, car en attendant, le plugin que j’utilise est bien, mais je suis obligé de faire environ 15 retry avant d’avoir mes données sinon ca tombe en time out… Mais ca à le mérite de fonctionner 🙂

            Merci à toi

          • sysadmin dit :

            Je retire ce que j’ai dis…
            On est entrain de mettre en place la version commerciale et j’ai pas hésité à poser la question à l’expert Centreon, sur les graph ce n’est pas possible, il est allé directement check dans le code..
            Il dit qu’il y’aura des mise à jours pour ce plugin Oracle et pas mal d’autres…

            On a la réponse 😉

            Bon courage avec ton plugin 🙂
            Hésites pas si besoin.
            a+

          • Doane dit :

            Super, merci pour ta réponse 🙂

            A+

  5. tassin dit :

    Bonjour, j’utilise centreon et je trouve votre site super. Je monitore entre autres le remplissage de la FRA. mais je suis confronté à un problème avec mes plateforme en DataGuard pour avoir cette info sur la standby database. La standby database étant en ‘mount’ il faut s’y connecter en sysdba pour avoir accès aux vues system. Or le plugin ne le permet pas ou je ne l’ai pas trouvé. Quel serait la solution ? svp merci d’avance

    • sysadmin dit :

      Salut,
      J’ai pas bien compris !
      As-tu testé une commande ? t’as un retour, des erreurs ?
      -sysadmin

      • tassin dit :

        Sur une architecture oracle DataGuard (replication) la base Standby n’est pas OPEN mais en MOUNT. La seule possibilité pour se connecter à une base MOUNT pour requéter les vues system, est de se connecter en SYSDBA. Or avec Centreon je n’ai pas trouvé cette possibilité. J’ai forcement à chaque fois le message « ORA-01033: Oracle initialization or shutdown in progress »
        Y a t’il cette possibilité de se connecter en SYSDBA ? et que je serais passé à coté …
        Ou faut il utiliser un autre plugin ?
        Merci, Cdlt

        • sysadmin dit :

          Salut,
          Il y a normalement un mot de passe par défaut pour les comptes dba, system, sysdba.
          Si tu ne peux pas, essaies avec un compte simple qui a droit de lire dans la base de données.

          Pour l’info que tu cherches, il suffit d’utiliser une requête SQL directement avec le plugin Centreon.

          Voici un exemple :
          J’ai une base de PROD aussi qui réplique sur une base de test (DataGuard archi aussi).
          Lors de la réplication, la base de Test est normalement fermée aux users et une fois la réplication terminée, la base de Test doit être montée et ouvert aux users.
          je check donc avec Centreon pour vérifier si la base est montée et bien ouverte aux utilisateurs.
          Voici la commande de check :

          perl centreon_plugins.pl --plugin=database::oracle::plugin --mode=sql --hostname=DB_SERVER --sid=DB_NAME --username=sysdba --password=PASSWORD --sql-statement='select * from bases' --format='La base est accessible aux utilisateurs'
          --sql-statement='select * from bases'

          est la requête qui vérifie simplement le statut de la base.

          Normalement, si la base n’est pas accessible aux utilisateurs, le service passe en INCONNU.
          Il est possible de le forcer pour qu’il passe en CRITICAL et non en INCONNU on rajoutant ce paramètre suivant.

          --sql-errors-exit='critical'

          Donc, dans ton cas, il suffit aussi de trouver juste la requête qui te retourne l’info que tu cherches et tu check avec Centreon.
          Bonne journée,
          -sysadmin.

  6. Vincent dit :

    Bonjour

    Super doc d’installation.

    Cependant je rencontre un problème. J’ai réussi à faire fonctionner en ligne de commande le TNSPING avec l’utilisateur root. J’ai redémarré le serveur et depuis impossible de faire fonctionner la ligne de commande qui fonctionnait au départ. j’ai ce message d’erreur : CRITICAL: Cannot connect: (no error string)

    J’ai bien installé tous les modules CPAN.

    J’ai vérifier le répertoire d’installation de perl avec la commande which perl, j’obtiens ceci : /usr/bin/perl
    En faisant le perl – V, j’obtiens ça :

    @INC:
        /usr/local/lib64/perl5
        /usr/local/share/perl5
        /usr/lib64/perl5/vendor_perl
        /usr/share/perl5/vendor_perl
        /usr/lib64/perl5
        /usr/share/perl5

    Je ne sais pas du tout si c’est un problème lié à PERL, mais au vu du dernier commentaire sur cette page, cela semble s’en rapprocher en tout cas.

    Avez-vous une idée ? ou un piste de solution ?

    Merci d’avance

    Vincent

    • sysadmin dit :

      Salut Vincent,
      ça donne quoi cette commande sous root et sous centreon-engine :

      echo $ORACLE_HOME

      Toujours tester avec l’utilisateur centreon-engine (c’est avec cet user que Centreon web exécute les commandes)
      tiens moi au courant.

      • Vincent dit :

        Merci pour ton retour.

        Le résultat de la commande :
        /usr/lib/oracle/19.5/client64/

        Ceci correspond bien à mon répertoire d’installation d’ORACLE.

        j’avais renseigné le .bash_profile sur root et ensuite copié dans le répertoire de centreon-engine.

      • Vincent dit :

        J’ai identifié le problème.
        Pour installer le CPAN DBD::Oracle, j’ai du installer la version glibc 2.14. Je n’avais pas mis le chemin dans la variable LD_LIBRARY_PATH. Une fois fait pour l’utilisateur ROOT et CENTREON-ENGINE, la commande fonctionne sauf que c’est toute l’infra web de centreon qui ne fonctionne plus après.

        Je cherche de mon côté et je viendrai fournir l’info quand le problème sera résolu.

        Merci

  7. Mickael dit :

    Bonjour,

    Merci pour ton tuto toujours bien détaillé.

    Je rencontre un problème au niveau du check TNSPING (c’est le 1er que j’ajoute) via centreon web: « CRITICAL: Cannot connect: (no error string) ».
    Sur CentOS via la commande: "./centreon_plugins.pl --plugin=database::oracle::plugin --mode=tnsping --hostname=192.168.xx.xx --sid=xxx --port=1521" cela fonctionne très bien.

    Sur centreon web j’ai créé la commande :

    $USER1$/centreon-plugins/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --sid=$_SERVICESID$ --port=$_SERVICEPORT$

    (J’utilise $USER1$ pour toutes mes commandes (chemin: /usr/lib/nagios/plugins/centreon-plugins/centreon_plugins.pl)).

    Pouvez-vous m’aider svp merci 🙂

    • sysadmin dit :

      Salut Mickael,
      C’est peut être un problème d’emplacement des plugins.
      Dans : Configuration > Collecteurs > Ressources
      Tu dois avoir donc ce chemin la : $USER1$ > /usr/lib/nagios/plugins
      Tu dois mettre les plugins directement à la racine du dossier « plugins » et ta commande doit commencer directement par : $USER1$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$...

      Essaies et tiens moi au courant 🙂
      Bonne journée,
      -sysadmin.

      • Mickael dit :

        Le problème vient d’ailleurs, car tous mes autres commandes utilise bien « $USER1$/centreon-plugins/centreon_plugins.pl » pas de soucis à ce niveau là. Et en plus, ça me met un status CRITICAL et pas UNKNOWN
        Ça serait pas un problème de droit du user centreon-engine ? j’ai bien suivi le tuto « Installation Oracle Client 19c sous CentOS7 (Centreon) ».
        J’ai pas de piste là :/

        • sysadmin dit :

          As-tu bien ajouté les variables Oracle à l’user centreon-engine ?
          ça donne quoi cette commande avec l’user centreon-engine :

          su - centreon-engine
          cd /usr/lib/nagios/plugins/centreon-plugins/
          "./centreon_plugins.pl --plugin=database::oracle::plugin --mode=tnsping --hostname=192.168.xx.xx --sid=xxx --port=1521"
          • Mickael dit :

            Oui en suivant l’autre tuto.
            Le résultat est effectivement le meme en ligne de commande: CRITICAL: Cannot connect: (no error string)

            J’ai dû louper quelque chose dans les droits

          • sysadmin dit :

            C’est bizarre !
            Vérifies l’installation des modules oracle perl :

            cpan -i DBD::Oracle
            cpan -i DBI
            cpan -i CPAN::Meta
            cpan -i Test::NoWarnings

            Sans désinstaller Oracle client, installes par dessus la version RPM :
            Normalement, le client est dispo sur l’ISO Centreon (il est aussi dispo sur le site oracle):

            yum search oracle-instantclient*

            Tu installes les 4 packages (c’est sans risque, tu peux toujours les virer):
            oracle-instantclientXX.X-basic-XX….
            oracle-instantclientXX.X-devel-XX….
            oracle-instantclientXX.X-tools-XX….
            oracle-instantclientXX.X-sqlplus-XX….

            Tiens moi au courant.

          • Mickael dit :

            J’ai exécuté les commandes modules oracle perl sans problème.
            Je n’ai pas pu exécuté la commande yum search oracle-instantclient*, résultat: Aucune correspondance trouvée pour: oracle-instantclient*.

            Sinon, j’ai testé d’exécuter la commande "./centreon_plugins.pl --plugin=database::oracle::plugin --mode=tnsping --hostname=192.168.xx.xx --sid=xxx --port=1521" sous les utilisateurs:
            root= OK
            oracle= CRITICAL: Cannot connect: (no error string)
            cent-engine= CRITICAL: Cannot connect: (no error string)

            :/

          • sysadmin dit :

            C’est surement un problème perl. J’ai déjà eu ce problème avec un autre module.
            Sous root, affiche le dossier d’installation de perl avec cette commande :

            which perl

            Toujours sous root, montre moi les variables ENV avec cette commande :

            perl -V

            Si le perl est installé dans /root/… centreon ne pourra pas l’utiliser car il a ses propres variables,
            tu peux les afficher avec la même commande en tant que l’user centreon-engine :

            su - centreon-engine
            perl -V

            Aller, on va y arriver 🙂

          • Mickael dit :

            which perl : /bin/perl

            perl -V :

            PERL5LIB="/root/perl5/lib/perl5"
            PERL_LOCAL_LIB_ROOT="/root/perl5
            PERL_MB_OPT="--install_base "/root/perl5" "
            PERL_MM_OPT="INSTALL_BASE=/root/perl5"

            En tapant la meme commande sous centreon-engine, j’ai pas de %ENV comme avec root.
            En dessous de la date de compilation j’ai @INC: /sr/local/lib64/perl15 etc…

          • sysadmin dit :

            C’est donc ça le problème, pour Centreon, perl est installé dans /usr/local/lib64/perl...
            alors qu’il est installé dans /root/...

            Commence par ajouter les ENV suivantes à l’utilisateur centreon-engine (via bash_profile)
            Avec l’user root, tu modifies le bash_profile de l’user centreon-engine :

            cd /var/lib/centreon-engine/
            nano .bash_profile
            PATH=/usr/sbin:$PATH:/sbin:/home/root:/root/perl5:/root/perl5/lib/perl5:/root/perl5/bin:/usr/local/lib64/perl5/

            Sur la ligne ci-dessus, ajoutes tous les chemins vers le dossier perl.

            Voici mes propres ENV par défaut pour centreon-engine (tu peux vérifier si tu as perl installé dans ces répertoire)

             @INC:
                /usr/local/lib64/perl5
                /usr/local/share/perl5
                /usr/lib64/perl5/vendor_perl
                /usr/share/perl5/vendor_perl
                /usr/lib64/perl5
                /usr/share/perl5

            Pour l’utilisateur root :

             @INC:
                /root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi
                /root/perl5/lib/perl5/5.16.3
                /root/perl5/lib/perl5/x86_64-linux-thread-multi
                /root/perl5/lib/perl5
                /usr/local/lib64/perl5
                /usr/local/share/perl5
                /usr/lib64/perl5/vendor_perl
                /usr/share/perl5/vendor_perl
                /usr/lib64/perl5
                /usr/share/perl5

            N’oublie pas de faire export pour prendre en compte les ENV :

            su - centreon-engine
            source ~/.bash_profile
          • Mickael dit :

            Alors,
            J’ai bien exécuté les commandes:
            cd /var/lib/centreon-engine/
            nano bash_profile
            PATH=/usr/sbin:$PATH:/sbin:/home/root:/root/perl5:/root/perl5/lib/perl5:/root/perl5/bin:/usr/local/lib64/perl5/

            Par contre dans ton tutoriel il faut faire un .bash_profile et pas un bash_profile ? Dans le doute j’ai aussi créé un fichier bash_profile. J’ai modifié le PATH dans le fichier .bash_profile de centreon-engine puis fait un:
            su – centreon-engine
            source ~/.bash_profile
            Pour vérifier je fais un perl -V sur le user centreon-engine et les chemins ne sont pas modifiées donc ca ne marche toujours pas
            Au niveau des valeurs par défaut j’ai exactement les mêmes.
            Donc toujours la meme erreur « CRITICAL: Cannot connect: (no error string) »

            Je m’en sors pas 🙁

          • sysadmin dit :

            C’est bizarre ! c’est possible de prendre la main à distance ?
            Si oui, envoies moi un mail : sysadmin[at]pixelabs.fr

          • Terlom dit :

            Bonjour,

            Je pense avoir exactement le même problème (d’après les précédents messages).
            Avez-vous réussis à le résoudre depuis, si oui comment ?
            Merci par avance.

          • sysadmin dit :

            Salut,
            La commande fonctionne bien avec l’user centreon-engine ? test en ligne de commande et poste le résultat.

          • Terlom dit :

            Avec centreon-engine j’ai le « Cannot connect: (no error string) » contrairement avec root où sa fonctionne. J’ai également perl qui est installé dans root et non dans centreon-engine.

            Edit :
            Tout d’abord merci pour la réponse.
            Avec l’utilisateur centreon-engine : Cannot connect: (no error string), mais sa fonctionne avec les autres utilisateurs (root…). J’ai perl d’installé sur root et non sur centreon-engine.

          • sysadmin dit :

            C’est surement un problème de module perl oracle. L’utilisateur centreon-engine ne peut pas lire dans /root/…
            Il faut tenter de modifier les variables ENV ou installer ailleurs.

            Je peux y jeter un coupe un d’oeil, mais je ne te promet rien 🙂

          • Terlom dit :

            Bonjour,

            Désolé pour la réponse tardive (je n’avais pas accès au pc ayant Centreon)
            Après avoir modifié les variables d’environnement cela donne ça: (voir img)
            Ce qui est entre parenthèses en rouge correspond à ce qui a été ajouté après modification du fichier ./bash_profile.
            Malgré l’ajout cela ne fonctionne toujours pas.

          • Terlom dit :

            Je viens de tester en faisant sauter les droits sur les répertoires (oracle, root) pour centreon-engines. Maintenant à partir de l’invite de commande en étant connecté sur centreon-engines je peux exécuter les commandes je n’ai pas d’erreur, néanmoins sa ne change rien du coté interface de centreon, l’erreur  Cannot connect: (no error string) est toujours présente.

          • sysadmin dit :

            Si ça marche en ligne de commande avec l’user centreon-engine, ça doit fonctionner aussi via l’interface web.
            Regardes si tu peux avoir plus d’infos en ajoutant le paramètre --debug à ta commande.
            Je t’avoue que je ne comprends pas. Si ça bloque toujours, essaies d’ouvrir un ticket sur le github Centreon. https://github.com/centreon/centreon/issues

          • Terlom dit :

            Je viens de me rendre compte que testais avec une commande du plugin pack « oracle database », néanmoins je viens de tester avec les commandes du tutoriel et là par contre sa ne marche même via les commandes, j’ai cette erreur : (voir pj)

          • sysadmin dit :

            Il te manque les modules perl oracle. C’est dans l’article : https://pixelabs.fr/oracle-client-19c-installation-sous-centos7-centreon/

            [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
          • Terlom dit :

            Ils sont installés, après je peux tenter de les réinstaller (je n’ai juste pas trouvé comment sans réinstaller perl)

          • sysadmin dit :

            Je peux y jeter un petit coup d’oeil à distance ?
            Si c’est possible, je suis normalement dispo vers 15h
            Faut me faire un mail : sysadmin[at]pixelabs.fr

          • Terlom dit :

            Merci pour la proposition, mais malheureusement, je n’ai pas l’autorisation

          • sysadmin dit :

            Pas de problème.
            Excuses-moi, je me suis trompé sur mon commentaire précédent.
            Tu n’es pas dans le bon répertoire ou se trouve les plugins Centreon.

            Dans mon cas, les plugins sont installés comme dans cet article : https://pixelabs.fr/installation-mise-a-jour-centreon-plugin-packs/

  8. Botiscan dit :

    Bonjour Sysadmin, j’ai le même problème dans l’interface de centreon « UNKNOWN: Cannot connect: (no error string) » or en ligne de commande j’arrive a monitorer ma DB avec les trois utilisateurs (ROOT, CENTREON-ENGINE, ORACLE).
    J’ai vraiment suivi tous les tutos et les commentaires des autres sur le même problème mais je ne trouve pas de solution et j’ai vraiment besoin de ton aide.

  9. Benjamin dit :

    Salut,

    Merci pour la réponse;)

    Maintenant j’ai un autre problème… :'( J’ai donc tester tout les commande que je voulais en ligne de commande en « root » (pas bien je sais :s ), je viens de créé mes services que j’affecte a mon host et là c’est le drame…

    « UNKNOWN: Cannot connect: (no error string) »

    et effectivement en passant en « su – centreon-engine » la commande qui passe super en « root » me renvois l’erreur ci-dessus.

    As tu une idée lumineuse ?

    Merci bcp.

    • sysadmin dit :

      Salut,
      as-tu rajouté les variables d’environnement pour l’utilisateur centreon-engine ?
      Il suffit de copier le fichier .bash_profile de l’utilisateur root vers le répertoire racine de l’utilisateur centreon-engine
      -sysadmin.

      • Benjamin dit :

        Salut,

        Merci pour la réponse.

        Oui j’avais mis les variable d’env pour centreon-engine, mon problème venais du fait que j’avais pas renseigné le fichier « /etc/ld.so.conf.d/oracle.conf » avec l’emplacement « /usr/lib/oracle/12.1/client64/lib/ ».

        Truc a la con, que je n’ai vu nul par…

        A+

  10. Benjamin dit :

    Re-salut,

    Encore une question, est il possible d’envoyer un fichier SQL (pour des requêtes compliqué avec filtre et mise en forme) dans ce check ?

    Merci

  11. Benjamin dit :

    Salut,

    Merci pour cette super page que je rajoute a ma bible de lien Centreon 😉

    Une petite question sur le check « tablespace-usage » pour les tablespace en autoextend.
    Le Check renvoie la taille total et le ratio en fonction de la disponiblité théroque allouable (jusqu’a l’auto extend complet), mais mon DBA veux (le chieur 😉 ) l’occupation en fonction de la tail des datafiles à l’instant « T » afin que créer ou agrandir lui même les datafiles et ne pas laisser Oracle gérer (l’auto Extend) étant pour lui juste le moyen de ne pas voir sa BDD ce casser la tronche le week end.

    Exemplte :

     /usr/lib/centreon/plugins//centreon_oracle.pl --plugin=database::oracle::plugin --hostname=srvbdd --sid=bddpro --username=SYSTEM --password=xxxxx --mode=tablespace-usage --verbose --filter-tablespace=DATGNX1
    OK: Tablespace 'datgnx1' Total: 500.00 GB Used: 315.56 GB (63.11%) Free: 184.44 GB (36.89%) | 'tbs_datgnx1_usage'=338830163968B;;;0;536870912000
    Tablespace 'datgnx1' Total: 500.00 GB Used: 315.56 GB (63.11%) Free: 184.44 GB (36.89%)

    Alors que sur Oracle Enterprise manager :

    DATGNX1 / Taille Allouée 358 400Mo / Espace Utilisé 323 133,6 Mo / 90,2 % Occupation / Gestion des sergments Auto jusqu’a 500Go

    Si je ne suis pas clair je peux essayer de reformuler.

    • sysadmin dit :

      Salut Benjamin,
      Oui, j’ai bien compris 🙂 Et non, je ne vois pas dans le plugin comment lui dire de renvoyer l’espace disponible à l’instant « T ».
      Il faut voir s’il existe un script sur le net.

      Tu as deux modes pour exécuter les requêtes SQL : SQL et SQL-STRING mais exécuter un fichier SQL via le plugin Centreon, je ne sais pas, je n’ai jamais fait.

      [root@centreon plugins]# ./centreon_plugins.pl --plugin=database::oracle::plugin --list-mode
      [...]
      Modes Available:
         asm-diskgroup-usage
         connected-users
         connection-time
         corrupted-blocks
         data-files-status
         datacache-hitratio
         dictionary-cache-usage
         event-waits-usage
         fra-usage
         invalid-object
         library-cache-usage
         list-asm-diskgroups
         list-tablespaces
         long-queries
         password-expiration
         process-usage
         redolog-usage
         rman-backup-age
         rman-backup-problems
         rman-online-backup-age
         rollback-segment-usage
         session-usage
       # sql
       # sql-string
         tablespace-usage
         tnsping
      [root@centreon plugins]#

      Bonne journée,
      -sysadmin.

  12. sysadmin dit :

    Mise à jour de l’article :
    l’installation du client oracle sous Centreon est disponible.

  13. dje dit :

    Bonjour,
    Bravo c’est vraiment une belle Doc!
    J’ai une petite question notamment sur la sortie du check de version.
    Sais tu si c’est possible d’avoir la sortie « données de performance » dans le « status détaillé » ?
    Cela permet d’afficher la version dans la vue monitoring.

    Merci

    • sysadmin dit :

      Salut,
      Merci pour votre message.
      Non, aucune idée désolé. Regarde dans les options de tes widgets s’il y a des cases à cocher pour afficher plus d’information.
      Bonne journée.

      • Djé dit :

        Salut,
        Pour information, j’ai trouvé la solution :
        Je partage la solution, ça peut servir… Il ne faut pas intérroger la vue v$version mais la vue v$instance qui renvoie uniquement 1 ligne et la c’est OK. Il faut également utiliser le mode « sql-string » :

        /centreon_plugins.pl --plugin=database::oracle::plugin --mode=sql-string --username=xxxxx --password=xxxxxx --sql-statement='SELECT version from v$instance' --datasource="Oracle://xxxxx:/xxxxxx" --value-column=VERSION

        Merci pour tout encore 🙂

  14. sysadmin dit :

    Mise à jour de l’article

  15. Wackou dit :

    Bonjour,
    pourriez-vous expliquer l’installation du client Oracle et ses dépendances ?
    Merci d’avance.

Laisser un commentaire

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