目次

52.ログ管理-rsyslog-syslogサーバ設定

rsyslogでsyslogサーバを構築する手順を記載する。

概要

・/etc/rsyslog.confでsyslog待ち受けの有効化
・/etc/logrotate.d/syslogでログローテを設定

/etc/rsyslog.conf設定詳細

MODULES

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")

RULES

・送信元ごとにログを書き出す。
・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設定詳細

参考までに[/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
}