はじめに
VRRPによる冗長構成が有効な場合に
Syslog転送を行うと、送信元のIPアドレスに気をつける必要がある点を実機で確認しました。
環境情報
- Debian 4.19.150-0vyatta1
Vyatta側の設定
Vyattaでは以下構文でSyslog転送の設定ができるので
# set system syslog host <address> facility <keyword> level <keyword>
ファシリティは all とした上で対象を警告以上とするように設定をしました。
# set system syslog host 10.X.X.X facility all level warning [edit] # compare [edit system syslog] +host 10.X.X.X { + facility all { + level warning + } +} [edit]
こうするとことで設定ファイルに定義が入るので
$ cat /etc/rsyslog.d/vyatta-log.conf ... *.warning action( Type="omfwd" Target="10.X.X.X" Protocol="udp" Port="514" Template="SystemdUnitTemplate" )
サーバ側にて受け入れ準備ができているとリモートサーバ側にVyattaのログが表示されます。
ただし、yattaのFWで弾かれる場合は
... vyatta-dataplane.service dataplane[4550]: In:dp0bond0.X DROP fw rule XX-IN:10000 proto=(icmp/1) addr=10.X.X.X->... v4=(len:213,ttl:64,tos:C0,ecn:Not,prot:1,hl:5) icmp=(Err,type:3,code:3) >TRIGGER> proto=(udp/17) addr=...->10.X.X.X port=44984->514 v4=(len:185,ttl:64,tos:00,ecn:Not,prot:17,hl:5) udp=(len:165)
Vyatta側に以下ログが出るので通信許可設定が必要です。
Syslog受信サーバ側の設定
rsyslogの設定ファイルにVyatta側のIPを指定することで個別のファイルに分けることができますが
:fromhost-ip, isequal, "X.X.X.X" /var/log/vyatta.log
VRRPを採用している場合は注意が必要です。というのも、該当のVyattaがMasterかBackupかによって送信元IPが変わります。
パケットキャプチャを取るとInternet Protocolの部分で送信元と送信先のIPが表示されますが、Master状態での送信元IPはVIFとしてMasterとBackupで付替が行われるIPとなります。
一方でBackup側となると各Vyattaに固有のインターフェースのIPアドレスが送信元となるため、受信サーバ側では以下のような設定を入れる形となります。
:fromhost-ip, isequal, "X.X.X.X" /var/log/vyatta.log #Master1,2用
:fromhost-ip, isequal, "X.X.X.X" /var/log/vyatta.log #Backup1用
:fromhost-ip, isequal, "X.X.X.X" /var/log/vyatta.log #Backup2用
終わりに
VRRP構成の場合、サーバ側で受け取る送信元IPがMaster/Backupで異なる点は抑えて置く必要があります。
以上、ご参考になれば幸いです。