Webserver soll Fehlermails an Admin schicken

Hi,

ich habe folgendes Problem:

Wenn auf meinem Webserver ein Fehler auftritt (z.B.: Seite nicht gefunden) wird eine Seite mit der entsprechenden Meldung angezeigt. Nun möche ich gerne bei Fehlern automatisch eine Mail an den Admin (also an mich) schicken, damit ich z.B. falsche Links schneller beheben kann. Kann mir jemand sagen, wie ich die Idee umsetzen könnte?

Webserver: Apache
OS: SuSe Linux 10.0

Für Vorschläge schon mal im Vorraus herzichen Dank.

Hallo!

Wenn auf meinem Webserver ein Fehler auftritt (z.B.: Seite
nicht gefunden) wird eine Seite mit der entsprechenden Meldung
angezeigt. Nun möche ich gerne bei Fehlern automatisch eine
Mail an den Admin (also an mich) schicken, damit ich z.B.
falsche Links schneller beheben kann. Kann mir jemand sagen,
wie ich die Idee umsetzen könnte?

Du kannst ja auch die Logfiles vom Apache auswerten. Genügt das nicht?

mfg
chris

Wenn auf meinem Webserver ein Fehler auftritt (z.B.: Seite
nicht gefunden) wird eine Seite mit der entsprechenden Meldung
angezeigt. Nun möche ich gerne bei Fehlern automatisch eine
Mail an den Admin (also an mich) schicken, damit ich z.B.
falsche Links schneller beheben kann. Kann mir jemand sagen,
wie ich die Idee umsetzen könnte?

Es gibt diverse Überwachungsprogramme, du kannst es aber auch selbst scripten. In Perl sähe das z. B. so aus:

#!/usr/bin/perl -w

open (DUMP, "tail -f /var/log/apache2/error.log|");
while () {
 if ( $\_ =~ /File\sdoes\snot\sexist:/i ) {
 @args = ("/usr/bin/mutt", "-s", $\_, "deine\@mail.adresse");
 system( @args );
 }
}

Das Script kannst du per Crontab starten, am besten ein paar Minuten nach dem täglichen Logrotate, da tail beim Logrotate den Fokus auf die Logdatei verliert. Willst du mehr Fehler als nur ‚File does not exist:‘ abfangen, musst du entspr. weitere Vergleiche einfügen.

HTH
Schorsch

Du kannst ja auch die Logfiles vom Apache auswerten. Genügt
das nicht?

mfg
chris

Naja, ich würde halt gerne gleich informiert werden, das was war. Ich guck ja schließlich höchstens 2 Mal pro Woche ins Log. Außerdem ist es sehr umständlich mit vi ans Ende einer so langen Logdatei zu gelangen (GUI gibts auf meinem Server nicht). Mal ganz davon abgesehen das das Laden der Datei Ewigkeiten dauert.

Trotzdem Danke.

Es gibt diverse Überwachungsprogramme, du kannst es aber auch
selbst scripten. In Perl sähe das z. B. so aus:

#!/usr/bin/perl -w

open (DUMP, „tail -f /var/log/apache2/error.log|“);
while () {
if ( $_ =~ /File\sdoes\snot\sexist:/i ) {
@args = ("/usr/bin/mutt", „-s“, $_,
[email protected]“);
system( @args );
}
}

Das Script kannst du per Crontab starten, am besten ein paar
Minuten nach dem täglichen Logrotate, da tail beim Logrotate
den Fokus auf die Logdatei verliert. Willst du mehr Fehler als
nur ‚File does not exist:‘ abfangen, musst du entspr. weitere
Vergleiche einfügen.

HTH
Schorsch

Wenn ich dich richtig verstehe schickt mir das Script jedesmal wenn eine Seite nicht gefunden wurde die komplette Logdatei. Als Anfang ist das bestimmt nicht schlecht. Ich weiß, dass es ein komplettes Script dafür gibt (Hab ich vor einem Jahr mal zufällig gefunden). Leider kann ich mich nicht mehr an die Sprache und die URL erinnern.

Auf alle Fälle probiere ich dein Script mal aus, Danke dafür.

Wenn ich dich richtig verstehe schickt mir das Script jedesmal
wenn eine Seite nicht gefunden wurde die komplette Logdatei.

Nein, es schickt ausschliesslich die Fehlermeldung an sich, und die auch nur als Betreff, der Mailtext bleibt leer. Die Variable $_ in
@args = ("/usr/bin/mutt", „-s“, $_, „[email protected]“);
enthält den letzten in
while () {
gelesenen Satz.

Gruss
Schorsch

Hallo,

Wenn auf meinem Webserver ein Fehler auftritt (z.B.: Seite
nicht gefunden) wird eine Seite mit der entsprechenden Meldung
angezeigt. Nun möche ich gerne bei Fehlern automatisch eine
Mail an den Admin (also an mich) schicken

logcheck, log2mail

HTH,

Sebastian