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

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

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

Beitrag 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
Hygge
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

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

Beitrag 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
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

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

Beitrag 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. :|
Hygge
Antworten