Apacheのエラーログを設定する|ErrorLogとLogLevelの使い方・バーチャルホスト別設定

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Apache, Linuxtips, Webサーバー管理, サーバー管理 > Apacheのエラーログを設定する|ErrorLogとLogLevelの使い方・バーチャルホスト別設定
「Apacheでエラーが発生しているが、どこにログが出力されているか分からない」
\n「エラーログに情報が出過ぎて、本当の問題が埋もれてしまう」
\n
\nApacheのエラーログは、サーバートラブルの原因特定に欠かせないファイルです。ログの出力先とログレベルを適切に設定することで、必要な情報を効率的に収集できます。
\n
\nこの記事では、ApacheのエラーログをhttpDConfで設定する方法を、ErrorLog ディレクティブの基本から LogLevel の各段階の意味、バーチャルホスト別のログ設定まで実践的に解説します。
\n
\n
【この記事でわかること】
\n\n・ErrorLog ディレクティブでエラーログの出力先ファイルを指定する
\n・LogLevel で出力する重要度レベルを debug/info/notice/warn/error/crit/alert/emerg から選ぶ
\n・デフォルトは LogLevel warn(warn以上のメッセージを記録)
\n・バーチャルホスト設定内に ErrorLog を書けばサイト別にログを分けられる
\n・tail -f /var/log/httpd/error_log でリアルタイムにエラーを監視できる
\n

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

エラーログの設定場所を確認する

エラーログの設定は httpd.conf の中で行います。デフォルトの設定を確認してみましょう。

# エラーログの設定を確認する [root@server ~]# grep -n "ErrorLog\|LogLevel" /etc/httpd/conf/httpd.conf ErrorLog "logs/error_log" LogLevel warn

設定ファイルのパスは環境によって異なります。
・RHEL/CentOS/Rocky Linux 系:/etc/httpd/conf/httpd.conf
・Debian/Ubuntu 系:/etc/apache2/apache2.conf
・ソースコンパイル:/usr/local/apache2/conf/httpd.conf

ErrorLogの設定方法

1. httpd.confを編集する

[root@server ~]# vi /etc/httpd/conf/httpd.conf

2. ErrorLog を設定する

ErrorLog ディレクティブにエラーログファイルのパスを指定します。

# デフォルト設定(相対パス) ErrorLog "logs/error_log" # 絶対パスで指定する例(こちらの方が分かりやすい) ErrorLog /var/log/httpd/error_log

相対パスの場合は ServerRoot ディレクティブで設定されたディレクトリからの相対パスになります。RHEL/CentOS系では ServerRoot "/etc/httpd" が多いため、実際のファイルパスは /etc/httpd/logs/error_log(シンボリックリンク経由で /var/log/httpd/error_log)になります。

LogLevelの設定方法

1. LogLevelの各段階の意味

LogLevel で設定するレベルは以下の通りです。下に行くほど重大な問題です。

debug:デバッグ情報を含む最も詳細なログ(開発環境向け)
info:一般的な情報メッセージ
notice:通常動作だが記録に値する情報
warn:警告(デフォルト。本番環境の標準設定)
error:エラー発生時のメッセージ
crit:重大なエラー
alert:即座に対処が必要な状況
emerg:システムが使用不能な緊急事態

2. 設定例

# 本番環境の標準設定(warnレベル以上を記録) LogLevel warn # トラブルシュート時に詳細情報が必要な場合 LogLevel info # デバッグ用(ログ量が非常に多くなるため本番では使わない) LogLevel debug

本番環境では LogLevel warn が推奨です。debug を設定するとログが膨大になり、ディスク容量を圧迫します。

3. 設定を反映させる

# 設定ファイルの構文チェック [root@server ~]# httpd -t Syntax OK # 設定を反映する(CentOS 7以降) [root@server ~]# systemctl reload httpd

バーチャルホスト別にエラーログを設定する

複数のサイトを運用している場合、バーチャルホスト設定内に ErrorLog を設定するとサイトごとに個別のログファイルへ記録できます。

# /etc/httpd/conf.d/vhost.conf の設定例 ServerName example.com DocumentRoot /var/www/html/example # このバーチャルホスト専用のエラーログ ErrorLog /var/log/httpd/example_error_log LogLevel warn

バーチャルホスト内に ErrorLog を設定した場合、そのサイトのエラーはグローバルのエラーログには記録されません。

エラーログを確認する方法

# エラーログをリアルタイムで監視する [root@server ~]# tail -f /var/log/httpd/error_log # 最新20行を確認する [root@server ~]# tail -20 /var/log/httpd/error_log # エラーレベルのメッセージのみ抽出する [root@server ~]# grep "\[error\]" /var/log/httpd/error_log

まとめ

やりたいこと 設定・コマンド
エラーログの出力先を設定する ErrorLog /var/log/httpd/error_log
ログレベルを設定する(本番標準) LogLevel warn
バーチャルホスト別にログを分ける VirtualHost内に ErrorLog を設定
エラーログをリアルタイム監視する tail -f /var/log/httpd/error_log
設定を反映する(RHEL7以降) systemctl reload httpd

Apacheのログ設定だけでなく、Linuxサーバーを安全に運用するための「型」を身につけたいですか?

エラーログの設定と監視は、本番サーバーの障害を早期に発見するための基本スキルです。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。