Ich habe eine Reihe von Apache-Protokolldateien, die ich analysieren möchte. Ich suche ein Tool, das nicht viel Setup erfordert; Etwas, das ich über die Befehlszeile protokollieren kann, ohne auf unseren Live-Webservern herumzuspielen.
Irgendwelche Empfehlungen?
apache-2.2
log-files
analytics
mmattax
quelle
quelle
Antworten:
Die oben genannten Tools sind zwar alle cool, aber ich glaube, ich weiß, was der Fragesteller gefragt hat. Es schmerzt mich oft, dass ich die Informationen nicht wie bei anderen Dateien aus einem Zugriffsprotokoll ziehen kann.
Das liegt am dummen Zugriffsprotokollformat:
127.0.0.1 - - [16/Aug/2014:20:47:29 +0100] "GET /manual/elisp/index.html HTTP/1.1" 200 37230 "http://testlocalhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"
Warum haben sie [] für das Datum und "" für andere Dinge verwendet? Dachten sie, wir würden nicht wissen, dass ein Datum in Feld 4 ist? Es ist unglaublich frustrierend.
Das derzeit beste Tool dafür ist gawk:
gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])" } { print $5 }'
auf den Daten darüber würde dies Ihnen geben:
Mit anderen Worten, der FPAT gibt Ihnen die Möglichkeit, die Felder des Apache-Logs so herauszuholen, als wären es tatsächliche Felder, anstatt nur durch Leerzeichen getrennte Entitäten. Das ist immer was ich will. Das kann ich dann mit einer Pipeline etwas genauer analysieren.
Das Funktionieren des FSPAT wird hier definiert: http://www.gnu.org/software/gawk/manual/html_node/Splitting-By-Content.html
Sie können daher einen Alias einrichten, um einen Gawk zu erstellen, der Apache-Protokolle analysieren kann:
alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\\\[[^\\\\]]+\\\\])' " apacheawk '$6 ~ /200/ { print $5 } | sort | uniq
habe das für mich gemacht:
und natürlich ist jetzt fast alles möglich.
Genießen!
quelle
awk '($9 == 200) {print $6,$7,$8}'
dasselbe wie in Ihrem Beispiel anzeigen. Dort muss kein FPAT verwendet werden (auch wenn diese Methode in anderen Fällen nützlich sein kann)wtop ist cool. Es gibt auch andere Dienstprogramme. Oft analysiere ich Protokolle mit bash, sed und awk.
quelle
apachetop ist ziemlich cool; Es druckt Live-Statistiken. Du machst es mit
So installieren Sie es in Debian / Ubuntu:
oder von der Quelle: https://github.com/JeremyJones/Apachetop
quelle
Welche Art von Ausgabe möchten Sie?
Wenn Sie nur Dinge zählen wollen, dann greifen Sie zu logfile.txt | wc -l funktioniert super Wenn Sie hübsche Grafiken wollen ... nicht so sehr.
quelle
Wenn Sie eine Windows-Workstation haben, die Sie verwenden können, ist Logparser das Werkzeug der Wahl!
quelle
Analog funktioniert sofort und erfordert nicht viel Setup. logwrangler ist ein Paket, das mit Analog arbeitet, um eine schönere Ausgabe zu generieren, und außerdem wenig Setup erfordert.
quelle
Anstatt ein Befehlszeilentool zu verwenden, würde ich empfehlen, Apache Logs Viewer zu testen. Es ist ein kostenloses Tool, mit dem Sie die Apache-Protokolldatei überwachen und analysieren können. Es kann einige ziemlich coole Grafiken und Berichte im laufenden Betrieb generieren.
Weitere Informationen unter http://www.apacheviewer.com
quelle