InfraAcademy

InfraAcademy Blog

ApacheのLogFormatの使い方は?LogFormatを使ってログの書式を変更してみよう

| #Linux #apache

こんにちは、フルスタックエンジニアの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について勉強したい方はこちらの参考書がオススメです。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る