WebAPI auf REST API umstellen > Inventory

Hallo Leute,

wir nutzen aktuell noch CheckMK 2.0.0p27 und inventarisieren darüber unsere Server in i-doit. Dazu habe ich per WebAPI die entsprechenden Systeme bisher geladen, was auch super funktioniert. Dazu habe ich per PHP einfach die URL mit entsprechenden Paramter geladen und verarbeitet. Der Link dazu sieht wie folgt aus:

https://monitoring.khpb.local/kkh/check_mk/host_inv_api.py?request={"hosts":["Server01","Server02"]}

Die API wird ja in kommenden Versionen abgeschaltet. Daher möchte ich vorbeugend das Script anpassen und auf die REST API umbauen. Dazu habe ich als erstes das folgende HTTPIE Script zum Laden der Systemnamen aus einem bestimmten Verzeichnis erstellt. Das klappt prima, mir werden genau die Daten präsentiert die ich brauche:

HOST_NAME="monitoring.khpb.local"
SITE_NAME="kkh"
API_URL="https://$HOST_NAME/$SITE_NAME/check_mk/api/1.0"
BASEDIR=$(dirname "$0")

USERNAME="automation"
PASSWORD="geheim"

http --verify=no --json GET "$API_URL/objects/folder_config/~server/collections/hosts" \
"Authorization: Bearer $USERNAME $PASSWORD" \
"Accept: application/json" > $BASEDIR/test.txt

Nun würde ich gerne zu den Daten die Inventardaten holen aber da weiß ich nicht genau, wie das nun klappt. Ich nutze dazu die REST-API Doku über den Link /check_mk/openapi/ und finde dort keine Infos zu den Inventardaten.
Kann mir jemand vielleicht ein Beispiel geben, wie ich da dran komme?

Über einen kleinen Tipp freue ich mich und danke im Voraus! :slight_smile:

Hi.
Soweit ich weiß, ist es derzeit nicht geplant die Inventory API in die Rest zu wandeln.

VG, Christian

Hallo,

danke für die Rückmeldung!

Habe im Verzeichnis /opt/omd/sites/khpb/var/check_mk/inventory die nötigen Daten gefunden und arbeite dann damit. Da ich Zugriff auf alle Systeme habe, geht der Weg so auch für mich klar :slight_smile:

Dankeschön!

Hi Dennis,

unter 6.2 Die HW/SW-Inventur
Findest du den Pfad. Du kannst ja auch die Datei parsen.

Da wir die Web API mit der 2.2 vollständig durch die Rest API ersetzen, wird der Inventory auf jeden Fall migriert. Wann kann ich dir nicht genau sagen, jedoch spätestens zur 2.2

Gruß
Anastasios

1 Like

Hey,

habe es gerade auch gefunden!

Vielen Dank allen! :slight_smile:

Eine kleine Frage noch, bevor ich das Rad neu erfinde:
Die Dateien sind ja im Python-Format? Also als Dictionary nehme ich an oder?
Kriege ich die auch als JSON-File auf dem Server oder muss ich mir da selbst etwas bauen, damit ich json erhalte?
Über die Weboberfläche kann ich nämlich das Format noch mit geben. Hier habe ich leider keine Auswahl :smiley:
Alternativ geht auch XML.

Danke!

Da musst du dir selber was bauen. Die GUI greift auch auf dieses Python File zu und konvertiert das dann zu XML oder json. Je nachdem was du auswählst.

Du kannst dir natürlich auch die Codestelle anschauen und copy pasta machen :grin:

Hier checkmk/inventory.py at 2.1.0 · tribe29/checkmk · GitHub müsste der json output auch beschrieben sein.

Gruß
Anastasios