Apache HTTP インフラ

Apacheのログファイルの出力場所と設定方法

こんにちは!シミダイ(@shimidai2100)です。

Apacheのログファイルの出力先と出力先を変更する方法と紹介します。

Apacheのログには、

  • 通常のHTTPリクエストのログ「access_log
  • エラー内容を表示する「error_log

があり、どちらもアクセスに応じでサイズが大きくなります。

ログ容量を注意する目的でも必要になるのでぜひ参考にしてみてください。

またApacheのインストール手順は以下になりますでの参考にしてみてください。

参考LinuxにApacheをインストールする方法


ログの出力場所

ログの出力先はデフォルトで以下に配置されています。

/var/log/httpd/

ディレクトリ内に

  • access_log
  • error_log

が出力されます。

以下が出力先のログファイル群です。

ls -l /var/log/httpd/
total 4284
-rw-r--r--. 1 root root  242820 Jan 18 17:17 access_log
-rw-r--r--. 1 root root  134027 Jul 29 03:10 access_log-20180729
-rw-r--r--. 1 root root 3329286 Aug  5 03:33 access_log-20180805
-rw-r--r--. 1 root root  121271 Aug 11 11:48 access_log-20180813
-rw-r--r--. 1 root root  130866 Jan 17 02:47 access_log-20190117
-rw-r--r--. 1 root root    1399 Jan 18 11:50 error_log
-rw-r--r--. 1 root root    2498 Jul 29 03:32 error_log-20180729
-rw-r--r--. 1 root root  396939 Aug  5 03:46 error_log-20180805
-rw-r--r--. 1 root root     762 Aug 11 12:22 error_log-20180813
-rw-r--r--. 1 root root    1338 Jan 17 03:22 error_log-20190117

なおデフォルト以外に出力されている場合、「/etc/httpd/conf/httpd.conf」の「CustomLog」と「ErrorLog」の箇所を確認しましょう。

vi /etc/httpd/conf/httpd.conf

CustomLog "logs/access_log" combined

ErrorLog "logs/error_log"

ログファイルはLinuxの「logrotate」でログローテーションされています。

出力場所を変更した際には、logrotateの設定も変更する必要があるので注意しましょう。

ログの出力先変更

今回のサンプルでは「/var/log/httpd/」から「/logfiles/httpd」に出力先を変更します前提で説明します。

ログの出力先を変更するには「/etc/httpd/conf/httpd.conf」の「CustomLog」と「ErrorLog」の箇所を変更します。

SELinuxが「無効化」または「正しく設定」されていない場合にはエラーとなりますので注意してください。

vi /etc/httpd/conf/httpd.conf

# 以下のように修正
CustomLog "/logfiles/httpd/access_log" combined
ErrorLog "/logfiles/httpd/error_log"

変更後にApacheを再起動させましょう。

systemctl restart httpd.service

またログ出力先を変更したら、ログローテーション設定の出力先も変更しましょう。

vi /etc/logrotate.d/httpd

# 以下のように修正する
/logfiles/httpd/*log {
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
    endscript
}

※ 今回の例ではログの出力先だけ変更しています。

変更後は「logrotate」を起動してログローテーションを確認しておきましょう。

logrotate -f /etc/logrotate.conf

ls -l
total 12
-rw-r--r-- 1 root root   0 Jan 19 03:26 access_log
-rw-r--r-- 1 root root 192 Jan 19 03:25 access_log-20190119
-rw-r--r-- 1 root root 490 Jan 19 03:26 error_log
-rw-r--r-- 1 root root 607 Jan 19 03:26 error_log-20190119

 

以上でApacheのログファイルの出力先の変更は完了です。

関連記事

-Apache, HTTP, インフラ

Copyright© shimidai2100 , 2020 All Rights Reserved.