Raspberry PiをSyslogサーバにする

これまでの記事ではRaspberry PiをセットアップしFTPサーバとするとことまでをまとめてきました。
今回はNetwork機器の検証において外すことのできないSyslogサーバのセットアップを行いたいと思います。
とは言ってもRaspberry Pi OSにおいては初期インストール時からrsyslogと呼ばれるsyslogdがインストールされ稼働している状態となりますので簡単な設定変更のみでSyslogサーバとして稼働させることができます。

バージョン確認

rsyslogd -v

でインストールされているrsyslogのVersionを確認することが出来ます。

ステータス確認

systemctl status rsyslog

でrsyslogの稼働状況が確認出来ます。

rsyslog.confの編集

これまでで、rsyslogがRaspberry Pi OS上で正常に動作していることが確認できました。
しかし初期設定状態ではNetworkを介してSyslogメッセージを受信し記録することが出来なくなっています。設定ファイルであるrsyslog.confを編集してそれを可能にします。

sudo vi /etc/rsyslog.conf

初期状態ではコメントアウトされている下記2行を解除します。

module(load="imudp")
input(type="imudp" port="514")

これでUDPを使ったSyslogの受信が行えるようになります。
TCPによる受信を行いたい場合はTCPの行もコメントを解除します。

 

振り分けルールの作成

このままの状態ではデフォルト設定の"/var/log/messages"にsyslogが記録されると思います。
今回はNetwork機器用として特定のセグメントからのSyslogを"/var/log/network.log"に記録するように設定を行います。

rsyslog.confの"RULES"の先頭行に、

:fromhost-ip, startswith, "192.168.2" -/var/log/network.log
& ~

と記述しました。
これは送信元IPアドレスが192.168.2から始まるSyslogメッセージが来たら該当のファイルに記録するというものです。
各環境に合わせてIPアドレスを変更してみてください
2行目の"& ~"はルールの最後の行を示し、これ以前のルールにマッチした場合これ以降のルールは無視するというものです。
重複したファイルにLogが記録されないように記述は必須です。

 

rsyslogの再起動

sudo systemctl restart rsyslog

でrsyslogを再起動して全作業終了となります。
Network機器にてSyslog設定を行い正しく受信できているか確認を行います。
今回はMerakiでSyslogの設定を行いました。MerakiのSyslogに関しては別の記事で詳細をまとめたいと思っています。

tail /var/log/network.conf

無事Syslogが受信できていることを確認できました。