Höhere CPU Auslastung durch größeres Check-Interval

Hallo in die Runde,

da ich das Check-Interval von standardmäßig einer Minute sehr niedrig finde, habe ich dieses in zwei Stufen für einen Teil der Server in unserer Umgebung auf 5 Minuten gestellt.

Hierbei fiel mir anschließend auf, das die CPU Auslastung, bei einem Abfrageinterval von 1 Minuten deutlich größer ist, als bei einer Minute.

Das Interval habe ich gestern gegen 16:00 Uhr für ein paar Server umgestellt und heute 08:00 Uhr für weitere Server.

Die Regeln (Normal check interval for service checks) welche ich erstellt habe, besitzen lediglich in der Condition einen angegebenen Ordner in dem sich die Server befinden.


Ist dieses Verhalten so normal? Normalerweise hätte ich gedacht durch diese Einstellung das System zu “entlasten”.

Grüße
Andreas

Hast Du die Einstellungen für die RRDs auch so geändert, dass dort nur noch alle 5 Minuten Messwerte ankommen?

Nein habe ich nicht.
Vermutlich meinst du den Regelsatz “Configuration of RRD databases of services”. Laut Regelbeschreibung hat dies aber nur Auswirkungen auf neue Services. Kann das dann wirklich funktionieren?

Der Checkmk Server selbst, wird weiterhin jedoch mit einem Interval von einer Minute überwacht.

Du kannst mit cmk -v --convert-rrds auch vorhandene RRDs umstellen.

Für den Checkmk-Server musst Du dann halt eine Ausnahmeregel anlegen.

Als Ergänzung zu @r.sander wäre noch folgendes interessant.

Hier würde ich gern mal alle Regeln sehen welche in deinem System existieren.
Da muss mindestens noch eine andere Regel vorhanden sein.

Das widerspricht sich etwas. Beide Graphen sollten den gleichen Zeitbereich abdecken um vergleichbar zu sein. Hier sind ja einmal nur 3 Stunden zu sehen im Vergleich mit knapp 24 Stunden das geht nicht bei RRD Daten, diese gescheit zu vergleichen.

Am Ende meine kühne aber höchstwahrscheinliche Vermutung. Deine Interval Regel von 5 Minuten führt zu einer Ausführung auch vom Discovery Check und/oder HW/SW Inventory Check alle 5 Minuten. Das bringt richtig Last auf das System.

Meine Meinung aus über 10 Jahren Monitoring - das ist genau richtig. 5 Minuten taugen für fast nix und machen einen Großteil der Daten unbrauchbar.

4 Likes

Stimmt, das ist ein gern gemachter Fehler. Ich habe auch schon Monitoring-Server gesehen, die nichts anderes mehr gemacht haben als HW/SW-Inventory, weil das pro Host einmal pro Minute laufen sollte.

Um das auszuschließen müsste man in der selben Regeln HW/SW explizit ausschließen. Das sollte reichen, oder?

tatsächlich will man ja meist nur den Check_MK Agent, anstatt also “Check_MK Discovery” und “Check_MK HW/SW Inventory” auszuschließen, würde ich empfehlen das Interval gezielt für “Check_MK$” ($ beendet in Regex die Zeichenkette) zu nehmen. Andere aktive Checks (http, tcp checks etc…), kann man ja dann auch eher gezielt mit einzelnen Regeln steuern.

2 Likes

Entweder so wie @gstolz oder ich setz halt für Checks mit langen Checkintervallen vor meine allgemeine (x Minuten) Regel dann die speziellen Regeln für diese Checks.

2 Likes

Genau das! Agentenausgabe einzusammeln und zu parsen ist meist weder für die Checkmk-Instanz noch den Host im Monitoring der Flaschenhals. Viel sinnvoller ist es, auf Serverseite einzelne aktive Checks zu finden, bei denen größere Abstände signifikante Last verursachen und auf Hostseite Check-Plugins, für die dasselbe gilt. Die stellt man dann auf asynchrone Ausführung in größeren Intervallen um.

Das war genau mein Fehler. Durch meine Regel, welche über der schon bestandenen HW/SW Inventory Regel stand, wurde diese überschrieben und das Inventory wurde alle 5 Minuten durchgeführt. Nach entsprechender Ausnahme beruhigte sich die Last :yawning_face:

Danke für all die Hinweise - Nächstes mal Augen auf beim Regel bauen :eyes:

1 Like