Script per detectar problemes de latència: Diferència entre les revisions

De Guifi.net - Wiki Català

(Es crea la pàgina amb «El present script analitza la latència entre els diversos elements d'un segment de xarxa. En cas que la latència sigui superior a un valor prefixat a l'script, s'envia ...».)
 
Línia 5: Línia 5:
 
El propi script intenta ser "auto-explicatiu":
 
El propi script intenta ser "auto-explicatiu":
  
 +
<nowiki>
 
#!/bin/bash
 
#!/bin/bash
  
Línia 96: Línia 97:
 
sleep 1800
 
sleep 1800
 
done
 
done
 +
</nowiki>

Revisió de 19:38, 13 març 2012

El present script analitza la latència entre els diversos elements d'un segment de xarxa. En cas que la latència sigui superior a un valor prefixat a l'script, s'envia un e-mail al responsable del "trasto" i també un altre a l'administrador per tal de detectar futurs problemes greus abans que arribin a ser greus. També genera un log amb els errors lleus i greus. El propi script intenta ser "auto-explicatiu":

#!/bin/bash # Aquest script envia pings contra elements de xarxa i genera alarmes en format e-mail # depenent de les latencies programades com a perilloses i critiques. # Josep Figueras i Franch # 2012-03-13 - Versió 2.1 # Manual per configurar el servidor de correu: # En sistemes Debian/Ubuntu: # apt-get update && apt-get install ssmtp && apt-get install mailutils # Editem el fitxer /etc/ssmtp/ssmtp.conf i hi afegim aquesta configuracio: # AuthUser=robot.guifi@gmail.com # AuthPass=robot_guifi # FromLineOverride=YES # mailhub=smtp.gmail.com:587 # UseSTARTTLS=YES # Comanda per executar l'script: bash ./link-test_Manresa2Castelladral & # Per matar el procés: ps aux | grep link-test_Manresa2Castelladral # Busquem PID i executem kill -9 #PID # I aquesta es la comanda per enviar mails des de la shell: #echo "COS_DEL_MISSATGE" | mail -s "TITOL_DEL_MISSATGE" CORREU_DESTINATARI@gmail.com #----------------------------------------------------------------------------------------- #FUNCIO QUE ANALITZA UN DISPOSITIU DE XARXA #----------------------------------------------------------------------------------------- function Analitza_Host { LATENCIA=`ping -n -c $NOMBRE_PINGS_PER_CALCULAR_PROMIG $1 | awk -F/ '/^rtt/ { print $5 }' | awk -F '.' '{ print $1; }'` if [ ! -n "$LATENCIA" ] then # Afegim el missatge d'error al log echo "ERROR!: [`date +%D` `date +%T`]: L'equip $1 no respon als pings!" >> $RUTA_LOG # Enviem un mail al responsable del dispositiu per tal que solventi el problema echo "[`date +%D` `date +%T`]: El robot de guifi.net ha detectat un problema al dispositiu $1. El dispositiu no respon als pings!" | mail -s "Problema detectat $1" $2 # Enviem tambe un mail a l'administrador echo "[`date +%D` `date +%T`]: El robot de guifi.net ha detectat un problema al dispositiu $1. El dispositiu no respon als pings!" | mail -s "Problema detectat $1" $MAIL_ADMINISTRADOR elif [ $LATENCIA -le "$LLINDAR_PERILLOS" ] then ESTAT_LATENCIA="OK" elif [ $LATENCIA -le "$LLINDAR_CRITIC" ] then ESTAT_LATENCIA="PERILL" # Afegim el missatge d'error al log echo "$ESTAT_LATENCIA: [`date +%D` `date +%T`]: Temps de resposta promig contra el servidor $1= $LATENCIA ms" >> $RUTA_LOG else ESTAT_LATENCIA="CRITIC" # Afegim el missatge d'error al log echo "$ESTAT_LATENCIA: [`date +%D` `date +%T`]: Temps de resposta promig contra el servidor $1= $LATENCIA ms" >> $RUTA_LOG # Enviem un mail al responsable del dispositiu per tal que solventi el problema echo "[`date +%D` `date +%T`]: El robot de guifi.net ha detectat un problema al dispositiu $1. Latencia= $LATENCIA ms" | mail -s "Problema detectat al dispositiu $1" $2 # Enviem tambe un mail a l'administrador echo "[`date +%D` `date +%T`]: El robot de guifi.net ha detectat un problema al dispositiu $1. Latencia= $LATENCIA ms" | mail -s "Problema detectat al dispositiu $1" $MAIL_ADMINISTRADOR fi } #----------------------------------------------------------------------------------------- #Les variables d'entorn NOMBRE_PINGS_PER_CALCULAR_PROMIG=5 LLINDAR_PERILLOS=40 # Si la latència és superior a aquest valor, es genera un missage de PERILL LLINDAR_CRITIC=60 # Per latències superiors a aquest valor es genera un missatge CRITIC i s'envien mails als responsables RUTA_LOG="/var/log/Errors_Manresa-Castelladral.log" # Ruta on guardarem els missatges d'errors detectats MAIL_ADMINISTRADOR="administrador@gmail.com" # Correu electrònic de l'administrador del segment de xarxa while true; do # Llistat de dispositius a analitzar # Format: Analitza_Host DISPOSITIU_A_ANALITZAR E-MAIL_DEL_RESPONSABLE_DEL_DISPOSITIU # Origen: Sant Ignasi (Manresa) # Desti: Castelladral Analitza_Host ManresaServerGuifi--14267.ip.guifi.net responsble1@gmail.com Analitza_Host MNKoutenST1--32097.ip.guifi.net responsable2@guifi.net Analitza_Host SLLTorreTelST2--29076.ip.guifi.net responsable3@gmail.com Analitza_Host SLLTorreTelST3--36277.ip.guifi.net responsable4@hotmail.com Analitza_Host 10.228.5.1 responsable5@gmail.com # Esperem 30 minuts abans no tornem a analitzar el segment de xarxa sleep 1800 done

Eines de l'usuari