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.
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 .
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 .