どんな記事か
Huawei スイッチから syslog を送る設定に詰まった。原因はファシリティが一致していなかったため。
目次
- 開発環境
- 概要
- 前提条件とトポロジ
- 課題
- 原因
- 解決方法
- まとめ
開発環境
Fedora41 / rsyslog / CloudEngineS5735
概要
今回は、HuaweiのスイッチからSyslogを送れない問題について解説する。原因はファシリティの設定ミスマッチであり、この問題はネットワーク機器以外からのログ転送でも発生し得るため、同様の課題に直面した際に役立てば本望。
前提:
各ノードは疎通が確認されている (pingが通る)
Syslog Serverにはrsyslogが稼働しており、PC-BからSyslogの送信は成功している
課題:
Switch (LabB-Core) からSyslog ServerへのSyslog送信が失敗している
原因:
SwitchとSyslog Serverのファシリティ設定が一致していなかった
前提
トポロジ
各ノードは疎通確認済み
Syslog Serverにはrsyslogが稼働中
PC-BからSyslogは送信可能
課題
Switch の Config
https://support.huawei.com/enterprise/en/doc/EDOC1000178167/89b6f3b4/configuring-the-device-to-output-logs-to-a-log-host
[HUAWEI] info-center loghost 10.100.1.201 port 514 transport udp
[HUAWEI] info-center source default channel logbuffer state on level notification
この状態で、Switch で display logbuffer が更新されても Syslog Server に送信されなかった。ミラーポートに接続したWireSharkを確認すると、Switch から Syslog Server に向かって Syslog が送信されていた。ここから、受信がうまくいっていないことに気づく。
原因
正常に Syslog Server に反映されている PC-B からの Syslog が送信されるときのパケットと、Switch からの Syslog パケットを比較した。すると、冒頭数値 (LOCAL7/LOCAL0) が異なることが分かった。これはファシリティというらしい。
ファシリティというのは、ログの種類を指定する箇所で、cronやmailなどがあり、今回指定するlocal0(~7)は独自に使用できるファシリティになっています。
(引用:https://qiita.com/sugar_salt75/items/1d1980d5b66becc9f38f)
Huawei Switch (CloudEngine S5735) では local0〜7 が選択できる。
解決方法
Switch で Facility を変更
[HUAWEI] info-center loghost 10.100.1.201 facility local0
なんとなく編集していたため気づかなかったが、/etc/rsyslog.conf でファシリティを設定していた。Syslog Server で受け取る設定をしているファシリティと一致しないとドロップされる様子。
まとめ
一日詰まったが、何とか Syslog が送れて (受け取れて) 良かった。やっと検証環境が出来たので、ネットワークをいじったときのログを検証する。