\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
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
エラーログの設定場所を確認する
エラーログの設定は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.confErrorLogの設定方法
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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:Apacheのタイムアウト(Timeout)を設定・確認する方法【2.4対応版】
- 前のページへ:Apacheの設定にインデックスファイルを追加する|DirectoryIndexでindex.phpを最優先にする方法
- この記事の属するカテゴリ:Apache・Linuxtips・Webサーバー管理・サーバー管理へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます