apache

Apacheのログの場所は?ログの場所を設定する方法について詳しく解説【Linux】

こんにちは、フルスタックエンジニアのryuです。

今回の記事では、Apacheのログについて解説します。Apacheのログの場所はデフォルトで、”/var/log/apache2″ディレクトリ配下にあります。今回はApacheの設定ファイルを編集して、ログの場所を変更する方法を解説します。Apacheのログについて詳しくなりましょう。

Apacheのログの場所は?

Apacheのログの場所はどこ?どうやって変更するの?

今回の記事では、Apacheのログの場所について解説します。Apacheのログの場所は、以下のディレクトリ配下にあります。

/var/log/apache2もしくは/var/log/httpd

今回の記事では、Apacheのログの場所やログのフォーマットの変更方法など、Apacheのログについて詳しく解説します。

Apacheのログは2種類ある

まず、Apacheのログの種類について解説します。ログの種類を理解して、どのような目的で何のログを確認する必要があるのかを理解しましょう。

Apacheのログは以下2種類あります。

  • アクセスログ
  • エラーログ

アクセスログはWebサーバーにアクセスした内容が格納されたログで、アクセスしてきた時間やIPアドレス、アクセスされたページなどを知ることができます。

エラーログは、Webのエラー情報が格納されています。Webサーバーにアクセスして、エラーが起きた場合は、エラーログを確認しましょう。

では、これら2つのログを実際に見てみましょう。

Apacheのアクセスログとエラーログを見てみよう

次に、Apacheのアクセスログとエラーログを見てみましょう。

ログを見るためには、tailコマンドを使用すると便利です。まずはアクセスログから見てみましょう。

tail -f /var/log/apache2/access.log
もしくは
tail -f /var/log/httpd/access.log

ログの中身は以下のようになっています。アクセスされて日時やパス、ブラウザの情報など様々な情報を確認することができます。

::1 - - [05/Jun/2021:09:31:07 +0900] "GET /test.html HTTP/1.1" 302 528 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.37"

次にエラーログを確認してみましょう。

tail -f /var/log/apache2/error.log
もしくは
tail -f /var/log/httpd/error.log

エラーログの中身も、アクセスログ同様、エラーの日時やエラーの内容などが格納されています。

Apacheの設定をすることで、ログを出力する場所やログの内容を変更することができます。ログをカスタマイズする方法を解説します。

Apacheのログの場所を変更するには?

先ほどはログの場所について解説しました。ここらは、Apacheの設定ファイルから、ログの出力先や表示形式を変更してみましょう。

Apacheの設定ファイルでログのカスタマイズを行う

では、早速ログのカスタマイズをしてみましょう。viコマンドを使用して、Apacheの設定ファイルを開きます。

vi /etc/apache/apache2.conf
もしくは
vi /etc/http/httpd.conf

設定ファイルの中で、ログの設定がすでにされています。ログの設定はこちらになります。

ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel warn

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

ログのファイルの場所を変更するためには、”ErrorLog”と”CustomLog”の設定を行います。“LogLevel”はログの出力情報を変更し、LogFormatでは、ログの形式を変更します。

ErrorLogとCustomLogでログファイルの場所を変更する

では、設定を変更してみましょう。以下のようにApacheの設定ファイルを変更してみます。

ErrorLog ${APACHE_LOG_DIR}/test/error.log
CustomLog ${APACHE_LOG_DIR}/test/access.log combined

ログファイルを”/var/log/apache/test”ディレクトリ配下にログの出力先を変更します。CustomLogはLogFormatの設定も併せて行う必要があるので、こちらの記事を参考にしてください。

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

設定が完了したら、ログを出力するディレクトリを作成します。

mkdir /var/log/apache/test

ディレクトリを作成したら、Apacheがログファイルを書き込めるように権限を付与します。

chmod 777 /var/log/apache/test

今回はフルアクセス権限を与えていますが、Apacheプロセスを動作させているユーザーに書き込み権限があれば大丈夫です。ファイル作成と権限付与のコマンドについては、こちらの記事で詳しく解説しているので、使い方が分からない方は参考にしてください。

ディレクトリの作成と権限付与が完了したら、Apacheを再起動して確認してみましょう!

service apache2 restart
もしくは
service httpd restart

最後に、本当にログファイルの場所が変更されているか確認してみましょう!

tail -f /var/log/apache/test/error.log
ログファイルの場所が変更されいる

ログファイルの出力先が変わっていたら成功です!

Apacheのログの場所まとめ

今回の記事では、Apacheのログの場所について解説しました。まとめると以下のようになります。

  • アクセスログの場所は”/var/log/apache/access.log
  • エラーログの場所は”/var/log/apache/error/log
  • 設定ファイルのErrorLogとCustomLogでファイルの場所を変更する

ログをカスタマイズできるとWebサーバーの運用が楽になるので覚えておきましょう!

このようなインフラエンジニアに必要な知識を当ブログでは、紹介しているので興味のある方は是非ご覧ください。

さらにlinuxについて勉強したい方はこちらの参考書がオススメです。

About me
大手メーカのIT部門→上場ベンチャーでインフラエンジニアやってます。エンジニア歴は8年目。 サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。 AI、ARも勉強中です! youtubeでも技術ネタを発信していきます。↓のアイコンよりご覧ください!