Zum Inhalt springen

Mit bash nach wiederholungen suchen


dobebo

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...