Direktlink zu den neuen 2.0 Graphen?

Guten Abend,

bis zur 1.6er Version konnte ich via https://mydomain/mysite/pnp4nagios/index.php/image?host=foo&srv=bar&view=1&source=1&start=$start&end=$now einen downloadbaren Link generieren, wenn ich mir zuvor ein Logincookie erstellt hatte.

Wie funktioniert das in 2.0? Konnte leider auf die Schnelle nichts finden, bis auf ajax_graph_images.py aber da bekomme ich (mit Cookie) ein

You are not allowed to access this page

Habe mir einen Discordbot gebaut, der mir auf Befehl ein Bild mit den Spielerzahlen der letzten X Zeiteinheiten in den Chat packt. Der funktioniert jetzt leider nicht mehr:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>

Hi @simon-mueller

Mein Vorschlag wäre folgendes:

Öffne eine Metrik, wie z.B. CPU load und benutze das “Burger Menü” unten links:

Gehe innerhalb des Menüs zur Export Sektion und klick auf “Export as PNG”
image

Danach wird die Metrik als PNG angezeigt. Mithilfe dieser URL lässt sich die gewünschte Funktion (Discordbot) erneut bauen.

In meinem Beispiel sieht die URL so aus:

https://MONITORINGSERVER/SITE/check_mk/graph_image.py?request={"specification"%3A["template"%2C{"site"%3A"SITE"%2C"host_name"%3A"HOSTNAME"%2C"service_description"%3A"CPU%20load"%2C"graph_index"%3A0%2C"graph_id"%3A"cpu_load"}]%2C"data_range"%3A{"time_range"%3A[1637765635.7083855%2C1637780035.7083855]%2C"step"%3A8}}

Ich denke mal das sollte das Problem lösen. :slightly_smiling_face:

Freundliche Grüße
Norm

In der Raw Edition ist das Menü leider nicht mit Exportknöpfen versehen. Aber ich probiere es trotzdem mal mit deinem Beispiel.

Das scheint nicht zu klappen.

Habe SITE (hetzner) und HOSTNAME (hv.local.simon-mueller.de) ersetzt und den Rest so belassen,da ich auch einen CPU Load Check habe. Ergebnis:

...request={%22specification%22%3A[%22template%22%2C{%22site%22%3A%22hetzner%22%2C%22host_name%22%3A%22hv.local.simon-mueller.de%22%2C%22service_description%22%3A%22CPU%20load%22%2C%22graph_index%22%3A0%2C%22graph_id%22%3A%22cpu_load%22}]%2C%22data_range%22%3A{%22time_range%22%3A[1637765635.7083855%2C1637780035.7083855]%2C%22step%22%3A8}}

image

Version ist cre 2.0.0.p15

Scheint wohl ein Enterprise only Feature zu sein. :upside_down_face:

ajax_graph_images.py funktioniert nur wenn es von localhost aus aufgerufen wird.
Die Funktion wird benötigt um Graphen für die Mails zu erzeugen.
Die Ausgabe der Funktion ist auch ein JSON Element in welchem die Graphen base64 codiert sind.
Wenn man also in deiner gewünschten Art Graphen braucht dann kommt man um etwas coding nicht drum rum. Geht aber.

Das wäre extrem schade. Denn pnp4nagios scheint es in der Form auch nicht mehr zu geben.

Kann ich die Metriken denn zu Graphite/Grafana/InfluxDB schicken? Oder geht das auch nur mit der Enterprise Edition?

Grafana an RAW Edition anbinden geht.

Ok, also wenn ich auf dem Master curl http://localhost/hetzner/check_mk/ajax_graph_images.py?host=$HOST&service=$SRV aufrufe, bekomme ich ein Tupel mit dem Bild im Base64 Format zurück. Damit komm ich irgendwie weiter, wenn auch umständlich.

Da der Discordbot auf einem anderen Host läuft, habe ich nach einer Möglichkeit gesucht, wie ich die URL auch von einer anderen IP aus aufrufen kann.

Diese dachte ich auch gefunden zu haben, jedoch zieht die Konfiguration nicht. Weiss jemand vielleicht wieso?

/omd/sites/SITE/etc/apache/conf.d/check_mk.conf

#  Webservice for graph images used by notifications
<Location "/hetzner/check_mk/ajax_graph_images.py">
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from my.ip.add.ress
    Satisfy any
</Location>

Danach habe ich omd restart apache ausgeführt. Das hilft allerdings nicht.

Hallo @simon-mueller,

gegebenenfalls müsstest du den Betriebssystem-Apache einmal durchstarten.

Das hat leider nicht geholfen. Nur wenn ich in der ~/etc/apache/conf.d/site.conf mit dem Inhalt

# General configuration for this site
#
<Location "/hetzner">
  # put your extra site configs here

</Location>

etwas eintrage, dann verhält sich das System anders (a.k.a. ich bekomme ein Basic Auth Popup für alle Sites/User, selbst mit Cookie, wenn ich Allow from x.x.x.x einfüge). Das ist also nicht des Rätsels Lösung.

Ich habe jetzt Grafana mit Image Renderer aufgesetzt. Muss aber feststellen, dass vermutlich in der Raw Edition das Feature “combined graphs” nicht funktioniert. Dieses Feature ist auch nativ im Webinterface der Raw Edition nicht verfügbar.
Bei meinem Anwendungsfall habe ich glücklicherweise nur 4 Graphen, die ich stacken möchte. Jetzt stelle man sich aber mal vor man möchte die CPU Load von allem Systemen übereinander legen…

Hier mal ein Screenshot:

Ich habe einen Service namens “Check_All”, der mir für jeden Server (Mto,Sko,Ak,Ck) die Spielerzahlen liefert. Möchte ich jetzt alle 4 Werte in einem kombinierten Graphen darstellen, dann muss ich dafür 4 einzelne Queries basteln. Das geht bei höherer Anzahl natürlich auf die Performance.

Beim combined graph bleibt das Feld für “Graph Settings” einfach leer, da kann ich eingeben was ich will. Es erscheint auch kein Dropdownmenü wie bei “Host”.

Ich könnte jetzt natürlich hingehen und mir extra eine Site mit der Free Edition hochziehen, nur für den Zweck, aber muss das denn wirklich sein? Gibt es keinen besseren Weg? :sleepy:

Bin jetzt den Weg des geringsten Widerstandes gegangen und habe mir eine zweite Site auf meinem Master mit der Free Edition errichtet und diesen einen Host separat angelegt.
Die RRDs habe ich von der Site mit der Raw Edition rüberkopiert, die Site gestartet, gestoppt, cmk -v --convert-rrds und dann wieder gestartet. Dann hatte ich auch die historischen Daten zu meinen Services.

Ich bin dennoch enttäuscht. PNP4nagios abzuschaffen war ja schön und gut, aber dann bitte auch die neuen Graphen mit dem gleichen Funktionsumfang ausliefern! Das ist an der Stelle ein echtes Downgrade…