Apacheのアクセスログの出力場所と見方を解説

目次

スポンサードリンク

アクセスログとは

ApacheはオープンソースのWebサーバソフトウェアです。2023年のデータでは22%程度のWebサイトはApacheを利用しているといったデータがありました。以前は 70%近くがApacheを利用していたので、最近シェアは落ちてきていますが、まだまだ利用されている方も多いWebサーバーです。

Apacheで構築したWebサイトにアクセスすると、アクセスした日時やアクセス元のIPアドレス、URLなどの情報がアクセスログに保存されます。

アクセスログの出力場所

アクセスログの出力場所は、Apacheの設定ファイルで指定することができるため、環境により様々です。デフォルトの出力先は以下なので、まずは以下を確認してみましょう。

パッケージマネージャー(dnf、yumなど)でApacheをインストールした場合は、/var/log/httpd に出力されます。

[root@hostname ~]# ll /var/log/httpd/
total 72892
-rw-r--r--  1 root root 5749965 May 10 19:29 access_log
-rw-r--r--  1 root root  524888 May 10 19:21 error_log
-rw-r--r--  1 root root 4118570 May 10 19:29 ssl_access_log
-rw-r--r--  1 root root   51250 May 10 18:28 ssl_error_log
-rw-r--r--  1 root root 5539449 Apr 18 03:13 ssl_error_log-20240418
-rw-r--r--  1 root root 5372573 May 10 19:29 ssl_request_log

Apacheをソースビルドでインストールした場合は、インストール先のディレクトリ内にある logs ディレクトリに出力されます。以下の例は、/usr/local/apache-2.4.51/ にApacheをインストールした場合です。

[root@hostname ~]# ll /usr/local/apache-2.4.51/logs/
合計 37800
-rw-r--r-- 1 root root        0 11月 24  2021 access_log
-rw-r--r-- 1 root root   378488  3月 19 15:58 error_log

また、Apacheの設定ファイルでは、CustomLog ディレクティブで出力先を指定しています。デフォルトの設定では、以下のような設定になっていますが、カスタマイズされている場合は、出力先やログのファイル名が異なることがあるので、念のため、設定ファイルも確認しておきましょう。

CustomLog "logs/access_log" combined

アクセスログのフォーマット

アクセスログに出力される情報は、LogFormat ディレクティブで指定することができます。Apache2.4 では以下の設定がありました。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat ディレクティブの一番後ろの記述(combined)は、フォーマットを識別するための名称です。この名称を、CustomLog ディレクティブで指定することで、対象のアクセスログファイルのフォーマットを指定することができます。

ログファイルのフォーマットを調べたい場合は、LogFormat ディレクティブと、CustomLog ディレクティブはセットでチェックするようにしましょう。

デフォルトで指定されているフォーマットの意味は以下の通りです。

書式 内容
%h クライアントのホスト名またはIPアドレス
%l リクエストを処理したプロセスのID
%u 認証に使用したユーザー名(Basic認証などでアクセスした場合)
%t リクエストを受信した日時
”%r” リクエストライン(HTTPメソッド、要求されたURL、HTTPプロトコルバージョンを含む)
%>s レスポンスされたステータスコード
%b HTTP ヘッダは除くレスポンスのサイズ(バイト数)
”%{Referer}i” リクエストの Referer ヘッダーの値。
”%{User-Agent}i” リクエストの User-Agent ヘッダーの値。

その他にも使用できる書式が多数あり、Apacheのドキュメントで確認することができます。 https://httpd.apache.org/docs/2.4/ja/mod/mod_log_config.html


エラーログについての記事はこちら
Apacheのエラーログの出力場所と見方を解説


Linuxの基礎からセキュリティまで、サーバー運用に必要な知識をまとめた書籍

Webシステムの基礎について徹底的に学べるUdemy講座
【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎 icon

関連記事