Absturz des Apache2 (Segmentation Fault) und Logfile-Überwachung

In meinem Webserver-Log hatte ich bis vor Kurzem ständig die folgende Fehlermeldung und diese Seite blieb beim Aufruf einfach weiß:

[Fri Aug 17 05:05:21 2007] [notice] child pid 22026 exit signal Segmentation fault (11)
[Fri Aug 17 05:05:21 2007] [notice] child pid 30189 exit signal Segmentation fault (11)
[Fri Aug 17 05:05:21 2007] [notice] child pid 13961 exit signal Segmentation fault (11)

Das lag wohl an irgendeinem fehlerhaften Modul (PHP5?) und ließ sich (jedenfalls bis jetzt) durch ein
apt-get update apt-get upgrade
beheben. Leider weiß ich nicht, an welchem Modul es konkret lag. Ich hoffe einfach mal, dass die Fehlermeldung nicht wieder auftaucht.

Um dies zu überprüfen habe ich mir ein kleines Shell-Script geschrieben, das mein Apache2-Log regelmäßig (per Cronjob) auf die obige Meldung überprüft (ich weiß, es gibt für sowas auch Logwatch, aber das Einarbeiten in die Perl-Scripts etc. hat mir jetzt einfach zu lange gedauert). Das Script schreibt bei seinem Aufruf die aktuelle Zeit in /tmp/seglog.txt (um prüfen zu können, ob es wirklich ausgeführt wurde) und schickt, wenn es den Segmentation Fault erkennt, eine Mail an den Admin (also mich) und startet den Apache2 neu:

#!/bin/bash SEG=`tail -n 20 /var/log/apache2/error.log|grep Segmentation`; TIME=`date`; echo $TIME >> /tmp/seglog.txt if [ "$SEG" != "" ]; then echo "To: MeineMailAdresse@DieseDomain.de" > /tmp/segmail.txt echo "From: AbsenderAdresse@DieseDomain.de" >> /tmp/segmail.txt echo "Subject: Apache2: Segmentation fault" >> /tmp/segmail.txt echo $TIME >> /tmp/segmail.txt /etc/init.d/apache2 restart >> /tmp/segmail.txt echo `pidof apache2` >> /tmp/segmail.txt echo "." >> /tmp/segmail.txt sendmail MeineMailAdresse@DieseDomain.de < /tmp/segmail.txt rm /tmp/segmail.txt fi

Über Stefan

Polyglot Clean Code Developer

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax