rsyslogでsyslogサーバを構築する手順を記載する。
・/etc/rsyslog.confでsyslog待ち受けの有効化
・/etc/logrotate.d/syslogでログローテを設定
syslog受信のUDP514ポートを有効にする。
# Provides UDP syslog reception # for parameters see http://www.rsyslog.com/doc/imudp.html #module(load="imudp") # needs to be done just once #input(type="imudp" port="514")
# Provides UDP syslog reception # for parameters see http://www.rsyslog.com/doc/imudp.html module(load="imudp") # needs to be done just once input(type="imudp" port="514")
・送信元ごとにログを書き出す。
・messegesにsyslogサーバのログを重複させないようにする。
# Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages
・[& stop]を[/var/log/messages]書き出し前に入れることで重複を回避している。
・送信元は[%fromhost-ip%]で送信元IPごとにディレクトリを分けて、ディレクトリ配下に送信元ごとのファイルを書き出している。
※[127.0.0.1.log]がホストのmessegesにあたるログになります。
$template syslogFileName,"/var/log/syslog/%fromhost-ip%/%fromhost-ip%.log" *.info;mail.none;authpriv.none;cron.none -?syslogFileName & stop # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages
参考までに[/etc/logrotate.d/syslog]に追記する方法でログローテの設定をしている。
/var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { missingok notifempty sharedscripts postrotate /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true endscript }
[/var/log/messages]は書き出されないけどコメントアウトを、[notifempty]で空ログ回避を入れても良い。
/var/log/cron /var/log/maillog # /var/log/messages /var/log/secure /var/log/spooler /var/log/syslog/*/*.log { missingok sharedscripts postrotate /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true endscript }