Cisco Catalyst 9200L から、RHEL 9.5 の rsyslog へ syslog を転送したときのメモ。
この記事では “info 以外(=warning 以上)” の重要ログだけを送る構成 を前提にしている。
構成イメージ
- 送信元:Cisco Catalyst 9200L
- 送信先:RHEL 9.5(rsyslog)
- ログレベル:warning 以上(info は送らない)
- プロトコル:UDP 514
graph LR
subgraph LAN["同一セグメント(例: 192.168.11.0/24)"]
SW["Cisco C2960L\n192.168.11.10"]
SYSLOG["RHEL9.5 syslog サーバ\n192.168.11.50:514/UDP"]
end
SW --> SYSLOG
企業ネットワークでもよく使うスタンダードな構成。
1. スイッチ(Cisco 9200L) 側の設定
Cisco 側では、送信先の syslog サーバを指定し、送信するログレベルを warnings に設定する。
以下の設定を行い warning~emergencies(レベル 0~4) のログだけをRHELに送信する。
syslog 送信先(RHEL 側) logging host <送信先IPアドレス> transport udp port 514
warnings 以上を送信 logging trap warnings
タイムスタンプ設定 service timestamps log datetime msec localtime show-timezone clock timezone JST 9
スイッチ側にも最低限ログを残す logging buffered 16384 warnings
switch1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
switch1(config)# logging host 192.168.0.11 transport udp port 514
switch1(config)# logging trap warnings
switch1(config)# service timestamps log datetime msec localtime show-timezone
switch1(config)# clock timezone JST 9
switch1(config)#end
switch1#wr mem
Building configuration...
[OK]
switch1#ログレベルの対応表
| name | level | warnings 以上で送信されるか |
|---|---|---|
| emergencies | 0 | 送る |
| alerts | 1 | 送る |
| critical | 2 | 送る |
| errors | 3 | 送る |
| warnings | 4 | 送る |
| notifications | 5 | ✗ |
| informational | 6 | ✗ |
| debugging | 7 | ✗ |
2. RHEL 9(rsyslog)側の設定
RHEL 9 系でUDP/514 を受けるのは rsyslog。
/etc/rsyslog.conf に末尾追記
/etc/rsyslog.confの末尾に受信用設定を追記する。# Cisco からの syslog を受信する(UDP/514)
module(load="imudp")
input(type="imudp" port="514")
[root@localhost ~]# vi /etc/rsyslog.conf
# ### sample forwarding rule ###
#action(type="omfwd"
# # An on-disk queue is created for this action. If the remote host is
# # down, messages are spooled to disk and sent when it is up again.
#queue.filename="fwdRule1" # unique name prefix for spool files
#queue.maxdiskspace="1g" # 1gb space limit (use as much as possible)
#queue.saveonshutdown="on" # save messages to disk on shutdown
#queue.type="LinkedList" # run asynchronously
#action.resumeRetryCount="-1" # infinite retries if host is down
# # Remote Logging (we use TCP for reliable delivery)
# # remote_host is: name/ip, e.g. 192.168.0.1, port optional e.g. 10514
#Target="remote_host" Port="XXX" Protocol="tcp")
# Cisco からの syslog を受信する(UDP/514)
module(load="imudp")
input(type="imudp" port="514")設定反映# systemctl restart rsyslog
[root@localhost ~]# systemctl restart rsyslog動作確認# systemctl status rsyslog
[root@localhost ~]# systemctl status rsyslog
● rsyslog.service - System Logging Service
Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; preset: enabled)
Active: active (running) since Sun 2025-11-23 20:58:47 JST; 41s ago
Docs: man:rsyslogd(8)
https://www.rsyslog.com/doc/
Main PID: 5013 (rsyslogd)
Tasks: 4 (limit: 11075)
Memory: 9.1M
CPU: 26ms
CGroup: /system.slice/rsyslog.service
mq5013 /usr/sbin/rsyslogd -n
11月 23 20:58:47 localhost.localdomain systemd[1]: Starting System Logging Service...
11月 23 20:58:47 localhost.localdomain rsyslogd[5013]: [origin software="rsyslogd" swVersion="8.2310.0-4.el9" x-pid="5013" x-info="https://www.rsyslog.com"] start
11月 23 20:58:47 localhost.localdomain systemd[1]: Started System Logging Service.
11月 23 20:58:47 localhost.localdomain rsyslogd[5013]: imjournal: journal files changed, reloading... [v8.2310.0-4.el9 try https://www.rsyslog.com/e/0 ]3. firewalld の開放
デフォルトではファイアウォールにより受信できないため UDP/514 を開ける。# firewall-cmd --add-port=514/udp --permanent# firewall-cmd --reload
[root@localhost ~]# firewall-cmd --add-port=514/udp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#4. 動作確認
パケットが届いているか(RHEL側 tcpdumpで確認)
最小限インストールだとtcpdumpが入っていないためインストールを行う# dnf install tcpdump
[root@localhost ~]# dnf install tcpdump
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 2:35:53 前の 2025年11月23日 18時27分53秒 に実施しました。
依存関係が解決しました。
====================================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
====================================================================================================================================================================================================
インストール:
tcpdump x86_64 14:4.99.0-9.el9 rhel-9-for-x86_64-appstream-rpms 547 k
依存関係のインストール:
libibverbs x86_64 57.0-2.el9 rhel-9-for-x86_64-baseos-rpms 453 k
libpcap x86_64 14:1.10.0-4.el9 rhel-9-for-x86_64-baseos-rpms 177 k
トランザクションの概要
====================================================================================================================================================================================================
インストール 3 パッケージ
ダウンロードサイズの合計: 1.1 M
インストール後のサイズ: 3.0 M
これでよろしいですか? [y/N]: yインストールを確認# dnf list --installed | grep tcpdump
[root@localhost ~]# dnf list --installed | grep tcpdump
tcpdump.x86_64 14:4.99.0-9.el9 @rhel-9-for-x86_64-appstream-rpms
[root@localhost ~]# tcpdumpを実行する# tcpdump -nn -i any udp port 514
[root@localhost ~]# tcpdump -nn -i any udp port 514Cisco側でテストログ送信を行う
warningsレベルの送信#send log 4 test
notificationsレベルの送信(今回は送信されないよう設定)
#send log 5 test
switch1#send log 4 test
switch1#send log 5 testRHEL側でwarning以上のログが記録されることを確認する
[root@localhost ~]# tcpdump -nn -i any udp port 514
tcpdump: data link type LINUX_SLL2
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
21:23:46.090109 ens34 In IP 192.168.11.100.54131 > 192.168.0.11.514: SYSLOG local7.warning, length: 99rsyslog に記録されているか
以下で確認する# tail -f /var/log/messages
[root@localhost ~]# tail -f /var/log/messages
Nov 23 20:58:47 localhost rsyslogd[5013]: imjournal: journal files changed, reloading... [v8.2310.0-4.el9 try https://www.rsyslog.com/e/0 ]
Nov 23 21:05:06 localhost systemd[1]: Started /usr/bin/systemctl start man-db-cache-update.
Nov 23 21:05:06 localhost systemd[1]: Starting man-db-cache-update.service...
Nov 23 21:05:14 localhost systemd[1]: man-db-cache-update.service: Deactivated successfully.
Nov 23 21:05:14 localhost systemd[1]: Finished man-db-cache-update.service.
Nov 23 21:05:14 localhost systemd[1]: man-db-cache-update.service: Consumed 4.599s CPU time.
Nov 23 21:05:14 localhost systemd[1]: run-r93b9d24cc4944d39b3b2d913b5817977.service: Deactivated successfully.
Nov 23 21:22:20 192.168.11.100 1151: Nov 23 21:02:01.930 JST: %SYS-3-USERLOG_ERR: Message from tty1(user id: admin): test
Nov 23 21:23:04 192.168.11.100 1152: Nov 23 21:02:51.630 JST: %SYS-4-USERLOG_WARNING: Message from tty1(user id: admin): test
Nov 23 21:23:46 192.168.11.100 1153: Nov 23 21:03:32.757 JST: %SYS-4-USERLOG_WARNING: Message from tty1(user id: admin): test先程のテスト送信が出れば成功。SYS-4-USERLOG_WARNING: Message from tty1(user id: admin): testのメッセージが出ていることが確認できる
まとめ
- Cisco 9200L → RHEL9.5 で syslog を転送する場合、
Cisco ではlogging trap warningsにすることで “info 以外” を除外できる - RHEL9 側は rsyslog の UDP/514 を有効化 すれば受け取れる
tcpdump→/var/log/messagesの順で確認すると切り分けが早い
