Apacheのログ、対して使ってないんだけどとりあえず LTSV 形式にしとこうかなーと思って変えてみた。
LTSVって何?
Labeled Tab Separated Values の略でテキストのフォーマットの仕様です。主にログのフォーマットに使われるようですね。
通常の Apacheのアクセスログは以下のような形ですが
192.168.0.1 - hoge [25/Apr/2000:19:50:32 +0900] "GET /wp/index.php HTTP/1.0" 200 1234 "http://example.com/index.html" "Mozilla/5.0"
これを LTSV にすると以下のようになります。
host:192.168.0.1<TAB>ident:-<TAB>user:hoge<TAB>time:[25/Apr/2000:19:50:32 +0900]<TAB>req:GET /wp/index.php HTTP/1.0<TAB>status:200<TAB>size:1234<TAB>referer:http://example.com/index.html<TAB>ua:Mozilla/5.0
今までの combined ではただの値の羅列だったのがラベルが付くことによってプログラム上で処理しやすくなりますね。
詳しくは以下のエントリを・・・
LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリーApache のログを LTSV 形式にする
Apache のログファイルの出力を変えるには、LogFormat と CustomLog の値を変更する必要があります。
ログファイル - Apache HTTP サーバ#LogFormat は apache2.conf に
$ sudo vim /etc/apache2/apache2.conf
LogFormat "host:%h\tident:%l\tuser:%u\ttime:%t\treq:%r\tstatus:%>s\tsize:%b\treferer:%{Referer}i\tua:%{User-Agent}i" combined_ltsv
$ sudo vim /etc/apache2/sites-enabled/000-default
# CustomLog は virtualhost 内に
<VirtualHost *:80>
DocumentRoot /home/ryomatsu/public_html/loumo.jp
ServerName loumo.jp
ErrorLog ${APACHE_LOG_DIR}/loumo.jp.error_log
CustomLog ${APACHE_LOG_DIR}/loumo.jp.access_log combined_ltsv
</VirtualHost>
その後再起動したら LTSV 形式でログが出力されているはずです。
$ tail -f /var/log/apache2/loumo.jp.access_log
host:***.**.***.**** ident:- user:- time:[25/Apr/2013:19:37:49 +0900] req:GET /wp/archive/20130403225612/ HTTP/1.1 status:200 size:13353 referer:- ua:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TencentTraveler ; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727 ; .NET CLR 4.0.30319)
試しに見てみたら IE6 だった・・・滅びろ!
ltsview でより見やすく
ltsview を使用すると項目ごとに改行されてより見やすく表示できます。
$ sudo gem install ltsview
$ tail -f /var/log/apache2/loumo.jp.access_log | ltsview
---
:host: **.*.***.***
:ident: ! '-'
:user: ! '-'
:time: ! '[25/Apr/2013:19:44:17 +0900]'
:req: GET /wp/archive/20080701175525/ HTTP/1.0
:status: '200'
:size: '13894'
:referer: http://www.google.co.jp/search?q=vim+%E4%B8%80%E8%A1%8C%E3%80%80%E6%94%B9%E8%A1%8C&num=50&lr=lang_ja&inlang=ja&hl=ja&ie=UTF-8&tbs=lr:lang_1ja&prmd=ivns&ei=aRN6Uf3HA-OO2gXPgIHQAw&start=50&sa=N
:ua: w3m/0.5.3
ログ見るときはこっちのほうが良いかな?縦に長いからすごい勢いで流れていきそうだけど。
しかし ua: w3m か、マニアックだな...。
既存の Combined Log を LTSV に変換する
404 Blog Not Found:perl - Apache Combined Log を LTSV に現状自分のサイトではログを何かに使う事は全然無いんですが、そのうち何かに使うでしょう、きっと。