Ci dessous le script qui permet de lire le contenu d'un rapport de sauvegarde et renvoi à une commande Nagios Centreon les information de métrique pour faire des graphique et donner un état du job


 

#! /bin/bash

# Plugin return codes
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3

#WARNING="3"
#CRITICAL="2.7"

print_version() {
  echo $SCRIPTNAME version $VERSION
  echo ""
  echo "Ce plugin est fourni avec ABSOLUTELY NO WARRANTY."
  echo "You may redistribute copies of the plugins under the terms of the GNU General Public License v2."
  echo "Vous devez redistribuer des copies de ce plugin sous les termes de la GNU General Public License v2."

}

# Option processing
print_usage() {
  echo "Usage: ./check_job_sauvegarde -J 471500-Bureautique -F RES.csv -w 2.7 -c 3"
  echo "  $SCRIPTNAME -J NOM-JOB"
  echo "  $SCRIPTNAME -F FICHIER"
  echo "  $SCRIPTNAME -w WARNING"
  echo "  $SCRIPTNAME -c CRITIQUE"
  echo "  $SCRIPTNAME -h"
  echo "  $SCRIPTNAME -V"
}

print_help() {
  print_version
  echo ""
  print_usage
  echo ""
  echo "Vérifie la taille d'un job de sauvegarde dans un fichier de log"
  echo ""
  echo "-J Job à Vérifier"
  echo "   Nom de la tâche à vérifier"
  echo "-F Fichier qui contient les Rapports"
  echo "   Le fichier qui contient le résultat dus sauvegardes"
  echo "-w INTEGER"
  echo "   Valeur d'alerte pour ce Job (default: 0)"
  echo "-c INTEGER"
  echo "   Valeur Max prévue dans la convention (default: 0)"
  echo "-h"
  echo "   Affiche cette aide"
  echo "-V"
  echo "   Affiche la version et la licence"
  echo ""
  echo ""
  echo "Ce plugin vérifie la taille de la sauvegarde d'un job dans un fichier de rapport de sauvegarde."
  echo "Ce plugin produit des données de performance pour des graphes."
  echo "Si la valeur de la taille de la sauvegarde et/ou le temps sont nuls alors le scipt retourne un état à ERREUR "
  echo "If the warning level and critical levels are both set to 0, then the script returns OK state."
}

while getopts J:F:w:c:hV OPT
do
  case $OPT in
    J) JOB="$OPTARG" ;;
    F) FICHIER="$OPTARG" ;;
    w) WARNING=$OPTARG ;;
    c) CRITICAL=$OPTARG ;;
    h)
      print_help
      exit $STATE_UNKNOWN
      ;;
    V)
      print_version
      exit $STATE_UNKNOWN
      ;;
   esac
done


#taille=$(cat $1 | grep $2 | awk -F\" '{print $2}')
taille=$(cat $FICHIER | grep $JOB | awk -F\" '{print $2}')

duree=$(cat $FICHIER | grep $JOB | awk -F\, '{print $8}')
jour_heure_sauv=$(cat $FICHIER | grep $JOB | awk -F\, '{print $7}')
#agent_sauv=$(cat $FICHIER | grep $JOB | awk -F\, '{print $6}')
#os_agent=$(cat $FICHIER | grep $JOB | awk -F\, '{print $5}')

taille3="${taille/,/.}"
if [ -z ${duree} ]; then
        STATE=$STATE_CRITICAL
else STATE=$STATE_OK
fi

#if [ ${taille} -eq 0  ]; then
#       STATE=$STATE_CRITICAL
#else STATE=$STATE_OK
#fi

unite='GB'
#taille2="$taille$unite"
#taille3="${taille/,/.}"
DESCRIPTION="Vol derniere sauvegarde : $taille Duree : $duree Le : $jour_heure_sauv | volume=$taille$unite;$WARNING;$CRITICAL;0;0"
echo $DESCRIPTION
exit $STATE
#echo taille=$taille duree=$duree timedate=$jour_heure_sauv Agent=$agent_sauv Os=$os_agent
#echo "| Volume =${taille3}GB 0 0 0 5"
#echo $taille
#echo $taille3

 

            

Si les graphiques ne fonctionnent pas faire les commandes suivantes sur le serveur

sudo /etc/init.d/ndo2db status

si pas ok alors faire

sudo /etc/init.d/ndo2db start

si erreur de lock faire

sudo rm /usr/local/nagios/var/ndo.sock

puis 

sudo /etc/init.d/ndo2db start

 

autres commandes

sudo /usr/local/centreon/cron/archiveDayLog -r

sudo /usr/local/centreon/bin/logAnalyser -a

tail -f /usr/local/nagios/var/service-perfdata 

Avoir des cartes dans nagvis c'est bien, mais si en plus on veut avoir des informations sur la charge de son réseau c'est encore mieux.

C'est pourquoi la mise en place d'une solution à base de Nagios Centreon Nagvis et précieuse.

On part du principe que le serveur NCN ( Nagios, Centreon, NagVis ) fonctionne sur un serveur Ubuntu.

1 - il faut installer le plugin check_iftraffic4.pl

sur le serveur NCN en ligne de commande faire :

sudo apt-get install libnet-dns-perl

Sur la page suivante télécharger le fichier et ensuite le transferer sur le serveur dans le bon répertoire

http://exchange.nagios.org/directory/Plugins/Network-Connections%2C-Stats-and-Bandwidth/check_iftraffic4-2Epl/details

le répertoire normal des plugins est le suivant :

/usr/local/nagios/libexec

Rendre le plugins utilisable par nagios et executable

sudo chmod +x /usr/local/nagios/libexec/check_iftraffic4.pl

sudo chown nagios:nagios /usr/local/nagios/libexec/check_iftraffic4.pl

NB : Les 5 lignes suivantes ne sont pas obligatoires, mais elles permettent une persistances des données même lors du redémarrage du serveur, sinon les données sont perdues.

Le plugin utilise des fichiers temporaires pour les données de performance, nous pouvons rediriger ces fichiers vers un dossier spécifique dans /var.

sudo mkdir /var/lib/centreon/centtraffic

Modifiez le fichier check_iftraffic4.pl

la ligne : my $TRAFFIC_FILE = « /tmp/traffic »;

deviens : my $TRAFFIC_FILE = « /var/lib/centreon/centtraffic/traffic »;
2 - Parametrage de centreon
2.1 Création de la commande de plugin
configuration - commands - add
$User1$ : chemin vers les plugin
$HOSTADDRESS$ : adresse ip de la machine à controler
$USER2$ : classe SNMP a analyser
$ARG2$ : interface de la machine distante à controler
2.2 Création d'un modèle
Configuration - Services - Templates - Add
et

Si lors de l'installation ou de la mise à jour vous avez le message suivant :

> /etc/init.d/ndo2db start
Starting ndo:Could not bind socket: Address already in use
done.
>

 

Supprimez le fichier suivant /usr/local/nagios/var/ndo.sock

 

Relancez et c'est ok

Dans les vues de centreon il est possible d'exporter les valeurs afin de les analyser dans un tableur ( ici openoffice.org calc ).

Seul petit soucis le format des dates est de type timestamp il ressemble à ceci : 1274682643

Assez difficile a lire mais vous pouvez le convertir avec la formule suivante

  • A2/(3600*24)+ref
Ou
  • A2 est la cellule qui contient de timestamp
  • ref est une cellule qui contient la date du 01/01/1970
Voilà le tour est joué.