Zum Inhalt springen

Mit bash nach wiederholungen suchen


Empfohlene Beiträge

Geschrieben

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

Geschrieben
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 ;)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...