Apacheのログをsyslog(rsyslog)で管理する

Apacheのアクセスログやエラーログだが、デフォルトではSyslogは経由しない。
これらをSyslogを使って管理する場合、httpd.confに設定の追加が必要になる。

設定自体は簡単で、CustomLog/ErrorLogの設定に対して、パイプで繋げてloggerでSyslogに流すだけだ。
以下、設定の記述例(VirtualHostとか設定してると記述先のファイルも変わるので、自分の環境に合わせて記述すること)。CentOS 7で確認をしている。

●/etc/httpd/conf/httpd.conf

CustomLog "|/usr/bin/logger -p local5.info -t httpd_access" combined
ErrorLog  "|/usr/bin/logger -p local6.info -t httpd_error"
Sponsored Links

次に、rsyslog側でログの出力先を設定する。
リモートに転送するのであればそのように記述してやればよい。

●/etc/rsyslog.d/httpd.conf

local5.* /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

 

以上で設定は完了。
あとは、サービスの再起動をして設定を適用すればよい。

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*