CentOS7 を Syslog サーバとして設定し、他の機器から送信されるメッセージを受信するには以下のように設定します。
syslog サーバには rsyslog を使います。 設定ファイルは /etc/rsyslog.conf
になりますが、これを以下のように書き換えます。
sed -i -e 's/^#$ModLoad imudp/$ModLoad imudp/g' /etc/rsyslog.conf
sed -i -e 's/^#$UDPServerRun 514/$UDPServerRun 514/g' /etc/rsyslog.conf
sed -i -e 's/^#$ModLoad imtcp/$ModLoad imtcp/g' /etc/rsyslog.conf
sed -i -e 's/^#$InputTCPServerRun 514/$InputTCPServerRun 514/g' /etc/rsyslog.conf
受信した Syslog メッセージは以下のように分類して保存することにします。
- ログファイルはホスト毎に異なるディレクトリに保存する (
%fromhost%
) - ログファイル名は年・月・日を付与する (
%$year%%$month%%$day%
)
具体的には以下のコマンドで /etc/rsyslog.conf
へ設定を追記します。
cat >> /etc/rsyslog.conf << "EOF"
$template ClinetMessage,"/var/log/rsyslog/%fromhost%/%$year%%$month%%$day%_messages.log"
*.* -?ClinetMessage
EOF
これで設定は完了です。 rsyslog デーモンを再起動し、設定を再読込すれば完了です。
systemctl restart rsyslog
Syslog サーバに限りませんが、SELinux や firewalld でブロックされないよう、注意します。
コメント