Linux Experience

Fetchlog

Settembre 25, 2007 · Nessun Commento

Introduzione

Questa simpatica utility serve per tenere sotto controllo un qualsiasi log. Generalmente viene utilizzata per tenere sotto controllo il messages in modo semplice ed efficace.

Installazione

procuriamoci l’utility dal sito : http://fetchlog.sourceforge.net/

il formato e’ il classico tar.gz fetchlog-1.0.tar.gz

perciò da utente digitiamo

$ tar xvfz fetchlog-1.0.tar.gz

$ cd fetchlog-1.0

$ make

diventiamo root e digitiamo

# make install

Questo installerà il sw in INSTDIR/bin e la pagina di man in INSTDIR/man/man1.

Comunque è presente all’interno del pacchetto anche un file readme per l’integrazione con NAGIOS e SNMP.

Utilizzo

Vediamo come funziona:

fetchlog -F prima_colonna:ultima_colonna:lunghezza:conv logfile bookmarkfile [pattern ...]

fetchlog -f prima_colonna:ultima_colonna:lunghezza:conv logfile bookmarkfile [pattern ...]

Il programma una volta lanciato scorre il logfile indicato ed estrapola le righe che contengono la stringa di testo definita con pattern solo se compresa tra prima_colonna e ultima_colonna; in output avremo una righa di tanti caratteri quanto indicati dalla condizione lunghezza.

il parametro -f indica che fetchlog utilizzarà un file bookmark che avrà nome e path indicato. Questo file serve come segnalibro: indica da quale punto ripartire alla prossima iterazione dell’ utility.

il parametro -F indica di non usare il bookmark file

il parametro conv indica che tipo di convenzone usare per il pattern-matching di solito si utilizza s di shell, per ulteriori approfondimenti rimando alla pagina del man.

un interessante utilizzo e’ quello creare uno script schedulato a intervalli regolari nel cron che permette di ricercare particolari stringhe nel file messages (errori di applicazioni,problemi kernel etc) e se ne trova mandare una mail all’amministratore.

Il vantaggio di questa utility e’ la possibilita’ di usare piu’ segnalibri per il medesimo file in modo da differenziare la stringa di ricerca.

Esempi

Piccola script che ho schedulato nel crontab di un sistema per controllare se vengono rivelati eventuali errori del raid o dei dischi scsi. Se la condizione e’ verificata vengono inviate due mail per segnalare l’errore con lo stralcio del /var/log/messages relativo

#!/bin/sh

    HOST=`/bin/cat /etc/hosts| /bin/grep \`echo $HOSTNAME\“

    DATA=`/bin/date`  

    SPAZI=”########################################################”

    FETCHLOG=”/usr/local/bin/fetchlog -F 1:100:200:s”

    TO=”tuo.indirizzo@dominio.it”

    CC=”cc.indirizzo@dominio.it”

    MSGINT=”\n$SPAZI\n           $DATA \n$SPAZI\n”

   #controllo errori megaraid

    MSG=`$FETCHLOG /var/log/messages /var/megaraid.sgn ‘kernel: megaraid: abort’`

    if [ $? -gt 0 ]; then

        echo -e “$SPAZI \nErrore Megaraid  \n$SPAZI\n $MSGINT \n $MSG \n$SPAZI \n \n\n Nodo: $HOST  “|/bin/mail -i -s “MEGARAID ERROR : $HOSTNAME” -c $CC $TO

    fi

   # controllo errori scsi
   
MSG=`$FETCHLOG /var/log/messages /var/scsioff.sgn ‘kernel: scsi: Device offlined’`

    if [ $? -gt 0 ]; then

        echo -e “$SPAZI \n ERRORE SCSI DEVICE MESSO IN OFFLINE\n$SPAZI\nNodo: $HOST \n$MSGINT \n $MSG \n$SPAZI “|/bin/mail -i -s “SCSI ERROR : $HOSTNAME” -c $CC $TO

    fi

 

 

Conclusioni

Ho trovato questa utility molto utile per risolvere alcuni problemi che avevo nel gestire i log da remoto in maniera semplice pulita e senza dover utilizzare prodotti troppo pesanti

Fatemi sapere la vostra opinioe

Categorie: monitoring

0 responses so far ↓

  • There are no comments yet...Kick things off by filling out the form below.

Lascia un Commento