2026年8月3日
2026年8月3日
Apacheのログ形式をJSONに変更する方法
はじめに
Apache HTTPサーバーは、多くのウェブサイトやアプリケーションで使用される定番のサーバーです。デフォルトでは、Apacheはログを標準形式(通常はCombined Log Format)で記録しますが、JSON形式に変更することで、より柔軟な解析や監視が可能になります。
症状・背景
このテーマが必要になる主な場面:
- ログ分析ツールとの統合
- ログのリアルタイム解析
- セキュリティの監視と調査
- パフォーマンスモニタリング
手順・設定方法
ステップ1: mod_log_configモジュールのインストールと有効化
# Apacheがmod_log_configモジュールを提供していることを確認
sudo a2enmod log_config
# 配置ファイルを編集する準備
sudo nano /etc/apache2/apache2.conf
ステップ2: ログフォーマットの定義
# 既存のログフォーマットを削除し、新しいJSON形式のログフォーマットを追加
LogFormat "{ \"time\": \"%t\", \"status\":\"%s\", \"request\":\"%r\", \"user\":\"%u\" }" json
ステップ3: ログファイル名とパスの設定
# LogFileの設定を変更してJSON形式のログファイルを作成する
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log json
ステップ4: 一連の実践/トラブルシュート/監視
# Apacheを再起動して変更を適用する
sudo systemctl restart apache2
# JSON形式のログファイルが生成されていることを確認
ls -l /var/log/apache2/access.log
注意事項
- ログフォーマットは必要に応じてカスタマイズ可能。
- ログ分析ツールとの互換性を考慮する。
- ファイル名やパスが異なる場合、適切なパスを使用すること。
まとめ
1. JSON形式のログフォーマットの定義: LogFormatコマンドで新しいフォーマットを作成します。
2. ログファイルの設定: CustomLogコマンドを使ってJSON形式のログファイルを指定します。
3. Apacheの再起動: ログ設定が有効になるため、サーバーを再起動します。
4. ログファイルの確認: JSON形式のログが正しく生成されていることを確認します。
関連記事: