前の記事ではsquidのアクセスログをrsyslogに出力する方法を紹介しました。ここでは、Apacheのログをrsyslogに出力する方法を紹介します。rsyslogにアクセスログを出力することで、将来的にアクセスログを一括管理することができます。
■apacheの設定
apacheの設定を以下のように設定します。まずはアクセスログの設定です。httpd.confのCustomLogの項目を以下のように記述します。元の設定はコメントアウトしてください。ファシリティとレベルに関しては運用に併せて適宜変更してください。
CustomLog "|/usr/bin/logger -p local6.info -t http-access" combined
apacheのrsyslogに出力するためにloggerを使っています。perl等のスクリプトを書いて設定する方法もありますが、メンテナンス等面倒なので、こちらの方法をとっています。
次にエラーログの設定です。こちらもhttpd.confに設定します。元の設定はコメントアウトしてください。
ErrorLog "|/usr/bin/logger -p local6.notice -t http-error"
これで、apacheを再起動して準備完了です。
■rsyslogの設定
rsyslog側の設定です。以下のように記述するとそれぞれのファイルにログが出力されます。出力先ファイル名、ファシリティ等の設定は運用に併せて適宜設定してください。設定変更後にrsyslogを再起動すれば、ログが出力され始めます。
local6.=info /var/log/httpd-accesslog.log
local6.=notice /var/log/httpd-errorlog.log
早めに設定しておくと、後々運用が楽になるかもしれません。