Apache-Logdateien mit SQL auswerten
Mit Hilfe von asql können Apache-Logdateien mit Hilfe von SQL ausgewertet werden. Im FreeBSD-Portbaum findet man asql unter www/asql:
# cd /usr/ports/www/asql && make install clean
Startet man asql muss zuerst die Apache-Logdatei mit Hilfe des load Kommandos geladen werden:
# asql asql v1.6 - type 'help' for help. asql> load /var/log/httpd-access.log Loading: /var/log/httpd-access.log
Durch das show Kommandos werden die Spalten angezeigt welche angefragt werden können:
# asql> show The table 'log' table has the following columns: id - ID of the request source - IP, or hostname, which made the request. request - The HTTP request status - The HTTP status-code returned size - The size of the response served, in bytes. method - The HTTP method invoked (GET, PUT, POST etc). referer - The HTTP referer (sic). agent - The User-Agent which made the request. version - The HTTP version used by this client. date - The date and time at which the request was made. label - Any label applied when the logfile was read. user - The remote (authenticated) user, if any.
Nun kann mit SQL zum Beispiel die Anzahl Logzeilen abgefragt werden:
# asql> SELECT COUNT(id) FROM logs 11824
Im folgenden Beispiel wird abgefragt welche 10 IP Adressen am meisten Inhalte heruntergeladen haben und wieviele Bytes im Total:
# asql> SELECT source,SUM ( size ) AS Number FROM logs GROUP BY source ORDER BY Number DESC, source LIMIT 10 xxx.xxx.144.25 27051285778 xxx.xxx.170.131 14517940587 xxx.xxx.191.155 13897162645 xxx.xxx.35.202 7229313024 xxx.xxx.208.198 6773282128 xxx.xxx.115.44 6044618675 xxx.xxx.160.156 5183653049 xxx.xxx.253.241 4906880739 xxx.xxx.7.52 4906749542 xxx.xxx.7.104 4906746880 asql> exit
Mit Hilfe des exit Kommandos wird asql wieder beendet. Mehr Informationen zu asql erhält man mit der --manual Option von asql.
Comments
No new comments allowed (anymore) on this post.