Bladecenter Abfrage über Rest-API via https funktioniert nicht mehr

Guten Morgen Community,

ich habe hier ein kleines Problem mit unseren IBM-Blades, bei dem ich ohne Unterstützung leider nicht weiterkomme.
Bisher haben wir die Blades über den special Client via rest-API abgefragt.
Das schlägt seit einiger Zeit, wie man unten sehen kann. Eine direkt Anfrage per Browser bringt dasselbe Ergebnis (die URL scheint nicht mehr zu passen) Error 400 und einen Hinweis auf die Standard-Webseite des BLC.
Hat jemand von Euch dieses Verhalten auch schon gehabt? Hat sich da am Aufruf der rest-API was geändert? Wie muß der Aufruf aktuell aussehen? Ich habe zwar auch schon bei IBM nachgelesen, aber keine Hinweise zu diesem Verhalten gefunden. Kann mir da eventull jemand weiterhelfen.
Ach ja, ein “cmk -Ivvvv”-Aufruf bringt keine weiteren zusätzlichen Erkenntnisse.
Wir setzen Check-MK in Version 1.6.0p25 ein.

~$ cmk -Iv prd-blc-de-muc-els03.hosting.matrix.ag
Discovering services on: prd-blc-de-muc-els03.hosting.matrix.ag
prd-blc-de-muc-els03.hosting.matrix.ag:
+ FETCHING DATA

  • [special_oneview] Execute data source*
  • [special_oneview] ERROR: Agent exited with code 1: Traceback (most recent call last):*
  • File “/omd/sites/infra/local/share/check_mk/agents/special/agent_oneview”, line 260, in *
  • main()*
  • File “/omd/sites/infra/local/share/check_mk/agents/special/agent_oneview”, line 250, in main*
  • oneview_client.login()*
  • File “/omd/sites/infra/local/share/check_mk/agents/special/agent_oneview”, line 58, in login*
  • login_response = self.post(‘login-sessions’, data=data)*
  • File “/omd/sites/infra/local/share/check_mk/agents/special/agent_oneview”, line 68, in post*
  • return self.request(endpoint, method=‘POST’, data=data)*
  • File “/omd/sites/infra/local/share/check_mk/agents/special/agent_oneview”, line 75, in request*
  • response = self._request(endpoint, method, data)*
  • File “/omd/sites/infra/local/share/check_mk/agents/special/agent_oneview”, line 94, in _request*
  • response.raise_for_status()*
  • File “/omd/sites/infra/lib/python/requests/models.py”, line 940, in raise_for_status*
  • raise HTTPError(http_error_msg, response=self)*
    requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://prd-blc-de-muc-els03.hosting.matrix.ag:443/rest/login-sessions

Vielen Dank schon mal für mögliche Hinweise.

Uwe

Um was für ein Bladecenter handelt es sich hier? Der verwendete Special Agent ist jedenfalls im Netz nicht zu finden :slight_smile:
Die Lenovo Systeme verwenden die Standard Redfish API.

Servus Andreas,

sorry für die verzögerte Antwort, ich mußte das Thema zeitlich liegenlassen, zuviel andere Arbeit.

Es handelt sich um ein HP Synergy Composer2. Wir verwenden dafür einen special-agent, wobei ich tatsächlich nicht sagen kann, woher der kommt bzw. wer den geschrieben hat, aus dem Code selber kann man es auch nicht entnehmen.
Aus unserer Sicht ist die Abfrage korrekt, und die URL wird auch so zusammengebaut, wie es sein soll, inkl. der Portangabe.
Ich habe mal zwecks Test den Client so abgeändert, daß er die URL ohne die “:443” m String erzeugt, aber es bleibt derselbe Fehler, die URL ist angeblich falsch.
Wie schon geschrieben, es hat bis vor ein paar Wochen funktioniert, die API ist lt. den Kollegen auch installiert. Das habe ich mit “…/rest/version” im Browser getestet - Ergebnis

{“minimumVersion”:120,“currentVersion”:2600}
Es kommt also was zurück, andere Abfragen scheitern natürlich an der fehlenden Authentifizierung, weil eben dieser login-sessions Fehler besteht.

Vielleicht hat jemand eine Idee, wo man noch hingreifen sollt?

Wird verarbeitet: agent_oneview …
agent_oneview.txt (9,0 KB)

Grüße
Uwe

Habe heute hier sogar Zugriff auf ein OneView System und konnte den Agent mal ausprobieren.
Musst 1-2 Kleinigkeiten anpassen. Diesen können aber dazu führen, dass der Agent gar nicht mehr läuft.

Hier mal meine Anpassung.
agent_oneview.txt (9.0 KB)

Musst nur die Ports Ausgabe anpassen da diese bei mir immer abgebrochen hat. Grund war ein Modul welches keine Ports scheinbar hat aber halt gesteckt ist.

Firmware von dem Testgerät ist 2021.05.03 - HPE Synergy single Enclosure.

Da bei mir alle Requests ordentlich durchlaufen kann es ja nur daran liegen, dass bei der Firmware sich was geändert hat. Wäre aber seltsam. Kannst ja den Agent mal manuell auf der CLI probieren mit den Optionen “-v -d” für Verbose und Debug Output.

Servus Andreas,

ist ja der Hammer, das läuft wieder. Ich springe vor lauter Freude gleich im Dreieck.

die Änderung war also “lediglich” …

> OMD[infra]:/tmp$ diff agent_oneview agent_oneview_b1
> 213c213,216
> < for port in interconnect_data[‘ports’]:
> —
> > ports = interconnect_data.get(‘ports’)
> > if not ports:
> > ports = []
> > for port in ports:

Da wäre ich vermutlich nie drauf gekommen.

Herzlichen Dank und viele Grüße
Uwe

Im Endeffekt ja wenn es möglich wäre, würde ich mich freuen wenn ich auch die Checks zum Output bekommen könnte :slight_smile: sonst muss ich das selber neu schreiben/erfinden.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.