Seite 1 von 1

systemd / journald: Log-Einträge per HttpRequest() abrufen

Verfasst: 22.01.2024 15:35
von Kiffi
Moin,

ich möchte die Log-Einträge eines Containers von einem journald per HttpRequest abrufen.

Mit folgendem Code funktioniert es schon mal ganz gut.

Code: Alles auswählen

URL$ = "http://[DieIP]:19531/entries?CONTAINER_ID=[DieID]"

HttpRequest = HTTPRequest(#PB_HTTP_Get, URL$)

If HttpRequest
  
  Debug "StatusCode: " + HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode)
  Debug "Response: " + Len(HTTPInfo(HTTPRequest, #PB_HTTP_Response))
  
  FinishHTTP(HTTPRequest)
  
Else
  
  Debug "Request creation failed"
  
EndIf
Allerdings bekomme ich hier 60 MB Daten. Aus diesem Grund möchte ich die Anzahl der Log-Einträge mit dem Parametern since und until eingrenzen.

journal-gatewayd: add since/until parameters for /entries

Leider weiß ich nicht, wie ich diese Parameter in der URL angeben soll. Ich bekomme immer einen "400 Bad Request"

Wer kann mir auf die Sprünge helfen?

Danke im Voraus & Grüße ... Peter

Re: systemd / journald: Log-Einträge per HttpRequest() abrufen

Verfasst: 22.01.2024 16:06
von NicTheQuick
Sieht so aus als müsstest du Header-Einträge hinzufügen. Das heißt du brauchst eine Map mit Header-Einträgen wie diesen hier:

Code: Alles auswählen

URL$ = "http://[DieIP]:19531/entries?CONTAINER_ID=[DieID]"

startDate = Date(2024, 1, 22, 0, 0, 0)
endDate = Date(2024, 1, 23, 0, 0, 0)

NewMap Header$()
Header$("Range") = "realtime=" + startDate + ":" + endDate

HttpRequest = HTTPRequest(#PB_HTTP_Get, URL$, "", 0, Header$())

If HttpRequest
	
	Debug "StatusCode: " + HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode)
	Debug "Response: " + Len(HTTPInfo(HTTPRequest, #PB_HTTP_Response))
	
	FinishHTTP(HTTPRequest)
	
Else
	
	Debug "Request creation failed"
	
EndIf

Re: systemd / journald: Log-Einträge per HttpRequest() abrufen

Verfasst: 22.01.2024 17:16
von Kiffi
Vielen Dank für Deine schnelle Antwort, NicTheQuick! :allright:

Ich gehe mal stark davon aus, dass das die Lösung ist. Kann ich momentan aber nicht ausprobieren, weil ich gerade erfahren habe, dass wir die neue journald-Version noch gar nicht installiert haben. :|