![]()
ログの管理と解析
NCSA WWWサーバソフトウェアには、次のログファイルが記録されます。access_logファイルは自分のWWWサーバーのどの書類がいつどこからアクセスされたかを示すログであるため、自分のWWWサーバーの使用状況を表すログと言えます。WWWサーバーをアナウンスした後に、世界中のどこからかアクセスされると思います。ログを残しておく事によって、どのような事に関心事項があるのかを知ることができ、サーバーの書類更新にも意欲が湧いてくると思います。また、まとめておけば、会社での評価を得るための貴重な資料ともなるでしょう。
- access_log
- サーバの書類やスクリプト等にアクセスしたログ
- error_log
- エラーログ
- refer_log
- どのURLから参照してきたかを示すログ
- user_agent_log
- アクセスしてきたWWWブラウザのソフトウェア種別ログ
このaccess_logファイルは次のようなフォーマットになっています。このフォーマットはCERNやPlexus WWWサーバーや多くのGopherサーバーでサポートされています。
ログは放置しておけば、たまり続けることになり、ディスクを圧迫させてしまいます。ログを週おき程度にまとめながら、ログ解析を行うようにしておくと整理に便利です。次のスクリプトはログを週おきに別のファイル名に変更し、圧縮しておきます。このスクリプトをcronで定期的に実行させます。
- host
- アクセスしてきたホスト名、ホスト名がわからなければ、IPアドレスになります。
- rfc931
- httpd.confでIdentityCheckを使用している場合で、相手がRFC931プロトコルを使ってアクセスしてきた場合にユーザ名が表示されます。IndentityCheckを使用していない場合は、ダッシュ(-)が書き込まれます。
- authuser
- ユーザ認証のアクセス制限をしていた場合(ユーザ名とパスワードを要求)、ユーザ名が書き込まれます。その他はダッシュ(-)が書き込まれます。
- date-time
- 要求があった時間で、サーバ側の時間を使用します。最後にGMTとの差が書き込まれます。
- request
- クライアントによって送られた要求です。ここにアクセスされたHTML書類などが書き込まれます。
- status
- HTTP/1.0 の状態コードです。
- bytes
- 送信されたバイト数です。ここにはヘッダは含まれません。
#!/bin/sh cd /usr/local/etc/httpd/logs rm access_log.4.gz mv access_log.3.gz access_log.4.gz mv access_log.2.gz access_log.3.gz mv access_log.1.gz access_log.2.gz mv access_log access_log.1 gzip -9 access_log.1 kill -HUP 'cat httpd.pid'
![]()
ログの解析ツール
先程のaccess_logファイルを解析するプログラムをいくつかご紹介します。
getstats:
getstatsはWWWサーバーのログを解析するためのプログラムでC言語で書かれています。 wwwstat:
wwwstatはPerlで記述されています。ログの解析結果はHTMLファイルとしてまとめられます。また、データファイルをgwstatで処理することにより、グラフチャートにすることができます。もちろん、GIFフォーマットで出力してくれます。 wusage:
wusageはThomas Boutellによって開発され、週別にログファイルを解析し、GIFフォーマットで結果をグラフ化します。 accesswatch:
accesswatchは毎日実行することによって、その日のWWWアクセス状況を一目で知ることができる非常に便利なツールです。しかも、高速に結果を出力します。入手するには登録が必要です。