| Apache Webサーバー_________ |
| Apacheのログファイル |
Apacheでは標準で組み込まれているmod_log_configモジュールによりさまざまなログ形式がサポートされます。デフォルトでは共通ログ形式(Common Log Format)でデータは書き込まれますが、LogFormat指示子により形式をカスタマイズすることも可能です。
共通ログ形式
共通ログ形式(common)では7つのトークン(データフィールド)が空白により区切られ、以下の形式で情報を表示します。
・ホスト名 識別情報 認証ユーザー 日時 リクエスト ステータス バイト数
192.168.130.xxx - - [01/Sep/2001:08:36:16 +0900] "GET http://www5.plala.or.jp/vaio0630/index.htm HTTP/1.0" 200 18167
各項目をもう少し細かく見てみると
| ホスト名 | Host | %h | 訪問者のIPアドレスまたはドメイン名。 | |
| 識別情報 | Ident | %l | クライアントについての識別情報。 | |
| 認証ユーザー | Authuser | %u | 基本HTTP認証が必要な場合の認証済みユーザー名。 | |
| 日時 | Date | %t | リクエストの日時。 | |
| リクエスト | Request | %r | 送信してきたリクエストの内容。この部分は、"と"で囲まれる。 | |
| ステータス | Status | %s | クライアントに送信されたHTTPステータスコード。 | |
| バイト数 | Bytes | %b | クライアントに送信されたファイルやオブジェクトのサイズ。 |
上記で"%アルファベット"という不可解な文字列がありますが、これがログファイル用で指定できる指示子です。上記をこれで表すとデフォルトのログ形式は
| LogFormat "%h %l %u %t \"%r\" %s %b" |
となります。
カスタムログ形式
Apacheには上記のほかに
| %f | リクエストされたファイル名。 | |
| %{variable}e | 環境変数variableの内容。 | |
| %a | リクエストを送信してきたコンピュータのリモートIPアドレス。 | |
| %{IncomingHeader}i | サーバーに送信されてきたリクエストのヘッダー行。 | |
| %{variable}n | 別のモジュールの注釈valiableの内容。 | |
| %{OutgoingHeader}o | 応答のヘッダー行。 | |
| %p | リクエストに応えるサーバーのポート。 | |
| %P | リクエストに応えた子プロセスID。 | |
| %{format}t | format書式に従って表現された時間。 | |
| %T | リクエストに応えるために要した時間(秒)。 | |
| %U | リクエストされたURLパス。 | |
| %v | リクエストの送信先となったサーバーの名前。 | |
| %V | UseCanonicalNameの設定に応じて、リクエストの送信先となったサーバーの名前を示す。 |
のトークンがあり、これらを組み合わせることによりログの形式をカスタマイズしていきます。例えばhttpd.confにデフォルトで設定されているものとして
| LogFormat "%h %l %u %t \"%r\" %>s %b
\"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent |
の3形式が設定されており、それぞれ"拡張共通ログ形式(combind)"、"参照元記録形式(referer)"、"ユーザーエージェント記録形式(agent)"となっています。他にも採りたい形式のログがあれば、上記のトークンを自由に組み合わせ、LogFormat指示子で指定し、CustomLog指示子でログの保存場所と名前、そしてあらかじめ定めておいた形式の形で指定します。
エラーログ
ApacheのエラーログはErrorLog指示子によりデフォルトで指定されています。
| ErrorLog logs/error.log |
エラーログのデフォルトの値は"LogLevel warn"で、これはApacheからクライアントに送られた警告だけを記録するようになっていますが、この値として指定できるものは他に
| alert | 警告メッセージを記録する。 | |
| crit | 致命的メッセージを記録する。 | |
| debug | デバッグのために、メッセージが生成された場所を示すソースファイルの名前と行を記録する。 | |
| emerg | 緊急メッセージを記録する。 | |
| error | エラーメッセージを記録する。 | |
| info | 情報メッセージを記録する。 | |
| notice | 通知メッセージを記録する。 |
があります。
HTTPクッキー
クッキーとはサーバーからブラウザに対して送信される小さな情報で、ブラウザがこれを受け入れると例えばIEでは C:\Windows\Cookies ディレクトリにファイルとして格納されます。クッキーを発行したサイトを次回訪問した際には、サーバーは以前に送ったクッキーに関する情報を取得し、その情報に基づいてユーザーを特定することができます。
Apacheサーバーに対してクッキー機能を有効にするためには、mod_usertrackモジュールを使います。これはデフォルトでは組み込まれていないため、以下のように組み込みます。
| #LoadModule usertrack_module modules/mod_usertrack.so
の行を探し、コメントをはずします。
httpd.confの適当な行に次の行を追加します。 CookieTracking on ←クッキー機能を有効にする。 CookieExpires "1 month" ←クッキーの有効期限を指定する。 |
その後Apacheを再起動します。
| CopyRight (C) 2000-2013 by T.Shiraishi All right reserved 無断転載禁止/リンクフリー |