Den neuen Check “Prüfe HTTP Webdienst” (check_httpv2) finde ich gut gelungen. Endlich kann ich durch unseren Proxy hindurch Webseiten richtig testen.
Allerdings habe ich inzwischen ein Problem gefunden. Dabei geht es um die “Suche nach Zeichenketten”. Das ist ein ganz wichtiger Bestandteil für den Test der Ausgabeseiten von unseren Diensten. Die Regel sucht im body nach der festen Zeichenkette “GetCapabilities”. Wird die nicht gefunden geht der Service nur auf WARN. In der ersten Logik ist das vielleicht in Ordnung, weil der Statuscode des Seite 200 ist. Stimmt der Webserver liefert erfolgreich eine Seite aus, daher stimmt der Statuscode 200. Die Seite enthält aber statt der korrekten Ausgabe nur eine Fehlermeldung und deshalb konnte die Zeichenkette nicht gefunden werden. Ich würde mir nun wünschen, dass der Service in diesem Fall auf CRIT geht. Immerhin antwortet unserer Dienst ja nicht korrekt.
In der Regel ist das nicht vorgesehen. Bei der Antwortzeit kann ich zwei Schwellwerte für WARN und CRIT definieren. So etwas fehlt mir bei dem Punkt “Suche nach Zeichenketten”.
Hat jemand eine Idee wie ich den Service auf CRIT bekomme, wenn die gesuchte Zeichenkette nicht gefunden wird, oder eine andere Zeichenkette, wie z.B. “Error” gefunden wird?
Das gilt dann natürlich für jeglichen “WARN”-Zustand, also auch aus anderen Gründen. Daher sollte man vermutlich alle anderen Parameter so tunen, dass sie den Check nicht in den WARN Status bringen.
Und dann bräuchte man vermutlich noch einen zweiten Service, der für alles andere checkt, und der sich dann “normal” verhält.
Ich habe deinen Vorschlag mal verfolgt. Leider ist es mir nicht gelungen damit ans Ziel zu kommen. Durch Aufteilung der Regeln, eine für z.B. Antwortzeit und Zertifikatsgültigkeit und eine zweite nur für die “Suche nach Zeichenketten” hat mir im Ergebnis zwei Services gebracht. Aber leider habe ich es nicht geschafft die Service State Translation (Übersetzen von Service-Zuständen) nur gezielt auf einen von den beiden Services anzuwenden. Es waren immer beide Services betroffen und somit sind dann auch immer Werte umgeschrieben worden wo es nicht erwünscht war.
Wenn ich zwei Regeln für active_checks:httpv2 erstelle, werden dann auch zwei Anfragen gestellt oder bleibt es bei einer Anfrage und das Ergenis wird von zwei Regeln verarbeitet? Bei mehrerern hundert http-Anfragen wäre eine Verdoppelung vermutlich auch nicht so sinnvoll.
Durch Aufteilung der Regeln, eine für z.B. Antwortzeit und Zertifikatsgültigkeit und eine zweite nur für die “Suche nach Zeichenketten” hat mir im Ergebnis zwei Services gebracht.
Genau so habe ich mir das vorgestellt, ja.
Aber leider habe ich es nicht geschafft die Service State Translation (Übersetzen von Service-Zuständen) nur gezielt auf einen von den beiden Services anzuwenden. Es waren immer beide Services betroffen und somit sind dann auch immer Werte umgeschrieben worden wo es nicht erwünscht war.
wenn die zwei Services ausreichend unterschiedlich benannt sind, dann sollte es doch eigentlich funktionieren…
Also z. B.
HTTPS Zeichensuche Checkmk Website
und
HTTPS Checkmk Website
Und wenn Du dann die Zustandsübersetzung auf den Service anwendest, der mit HTTPS Zeichensuche beginnt (Checkmk matched hier auf den Anfang des Servicenamens), dann denke ich, dass dann auch nur dieser Service umgebogen werden sollte. Wenn die Regel natürlich nur nach HTTPS sucht, dann werden beide Services umgebogen.
Wenn ich zwei Regeln für active_checks:httpv2 erstelle, werden dann auch zwei Anfragen gestellt oder bleibt es bei einer Anfrage und das Ergenis wird von zwei Regeln verarbeitet?
Ich glaube, dass das dann auch zu zwei Request führt, bin mir da aber nicht zu 100% sicher.
Ach ja, in den log-Dateien sieht es jetzt so aus das tatsächlich zwei Anfragen ausgeführt werden. Ob das gut oder schlecht ist, darüber kann man sich streiten. Schädlich dürfte es in den meisten Fällen nicht sein.
ich habe jetzt etwas probiert aber bekomme es nicht hin, wie ist der Proxy einzutragen?
Also DNS/IP und Benutzername und Passwort… finde im Handbuch keine Beschreibung dazu?
hier mal screenshot wie es bei mir eingetragen ist:
Man soll ja eigentlich keine Adressen usw. im Internet veröffentlichen. Aber damit kann ja kein Außenstehender etwas anfangen. Unser Proxy verlangt nicht nach einem Passwort.
Die alternativen Einträge könnten auch funktionieren, wenn die Einstellunge im Betriebssystem korrekt eingestellt sind.
Eigentlich sollte beides, DNS oder IP, funktionieren.