HTTP-CHECK erstellen / File vorhanden

Hallo liebe Community,

Zu einem bestehden Host möchte ich einen HTTP-CHECK aktivieren, der prüft ob eine bestimmte Datei auf dem Server vorhanden ist oder nicht. Leider schaffe ich es mit der Anleitung nicht dies zu bewerkstelligen.

Wenn die Datei am Server liegt ist der Service Grün, ansonsten eben Rot…Ich denke, dass das einfach Use Cases bei check_mk sind.

Kann mir hier bitte jemand behilflich sein?

Die Datei kann per http-URL vom Monitoring-Server aus aufgerufen werden? Dann einfach einen http-Check dafür bauen. Der http status code sollte dann doch schon im Default passen: “200 OK” → OK - oder eben “404 Not found” -→ CRIT.

Wie sieht denn dein Versuch bisher aus bzw. woran hakt es noch konkret?

Ohne die Umstände genauer zu kennen: Evtl muss es ja auch gar kein (aktiver) http-Check sein, sondern ein einfacher fileinfo-Check, aus dem Agent auf dem überwachten System selbst heraus.

Hallo Martin,

scheint so, dass ich es geschafft habe. Meine Einstellungen sind (Parametes for this service)

Im Browser bekomme ich normal das Bild angezeigt --> Eigenartigweise enien 304-er Reponse, vl. weil es ein Azure-Blob ist und in einem Storage Account Container liegt.

Der Services wird nun auch bei dem Host angezeigt, doch leide als Warning bzw.

HTTP WARNING: HTTP/1.1 400 Bad Request - 295 bytes in 0.130 second response time

Kannst du mir hier helfen?

PS:


LG

Hi, du hast einfach nur vergessen den Haken bei Use SSL/HTTPS for the connection zu setzen? :wink:

Eventuell musst auch noch SNI Support aktivieren, wenn auf der Maschine mehrere VirtualHosts definiert sind.

Wie Simon schon sagt: SSL und ggf SNI aktivieren, dann sollte da auch kein 304 redirect kommen sondern direkt die angeforderte Ressource ausgeliefert werden. Dann kann das “follow redirect” vielleicht auch wieder raus. Außer Azure macht da immer einen redirect auf irgendwas dynamisches, dann würde ich aber wenigstens “Follow but stay on the same ip/port” nehmen.

Ich teste sowas meist gerne mit einem wget-Aufruf mit Option “-S”, um genau zu sehen was da als Server-Antwort und ggf. Redirect-Ziel kommt. Ein redirect auf https umgehst du, indem direkt per SSL/TLS angefragt wird.

Und “virtual host” ist nur der Hostname, keine URL mit protocol/scheme.

Gerne auch noch einen Screenshot deiner Einstellungen (statt nur einen Ausschnitt aus dem daraus folgenden Service), dann brauchen wir nicht raten :wink:

Ok…dann fangen wir an :wink:

Aufruf vom Check_MK Server:

Wie von Martin richtig erkannt, bitte erstmal das Protokoll aus dem VirtualHost Feld entfernen, also nur der FQDN/FQHN kommt da hinein.

Hmmm.habe ich soeben getan, irgendwas geht uns noch ab…
Habe jetzt einiges so probiert, leider keine Änderung…

Vielleicht hat ja noch jemand eine Idee :wink: LG

Den mehrfach erwähnten SNI (Server Name Indication) Support hast du aber immer noch nicht aktiviert. Zumindest nicht auf dem Screenshot den wir hier sehen.

Ansonsten kannst auch mal oben bei IP Address Family auf Enforce v6 stellen, auf dem Screenshot unten sieht man dass er es per v6 versucht. Könnte sein dass standardmäßig v4 benutzt wird bei check_http.
Bitte schicke uns auch mal die Ausgabe von curl -4 und curl -6, wget kann meines Wissens nicht dediziert ansprechen.

PS: Wir wissen auch nicht wie du den Host angelegt hast im WATO, von daher kannst du auch mal probieren noch das hostname feld in der Regel mit deiner expliziten Host-URL zu befüllen.

Zum SNI Thema - ich soll ja AKTIVIEREN, das bedeutet nicht, dass ich es anhaken soll, denn dann würde ich disablen, oder verstehe ich das nicht?

Oh ok, da muss sich was in einer der letzten Versionen geändert haben. Früher musste man das explizit aktivieren.

Ich hole mal aus: Idee von dem ganzen Spass ist es unter dem Kontext einer Ressource Group, die in Azure verwaltet wird und eine VM beinhaltet (die auch gemonitored wird) noch einen Service zu erzeugen, der eine http-check auf ein File, dass aber unter einem anderen Hostnamen erreichbar ist…
dh: Hostname ist hostname1.de (mit fast 30 Services). Es soll jetzt ein wetierer Service Httpcheck dazukommen (nur bei dem einen HOST aber), der einen check auf eine Datei macht --> die liegt aber unter hostname2.de/test.jpg

Versteht ihr was ich meine?

Schon klar.

Aber dann kannst du ja auch einfach die Chose mit VirtualHost weglassen
und hostname2.de in der Regel unter Hostname / IP-address pflegen
und dann aber unten bei Conditions hostname1.de angeben, damit der Service bei diesem Host auftaucht.

PS: Anstatt immer wieder Screenshots zu machen kannst du auch hingehen und auf dem Monitoringhost mal den Check zusammenbauen:

~/lib/nagios/plugins/check_http <deine parameter hier> und dann ganz hinten ein -v damit man mal mehr sieht. Die Parameter stehen unten wenn du auf der Service Detailseite bist.

1 Like

Puuh…ich weiss selber nicht mehr. Leider habe ich aktuell keinen Zugriff auf den check_mk Server, muss Montag abwarten. Aktuell ist es nun so, dass WARN nach wie vor angezeigt wird…

Also unter Host Settings steht der hostname, an dem die Datei liegt (test.jpg) und Explizit Hosts ist der Host-Name unter dem der Service angezeigt werden soll…

Du kannst irgendeine x-beliebige Linuxmaschine nehmen und dir die nagios-plugins über den Paketmanager herunterladen oder aus dem Internet beziehen.

Wieso du keinen Zugriff hast, kommentiere ich jetzt nicht… ich nehme es zur Kenntnis.

Sorry, falls ich dich irgendwie gekränkt habe. Habe das Monitoring Thema vor einiger Zeit umgehängt bekommen. Die erste Schulung fängt erst an, aktuell versuche ich viel selber zu lernen…Aber ich weiss was du meinst…Teste es mal so und melde mich…Danke!

Ich glaub ich habs – :wink:

Ich habe es mit der Kommandozeile getestet direkt vom check_mk Server und hab mir mal die Plugins installiert. Nun bekomme ich mit, enien Code 200, was richtig ist zurück.

Ich muss jetzt halt schauen, dass ich den Call mit den Parameter irgendwie so in check_mk importiere…