Apache Logfiles nach Error 404 und 403 durchsuchen und Mailen

Aufgabe: Logfiles nach Response-Codes 404 (not found) und 403 (forbidden) durchsuchen und eine Aufstellung mit Anzahl der Fundstellen per Mail versenden. Die awk-Datei muss mit chmod +x /home/user/404.awk Ausführungsrechte bekommen.

awk-Skript (ausführbar) in /home/user/404.awk (durch eigenen Pfad ersetzen):

 

#!/usr/bin/awk -f
# read access.log and retrieve all 404 and 403 pages

BEGIN {

}

{
    if ( $9 == 404 ) {
        a404[$7] += 1;
    }
    if ( $9 == 403 ) {
        a403[$7] +=1;
    }

}

END {

    for (i in a404) {
        print "404",i,a404[i];
    }

    for (i in a403) {
        print "403",i,a403[i];
    }
}

Logfile liegt in /var/log/apache2/access.log und die Mailadresse name@email.com muss mit eigener Adresse ersetzt werden.

Aufruf:

/home/user/404.awk /var/log/apache2/access.log | sort | mail -s `uname -n` name@email.com

Damit wird dann die sortierte Ausgabe (erst 403er, danach 404er Errors) per Mail versandt.

Schreibe einen Kommentar