Outils pour utilisateurs

Outils du site


Panneau latéral

start:supervision:check_mk:quagga

Ceci est une ancienne révision du document !


Pour vérifier l'état des sessions BGP sur les routeurs Linux tournant Quagga on utilise un plugin local pour check_mk qui va donc régulièrement interroger Quagga pour connaitre les sessions en cours, et leur état. Un fichier de configuration permet de définir, en spécifiant les numéros d'AS, les sessions à ignorer, ou celles qui sont critiques (un client, un transitaire, par exemple). Par défaut une session qui n'est pas active, et pour laquelle ce n'est pas volontaire (shutdown) donne un retour WARNING.

Le script communiquant avec Quagga utilise expect.

  • DISABLEPWD est le mot de passe Quagga pour pouvoir se connecter
  • ENABLEPWD est le mot de passe Quagga pour pouvoir passer enable
/usr/lib/check_mk_agent/local/check_bgp_summary
#!/bin/bash
 
conf="/etc/check_mk/bgp.conf"
script_expect="/usr/local/bin/bgp_summary localhost bgpd DISABLEPWD ENABLEPWD"
 
# Var NAGIOS
STATE_OK="0"
STATE_WARNING="1"
STATE_CRITICAL="2"
STATE_UNKNOWN="3"
STATE_DEPENDENT="4"
 
# Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
(
$script_expect |grep -A 9999999 "^Neighbor"|grep -B 999999 "^Total"|egrep "^[0-9]" | sed -e 's/\r//' | \
while read Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ UpDown StatePfxRcd sup  ; do
  # Status ItemName PerformanceData CheckOutput
 
  if [[ $(grep -i "^exclude:as$AS:" "$conf") ]] ; then
    continue # skip when exclude
  fi
 
  infos="$StatePfxRcd"
  [ "x" != "x$sup" ] && infos="$infos $sup" # Gestion des cas ou l'info est en deux mots
 
  count=0
  val=$STATE_UNKNOWN
  if [[ $StatePfxRcd =~ [0-9]+ ]] ; then
    val=$STATE_OK
    count=$StatePfxRcd
  else 
    # Erreur, donc warning
    val=$STATE_WARNING
 
    # Si CRITIQUE, alors on hurle
    if [[ $(grep -i "^critical:as$AS:" "$conf") ]] ; then
      val=$STATE_CRITICAL
    fi
 
    # Si c'est volontaire, shut
    if [[ "$infos" =~ \(Admin\) ]] ; then
      val=$STATE_OK
    fi
  fi
 
  echo "$val BGP_AS"$AS"_$Neighbor count=$count Duration: $UpDown - Status: $infos"
done
)|sort -k 2
start/supervision/check_mk/quagga.1356705645.txt.gz · Dernière modification: 2012/12/28 15:40 par domi