Superviser un Serveur de Base de données Oracle avec Shinken

Pour superviser un serveur contenant une base de données sous Oracle. Il faut y créer un schéma (utilisateur) correspondant à celui du serveur de supervision et lui attribuer des droits d’accès sur certaines tables, dans lesquels il vient récupérer les informations.

Sur la base Oracle, il faut donc :

  1. Se connecter : sqlplus sys@IP_hôte as sysdba
  2. Exécuter les requêtes suivantes :
    • CREATE USER shinken IDENTIFIED BY password;
      Attention à bien sécuriser le mot de passe !
    • GRANT CREATE SESSION TO shinken;
    • GRANT SELECT any dictionary TO shinken;
    • GRANT SELECT ON V_$SYSSTAT TO shinken;
    • GRANT SELECT ON V_$INSTANCE TO shinken;
    • GRANT SELECT ON V_$LOG TO shinken;
    • GRANT SELECT ON SYS.DBA_DATA_FILES TO shinken;
    • GRANT SELECT ON SYS.DBA_FREE_SPACE TO shinken;

Sur le serveur shinken :

  1. Installer, en tant que root, un client Oracle correspondant à la version du serveur
    • Installer le paquet debian libaio1
    • Récupérer le client sur le site officiel de Oracle (instant_client)
    • Créer un répertoire oracle dans /opt
    • Décompresser les archives dans ce dossier
    • Créer le répertoire network et son sous-répertoire admin dans le dossier décompressé
  2. Définir les variables d’environnement
    • Créer le fichier /etc/profile.d/oracle.sh
    • Déclarer les variables d’environnement à l’intérieur de celui-ci :
      export ORACLE_BASE=/opt/oracle
      export ORACLE_HOME=$ORACLE_BASE/instantclient_11_2
      export PATH=$PATH:$ORACLE_HOME
      export TNS_ADMIN=$ORACLE_HOME/network/admin
      export NLS_LANG=FRENCH_FRANCE.UTF8
      export LD_LIBRARY_PATH=$ORACLE_HOME
    • Appliquer les changements via la commande : source /etc/profile.d/oracle.sh
    • Créer le fichier tnsnames.ora dans le répertoire $TNS_ADMIN
      • Ecrire les informations de connexion à la base (datasource)
      • XE =(DESCRIPTION =
                (ADDRESS =
                    (PROTOCOL = TCP)
                    (HOST = 192.0.0.14)
                    (PORT = 1521)
                )
                (CONNECT_DATA =
                    (SERVER = DEDICATED)
                    (SERVICE_NAME = XE)
                )
        )
      • Puis tester la connexion à la base : sqlplus shinken/password@XE
    1. Installer les librairies Perl nécessaires : cpan install
      Le plugin nagios qui envoie les sondes au serveur de SGBD est écrit en perl. Il a donc besoin de deux librairies spécifiques pour fonctionner. A savoir : DBI & DBD::Oracle
    2. Récupérer & installer le plugin Nagios : check_oracle_health.pl
      • Installer le pack oracle : shinken install oracle
      • Changer le mot de passe dans le fichier /etc/shinken/resource.d/oracle.cfg
      • Se placer sur le répertoire /var/lib/shinken/libexec
      • Télécharger le plugin nagios : wget  https://labs.consol.de/assets/downloads/nagios/check_oracle_health-3.1.0.3.tar.gz
      • Décompresser l’archive : tar -zxvf check_oracle_health-3.1.0.3.tar.gz
      • Lancer l’installation : ./configure  puis make && make install
      • Tester la connexion :./check_oracle_health –connect XE –username shinken –password password –mode tnsping
    3. Créer le fichier d’hôte définissant le serveur Oracle : vi /etc/shinken/hosts/srvoracle.cfg
      define host{
              use             linux,oracle
              host_name       srvora_hostname
              address         192.0.0.14
              _databases      XE
      }
  1. Redémarrer Shinken : service shinken restart
  2. Vérifier les remontées dans l’IHM Webui2 : http://localhost:7767