Apacheのログの設定をしよう(Apache設定編)

Apacheのログの設定をしよう(Apache設定編)の続きになります。

今回はApacheのログフォーマットの形式を見ていきます。

ログの形式を確認する

現在のログを見てみる

まずは現在のログがどんな形式で出力されているのか見てみましょう。

tail -f /var/log/apache2/access.log

例えば、次のはGoogleボットのアクセスログです。

177.193.53.212 - - [22/Feb/2017:03:37:49 +0900] "GET / HTTP/1.0" 401 597 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

出力形式の確認

出力内容はApacheの設定のLogFormatで指定されます。

/etc/apache2/apache2.conf
LogFormat "%h %l %u %t \"%r\" %>s %O"  \"%{Referer}i\" \"%{User-Agent}i\" combined

%がついた形式の意味は次の通りです。

%h

リモートホストを表示します。

例では177.193.53.212がリモートホストです。

%l

リモートログ名を表示します。

設定してなければで表示されます。

%u

リモートユーザーを表示します。

ベーシック認証を行った時などに表示されます。

認証をしないアクセスであればになります。

%t

アクセス時刻を表示します。

%r

リクエストの最初の行を表示します。

%>s

最後のステータスを表示します。

%O

ヘッダを含む送信したバイト数を表示します。

\”%{Referer}i\”

参照元のサイトを表示します。

\”%{User-Agent}i\”

ChromeやFirefoxなどブラウザの種類を表示します。

combined

これはエイリアスのようなもので、ログの形式の名前を定義します。

例えば、以下の2つは同じログ形式を指定しています。

CustomLog log/apache2/access_log combined
CustomLog log/apache2/access_log "%h %l %u %t \"%r\" %>s %O"  \"%{Referer}i\" \"%{User-Agent}i\"

まとめ

通常の使い方であればログの形式を変える必要はないかもしれません。

しかし、特殊なアクセス情報を知りたくなったり、他のアプリケーションにログ解析を行わせる場合などに、知っておくと役に立つでしょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です