Déc
11
2008

[SCRIPT NAGIOS] Monitorer les sauvegardes


Pour vérifier mes sauvegardes Linux, j’ai créé un plugin nagios. Je place le code erreur dans un fichier. Puis lorsque Nagios vient executer le plugin, celui-ci lui renvoie le code erreur situé dans le fichier avec un message.

Utilisation du plugin dans Nagios :

$USER1$/check_sauvegarde.pl -serveur $HOSTNAME$

Hostname correspond au nom du serveur dans NAGIOS et c’est le nom que devra porter le fichier.

Code source du plugin (perl) :

#!/usr/bin/perl
    # vi /usr/local/bin/nagios_testd.pl
    #!/bin/sh

    ##################################################################
    # Creation: Legras olivier
    # Last Modification:
    # Ce script permet de vérifier que les sauvegardes ont été effectuées avec succès
    ##################################################################
    #Bibliothèque utilisées
    use strict;
    use Getopt::Long;

    #Constante pour Nagios
    my $STATE_OK="0";
    my $STATE_CRITICAL="2";

    #Constante à configurer si nécessaire
    my $PATH= "/tmp/sauvegarde_repertoire";

    #Déclaration des variables
    my $help;
    my $serveur;my @STATE;

    # Message d’aide

    # Affichage de l’aide

    my $USAGE = <<EOF;
    usage: $0 -options
  Options:
    -help             Affiche cet écran
    -serveur          Serveur a verifier

    Exemple :
    ./check_sauvegarde.pl -serveur HOSTNAME (Nagios)
EOF

    #Gestion des arguments

    &GetOptions("help"    => $help,
                "serveur:s"    => $serveur);

    if ($help) {
      die "$USAGE";
    }

    if ($serveur) {
      #on test que le fichier existe
      unless (-f "$PATH/$serveur"){
      print "Le fichier $PATH/$serveur n’existe pas";
      exit $STATE_CRITICAL;
      }
    }
    else{
      print "Il faut mettre un argument serveur !";
      exit $STATE_CRITICAL;
    }

    #lecture du fichier
    open(FICHIER,"$PATH/$serveur") || die ("Erreur d’ouverture du fichier");

    @STATE = <FICHIER>;
    close(FICHIER);
    unless (@STATE[0]){
    print "Fichier $PATH/$serveur vide !";
    exit 2
    }

    #ON COMPARE
    if ( substr(@STATE[0],0,1) eq $STATE_OK ){
    print "Sauvegarde de $serveur reussie";
    exit $STATE_OK;}

    else{
    print "Sauvegarde de $serveur en erreur";
    exit $STATE_CRITICAL
    }

Au sujet de l'auteur: Olivier Legras

Auteur de ce Blog, je partage quelques unes de mes notes que je juge utile à vous comme à moi. Je suis très heureux de voir que mon blog a de plus en plus d'affluence. Merci à vous!

Laissez un commentaire