こんにちは、フルスタックエンジニアのryuです。
今回の記事では、ApacheのLogFormatの使い方について解説します。LogFormatを使って、ログの書式を変更してみましょう。設定方法は、Apacheの設定ファイルを開き、LogFormatを変更するだけです。ログをカスタマイズして、Webサイトの運用をやり易くしましょう。
目次
ApacheのLogFormatの使い方は?
ApacheのLogFormatはどうやって使うの?
今回の記事では、ApacheのLogFormatの使い方について解説します。LogFormatを使用することで、Apacheのアクセスログの表示形式を変更することができます。
LogFormatの使い方について詳しく解説します!
Apacheの設定ファイルでLogFormatを定義
では早速LogFormatを使ってみましょう。LogFormatはデフォルトで既に設定されています。設定されている場所は、Apacheの設定ファイルです。viコマンドを使用して、ファイルを開いてみましょう。
vi /etc/apache/apache2.conf
もしくは
vi /etc/http/httpd.conf
ファイルの下部にLogFormatの設定がされています。
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
これらが、どのような意味があるのか、さらに詳しく解説します。
LogFormatの書式
LogFormatの書式は、以下のようになります。
LogFormat [フォーマット] [書式名]
フォーマットは、Logに出力する情報を定義します。書式名は、LogFormatの名前です。Logファイルの場所を指定するときに使用する”CustomLog”に指定します。
LogFormatの文字列一覧
LogFormatでは、ログのフォーマットを指定します。フォーマットの文字列の意味は以下の通りです。
%a | リモートIPアドレス |
%A | ローカルIPアドレス |
%b | クライアントに送信されたHTTPヘッダ以外のバイト数 |
%f | ファイル名 |
%h | リモートホスト |
%H | リクエストプロトコル |
%I | リモートログ名 |
%m | リモートメソッド |
%r | リクエストの最初の行 |
%t | サーバーがリウエストの処理を終えた時間 |
%T | リクエスト処理にかかった時間 |
%u | リクエストをしたユーザー名 |
%U | リクエストされたユーザー名 |
%>s | サーバーがクライアントに返すステータスコード |
%{Referer}i | リクエスト内のRefererヘッダの内容 |
%{User-agent}i | リクエスト内のUser-agentヘッダの内容 |
LogFormatでApacheのアクセスログをカスタマイズしてみよう
では、最後にLogFormatでApacheのアクセスログをカスタマイズしてみましょう。
Apacheの設定ファイルの編集
まず、設定ファイルを編集します。先ほど同様にviコマンドを使用して編集します。
vi /etc/apache/apache2.conf
もしくは
vi /etc/http/httpd.conf
ファイルに以下のように定義します。
LogFormat "%h %l %u %t %U" testlog
CustomLog ${APACHE_LOG_DIR}/test/access.log testlog
LogFormatは5つの情報を出力するようにしています。testlogという書式名を定義して、CustomLogでtestlogのファイルを設定しています。CustomLogについてはこちらの記事で詳しく解説しています。
Apacheのログの場所は?ログの場所を設定する方法について詳しく解説
これで設定は完了です。
Apacheを再起動する
設定ファイルの編集が完了したら、Apacheの再起動をして、設定を反映させます。その前に、ログを出力させるディレクトリの作成を行います。
mkdir -m 777 /var/log/apache/test
Apacheがログファイルの作成や書き込みができるように、権限をフルアクセスで付与しています。
最後にApacheを再起動して完了です。
service apache2 restart
これでログのカスタマイズが完了です!
ApacheのLogFormatの使い方まとめ
今回の記事では、ApacheのLogFormatの使い方について解説しました。まとめると以下のようになります。
- Apacheの設定ファイルでLogFormatの設定
- LogFormat [フォーマット] [書式名]で定義
- CustomLogで出力させる
LogFormatを使用して、Apacheのログをカスタマイズしてみましょう!
このようなインフラエンジニアに必要な知識を当ブログでは、紹介しているので興味のある方は是非ご覧ください。
さらにlinuxについて勉強したい方はこちらの参考書がオススメです。