Goaccess: Parsen von JSON mit GoAccess

Erstellt am 10. Okt. 2016  ·  3Kommentare  ·  Quelle: allinurl/goaccess

Grüße, Herr. Könnten Sie mir bitte beim Parsen der Json-Protokolldatei helfen.
Beispiel für Log-String:

{"ip": "176.122.232.00", "host": "cdn.tv.com", "path": "/dtv/c_1199622700411804.ts", "status": "200", "user_agent": "YX_XY/1.0.1.0.3364", "length": 1392120, "date": "2016-10-09T20:00:00+03:00"}

Ich verwende dieses Format:
goaccess -f access.log --log-format='%^: "%h", %^:%^, %^: "%R", %^: %s, %^: "%u",%^: %b, %^: "%dT%t+%^"' --date-format='%Y-%m-%d' > /report.html

Und bekommen

Parsing... [1 734 743] [867 371/s]s]
GoAccess - version 0.8.5 - Dec  5 2014 06:36:01
Fatal error has occurred
Error occured at: goaccess.c - main - 832
Nothing valid to process

Was stimmt nicht mit meinem Log-Format?
Vielen Dank.

question

Hilfreichster Kommentar

Für diese nicht erkannten Optionen aktualisieren Sie bitte auf die neueste Version.

Tolle Frage, einer der wichtigsten Teile im Protokollformat ist das Zeichen , das auf %^ oder einen anderen Bezeichner folgt. Der Parser sucht nach diesem Zeichen. Wenn ich also beispielsweise %^: , bedeutet dies, dass der Parser alles überspringen soll, bis ein : gefunden wird. Das hilft sehr, damit ich nicht viele %^ , um Felder zu ignorieren. Die kommende Version wird dies besser handhaben, indem sie anzeigt, welche Token nicht mit dem Log-Format übereinstimmen, was die Dinge einfacher machen sollte.

Eine Liste der verfügbaren Protokollspezifizierer finden Sie hier .

Alle 3 Kommentare

Das sollte funktionieren:

goaccess -f access.log --log-format='%^: "%h",%^: "%v",%^: "%U",%^: "%s",%^: "%u",%^: %b,%^: "%dT%t+%^"%^' --date-format='%Y-%m-%d' --time-format='%T' --http-protocol=no --http-method=no

Danke für die Antwort,
Ich habe diese Fehler
goaccess: unrecognized option '--time-format=%T' (wahrscheinlich habe ich eine neue Version)

Dann habe ich die Option time-format entfernt und 2 weitere Fehler erhalten.

goaccess: option '--http-protocol' doesn't allow an argument
goaccess: option '--http-method' doesn't allow an argument

Als ich all diese Optionen entfernt habe, habe ich endlich meinen Bericht erhalten.
Könnten Sie dieses Log-Format übrigens für die weiteren Generationen erklären? :)

Für diese nicht erkannten Optionen aktualisieren Sie bitte auf die neueste Version.

Tolle Frage, einer der wichtigsten Teile im Protokollformat ist das Zeichen , das auf %^ oder einen anderen Bezeichner folgt. Der Parser sucht nach diesem Zeichen. Wenn ich also beispielsweise %^: , bedeutet dies, dass der Parser alles überspringen soll, bis ein : gefunden wird. Das hilft sehr, damit ich nicht viele %^ , um Felder zu ignorieren. Die kommende Version wird dies besser handhaben, indem sie anzeigt, welche Token nicht mit dem Log-Format übereinstimmen, was die Dinge einfacher machen sollte.

Eine Liste der verfügbaren Protokollspezifizierer finden Sie hier .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen