Apacheのアクセスログやエラーログだが、デフォルトではSyslogは経由しない。 これらをSyslogを使って管理する場合、httpd.confに設定の追加が必要になる。
設定自体は簡単で、CustomLog/ErrorLogの設定に対して、パイプで繋げてloggerでSyslogに流すだけだ。 以下、設定の記述例(VirtualHostとか設定してると記述先のファイルも変わるので、自分の環境に合わせて記述すること)。 CentOS 7で確認をしている。
/etc/httpd/conf/httpd.confCustomLog "|/usr/bin/logger -p local5.info -t httpd_access" combined ErrorLog "|/usr/bin/logger -p local6.info -t httpd_error"
次に、rsyslog側でログの出力先を設定する。 リモートに転送するのであればそのように記述してやればよい。
/etc/rsyslog.d/httpd.conflocal5.* /var/log/httpd/access_log local6.* /var/log/httpd/error_log
さらに、今の設定のままだと/var/log/messagesにも同様のログが出力されてしまうので、/etc/rsyslog.confでmessagesへのログ出力設定に追記をする。
*.info;mail.none;authpriv.none;cron.none;local5.none;local6.none;
/var/log/messages
以上で設定は完了。 あとは、サービスの再起動をして設定を適用すればよい。