2026年10月15日
2026年10月15日
Apacheのmod_statusでサーバー状態を確認する方法
はじめに
Apacheのmod_statusモジュールは、HTTPサーバーの状態を監視するための強力なツールです。このモジュールを使用すると、リクエスト処理の遅延、現在の接続数、エラー率などの重要なメトリクスを迅速に確認できます。特に大量のトラフィックが想定されるウェブサイトや、高頻度でアクセスされているサーバーでは、サーバーの状態をリアルタイムで把握することが重要です。
症状・背景
- リソースが不足しているか、サーバーに不正なリクエストが大量に送られているかどうかを確認する必要がある。
- サーバーのパフォーマンスが低下し、原因を特定したい。
- HTTP接続数が多すぎるため、サーバーの処理能力を超えており、必要なリソースが不足している可能性がある。
手順・設定方法
ステップ1: mod_statusモジュールを有効にする
# Apache2.4以降でのmod_statusの有効化
sudo a2enmod status
# 配置ファイルでmod_statusを有効に
<Directory /var/www/html>
...
ModStatus
</Directory>
# 設定ファイルを保存して再起動
sudo systemctl restart apache2
ステップ2: mod_statusのアクセス制限設定
# ホームディレクトリに対してmod_statusを有効にし、特定のIPアドレスからのみアクセス可能にする
<Directory /var/www/html>
...
ModStatus
Require ip 192.168.0.0/16
</Directory>
# 設定ファイルを保存して再起動
sudo systemctl restart apache2
ステップ3: mod_statusのカスタマイズ
# カスタムエラー文書とモジュールを追加で有効化
<IfModule mod_status.c>
ServerSignature Off
ExtendedStatus On
Mute On
</IfModule>
# 設定ファイルを保存して再起動
sudo systemctl restart apache2
ステップ4: 状態確認とトラブルシュート
# サーバー状態をブラウザで確認する
http://yourdomain.com/server-status
# ネットワークコマンドを使用してサーバーのステータスを取得
curl -I http://yourdomain.com/server-status | grep "X-Powered-By"
注意事項
- mod_statusはデフォルトで有効化されないため、明示的に有効にする必要があります。
- セキュリティ上、mod_statusのアクセスを制限する必要があります。外部からの不正アクセス防止のためにIPアドレスリストを設定します。
- ExtendedStatus OnとMute Onを有効にすると、詳細な状態情報が表示されるため、サーバー負荷が高くなる可能性があります。
まとめ
1. mod_statusの有効化: Apacheでmod_statusモジュールを使用する前に、まずmod_statusを有効にする必要があります。
2. アクセス制限設定: mod_statusはデフォルトで全ユーザに公開されるため、セキュリティ上の理由からアクセス制限を設けることが重要です。
3. カスタマイズ: サーバーの状態情報をより詳細に知るために、ExtendedStatusとMute機能を使用できますが、これによりサーバーの負荷も高まる可能性がありますので注意が必要です。
4. 定期的な監視: mod_statusは定期的にサーバーの状態を確認するためのツールですので、定期的にアクセスして状況を把握することが推奨されます。
5. トラブルシュート: ある特定のリクエストが遅い場合や、サーバーのパフォーマンスが低下していると感じた場合は、mod_statusから原因を見つけることが可能となります。
関連記事: