うまいぼうぶろぐ

linuxとhttpdとperlのメモ

rsyslogでremote host(or network)ごとにlogをわける

2012年にもなってsyslogdを使い続けるのはいかがなものかということと、RHEL6系がrsyslogを採用しているので、今更になってrsyslogdを真面目に調べています。

fromhost-ip を使ってhost, network ごとにログをわける設定。

ちなみにこれらの設定はlocalのsyslogを保存する"mail.* -/var/log/maillog" のような設定の前に書いておく必要がある。また、その直後に"& ~" を書かないと、remoet serverのログもlocalの/var/log/messages などに保存されてしまう。

完全一致で比較する場合はisequal, 前方一致はstartswith でいいのかい?

  • /etc/rsyslog.conf
# do this in FRONT of the local/regular rules
:fromhost-ip, isequal, "192.168.0.10" /var/log/remote/host.log
& ~
:fromhost-ip, startswith, "192.168.2." /var/log/remote/network.log
& ~
# local/regular rules, like
*.* /var/log/syslog.log

こっちのURLだと:fromhost-ip がif $fromhost-ip に変わって、コンマの付き方も違っていてよくわからない(2種類書き方ある?) ので、見慣れている:fromhost-ip で設定しておく。