| カスタマイズされたログフォーマットにも対応できる |
Apacheでは,出力されるログフォーマッ ト(書式)を自由にカスタマイズすることができる。たとえば,リンク元のページである「HTTP_REFERER」を記録することもでき,クライアントのブラウザ種別「USER_AGENT」を記録することも可能だ。
ここで注意しなければならない点がある。それは,上記のように記録する項目や書式をカスタマイズしたログを使用している場合,Analogの標準設定のままではログ解析をすることができない点だ。
このため,Analog側でログの書式を指定する方法が用意されている。次に,具体的な設定方法を交じえながらログフォーマットを変更する方法を解説していこう。
| Apacheのログフォーマット |
Apacheを利用している場合,ログの書式は「LogFormat」というオプション (ディレクティブ)によって指定される。一般的なアクセスログの書式は,
| LogFormat "%h %l %u %t \"%r\" %>s %b" common |
と指定されている。ここでは「%h %l %u %t \"%r\" %>s %b」という書式に 「common」という別名を割り振っていて,この書式名を「CustomLog」というディレクティブで次のように指定している。
| CustomLog /usr/local/apache/logs/access_log common |
このように設定しておけば,「/usr/local/apache/logs/access_log」 というファイルに「common」の書式でログを記録することができるようになる。
| ログフォーマットの指定方法 |
Analogで解析するログの書式を指定する場合には,「APACHELOGFORMAT」,あるいは「LOGFORMAT」というオプションを利用する。
書式の要素として,クライアントのIPアドレスや日時,リクエストされたファイル名などがある。これらの組み合わせによって一つの書式を構成し,その書式に沿ってログファイルを解析するのだ。
たとえば,次のように指定するとひとつの行が「クライアントのIPアドレスまたはホスト名」, 「ひとつのスペース文字」,「リクエストされたファイル名」から構成されるログファイル書式になる。
| LOGFORMAT (%S %r) |
ただし実際のログファイルはこれほど簡単な書式ではなく,Apacheの一般的な設定ではユーザー名(認証時) や時刻,転送バイト数やHTTPステータスなどが含まれている。
| 6/10 |
