dobebo Geschrieben 1. August 2006 Geschrieben 1. August 2006 Hallo, Ich baue hier gerade ein Syslog-Server der seine gesammelten Daten in eine MySQL Datenbank speichert. Das ganze ist auch ganz toll über ein Webinterface einsehbar, bisher kein Problem. Da sich aber kein Admin dazu bereit erklären will, den ganzen Tag vor dem Interface zu verbringen und aufzupassen ob irgendwo ein Fehler auftaucht, möchte ich ein Script schreiben das über einen Cronjob gestartet in bestimmten Abständen die Datenbank untersucht ob bei den Hosts irgendwelche Fehler auftauchen und auch erst dann eine Mail verschickt, wenn der Fehler mehr als n-mal auftaucht. Den ersten Teil habe ich bereits fertig mir fehlt jetzt nur die Möglichkeit nach Wiederholungen der Fehlermeldungen zu suchen. Gibt es dafür irgendwo ein Howto oder (was vielleicht noch besser wäre) ein fertiges Paket um bei kritischen Vorgängen die im Log auftauchen, eine Mail zu versenden ? Hier nochmal meine Idee vereinfacht ausgedrückt: WENN 'Fehler im Log für Host x mehr als n-mal" DANN 'Fehlermeldung in Mail schreiben und an die Administratoren verschicken' Das es eine If-Anweisung geben muß ist mir auch schon klar, aber wie ich nach Wiederholungen in Dateien bzw. im Log suche weiß ich (noch) nicht. Rat- und Vorschläge gerne gesehen. :-) Gruß dobebo Zitieren
moo_kuh Geschrieben 1. August 2006 Geschrieben 1. August 2006 Hallo, Ich baue hier gerade ein Syslog-Server der seine gesammelten Daten in eine MySQL Datenbank speichert. WENN 'Fehler im Log für Host x mehr als n-mal" DANN 'Fehlermeldung in Mail schreiben und an die Administratoren verschicken' Das es eine If-Anweisung geben muß ist mir auch schon klar, aber wie ich nach Wiederholungen in Dateien bzw. im Log suche weiß ich (noch) nicht. hmm na das ist doch eigentlich ganz simpel, wenn alles in einer DB liegt. 1. Du ermittelst die aktuelle Zeit 2. Definierst du einen Zeitraum indem die Events mehrfach auftreten sollen (wenn du das willst) 3. Setzt du ein SQL Statement auf die MySQL DB ab, z.b. sowas select count(*) from TABELLE where DATE > '$anfangszeitraum' and DATA < '$aktuellezeit' and HOST LIKE '$hostname'; Ergebniss wird eine Zahl ist die größer als die Anzahl der erlaubten Events wird eine Mail geschickt Auf Filesystemebene wird es etwas schwierger da du hier die Zeit auseinanderfrickeln musst... Also ich würde die DB Lösung nehmen Zitieren
dobebo Geschrieben 2. August 2006 Autor Geschrieben 2. August 2006 Danke, Das hat mich schon wesentlich weiter gebracht Gruß dobebo Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.