Cron Monitoring und Output Analyse

Hallo Leute,

wir nutzen hier CheckMK in der RAW Edit Version 2.2.0p12. Ich habe das Cronmonitoring laut Dokumentation erfolgreich aktiviert:

Nun möchte ich aber zusätzlich zur Information das der Cron gelaufen ist den Output überwachen. Hier z.b. wirft das Script welches Let’s Encryptzertifikate global über zentralen DNS für viele Server erstellt einen Output mit Error oder eben keinen Error. Nun möchte ich diesen Output mit überwachen.

z.B. auf der CMD würde ich das tun:
grep -i error /meineoutput_from_cron

Kann ich so etwas in CheckMK verwirklichen?

Danke
lg

Hi @linux

Spontane Idee: Du koenntest dein Logfile mit mk_logwatch auf Fehler ueberwachen.

Gruesse,
Thomas

1 Like

Das lässt sich über einen kleinen Wrapper leicht realisieren:

#!/bin/bash
/usr/bin/some_job > /meineoutput_from_cron
retcode=$?
echo '<<<local>>>'  > /var/lib/check_mk_agent/spool/spooldummy.txt
if grep -i error /meineoutput_from_cron ; then
echo '2 "Log Dingens" - Ups, karpott' >> /var/lib/check_mk_agent/spool/spooldummy.txt
else
echo '0 "Log Dingens" - Alles gut' >> /var/lib/check_mk_agent/spool/spooldummy.txt
fi
exit $?

Und dann halt den Wrapper vom Cronjob aufrufen lassen.

3 Likes

Der komplexeste Weg:

  1. Der Cronjob erzeugt wie üblich eine Email
  2. Mit Hilfe von “Check Email” wird die Mailbox überwacht, in der diese Email ankommt
  3. “Check Email” schickt den Inhalt der empfangenen Email an die Event Console weiter
  4. In der Event Console matcht eine Regel und macht ein Event auf
  5. Profit! :slight_smile:
2 Likes

Hab das damit gleich mal getestet. Im Endeffekt liest dies die Dinge schon aus. Nur glaub ich hab ich da noch ein kleines Verständnisthema:

nano /etc/check_mk/logwatch.cfg

"/var/log/letsencrypt.log" maxlinesize=1024 encoding=utf-8
 C Error
 C error
 C "+ Challenge validation has failed :("

CheckMK soll ein Critical anzeigen wenn dies oder ein Teil von dem oder auch das Wort “error” im Log steht: “+ Challenge validation has failed :(”

Aber CheckMK zeigt immer noch “alles ok” an. Was mach ich falsch?

Da entlarvt sich ein South Park Fan… :slight_smile:

1 Like

Die Muster sind Regular Expressions. Das Plus an der Stelle ist nicht valide.

Lass + und :frowning: einfach weg, es ist eh ein Infix-Match.

1 Like

Also die config Datei muss /etc/check_mk/logwatch.cfg heissen.
Es koennte sein, dass die Sonderzeichen in der Konfiguration stoeren.

Ich schlage Dir vor, dass Ganze erst mal auf der Kommandozeile zu
testen.

Wenn Du eine logwatch.cfg Datei hast, die Du mit mk_logwatch testen
willst, dann kannst Du die einfach zusammen mit dem plugin in ein Verzeichnis
kopieren, und diese dem plugin mit mk_logwatch -d “verfuettern”, dann solltest
Du sehen was das Problem ist.

Da kommt leider nichts verwertbares raus:

check_mk ./mk_logwatch -d    
<<<logwatch>>>
[[[/var/log/letsencrypt.log]]]
BATCH: 1708696026-175071068103132240089117017161119180006024083036
[[[/var/log/messages]]]
BATCH: 1708696026-175071068103132240089117017161119180006024083036

Hab ich gemacht sieht nun so aus:

"/var/log/letsencrypt.log"
 I Handling authorization
 C error
 C Challenge validation has failed

Ich hab dann auch mal in das Logfile das Wort “error” manuell geschrieben. Ändert auch nichts.

mk_logwatch liest nur neue Meldungen aus der Logdatei und merkt sich dann bis zum nächsten Aufruf, wo es in der Datei war.

Wenn also diese Logdatei immer wieder von vorne beschrieben wird, kann mk_logwatch damit nicht umgehen.

2 Likes

Kannst Du uns mal ein Exzerpt des logs schicken den Du ueberpruefen willst?