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開発の基礎
関連記事
Search
Recent Posts
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法
- RHEL系Linuxでリポジトリを一覧表示するコマンド(dnf repolist)