メインコンテンツへスキップ
  1. Linux 関連記事一覧/
  2. Ubuntu 26.04 LTS Server/

Ubuntu 26.04 LTS Server の syslog サーバー設定(rsyslog)

目次

syslog サーバーを使う前に

ルータやスイッチ、他のサーバーのログを1か所に集めるサーバーを、Ubuntu の rsyslog で作ります。rsyslog は Ubuntu 26.04 に最初から入って動いていますが、他のホストからログを受け取る設定は無効です。この記事では受信を有効にし、ルータと別のサーバーからログを送らせます。

syslog のメッセージには facility(どの種類のプログラムか)severity(重大度) が付き、2つを合わせた PRI という数値で運ばれます(PRI = facility × 8 + severity)。経路は UDP 514 番が基本で、TCP も使えます。

項目内容
受信側で編集するファイル/etc/rsyslog.conf(受信の有効化と送信元の制限)、/etc/rsyslog.d/*.conf(追加の設定)
送信側で編集するファイル/etc/rsyslog.conf(転送の設定)
ポートUDP 514、TCP 514
メッセージの形式RFC 3164(BSD 形式)と RFC 5424(新しい形式)

設定ファイルの場所を確認する

rsyslog は導入済みで、サービスも動いています。

パッケージの確認 実行例
kazulog@sv1:~$ apt-cache policy rsyslog | head -3
rsyslog:
  Installed: 8.2512.0-1ubuntu4.1
  Candidate: 8.2512.0-1ubuntu4.1
kazulog@sv1:~$ apt-cache show --no-all-versions rsyslog | grep -E '^(Version|Section|Priority):'
Priority: important
サービスの状態 実行例
kazulog@sv1:~$ systemctl status rsyslog --no-pager | head -6 | cat
● rsyslog.service - System Logging Service
     Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; preset: enabled)
     Active: active (running) since Sat 2026-09-12 08:23:00 JST; 5min ago
 Invocation: 13a9a0a695b14b73b2d9c064a636dacb
TriggeredBy: ● syslog.socket
       Docs: man:rsyslogd(8)

設定は /etc/rsyslog.conf と、そこから読み込まれる /etc/rsyslog.d/*.conf にあります。

設定ファイルの一覧 実行例
kazulog@sv1:~$ ls -l /etc/rsyslog.conf /etc/rsyslog.d/
-rw-r--r-- 1 root root 1213 Aug 22  2025 /etc/rsyslog.conf

/etc/rsyslog.d/:
total 12
-rw-r--r-- 1 root root  314 May 16  2023 20-ufw.conf
-rw-r--r-- 1 root root  255 Jul 24 01:34 21-cloudinit.conf
-rw-r--r-- 1 root root 1124 Aug 22  2025 50-default.conf

/etc/rsyslog.conf の中身です。受信に使う4行(17・18・21・22行目)は # でコメントになっています。

/etc/rsyslog.conf(変更前)
kazulog@sv1:~$ cat /etc/rsyslog.conf
# /etc/rsyslog.conf configuration file for rsyslog
#
# For more information install rsyslog-doc and see
# /usr/share/doc/rsyslog-doc/html/configuration/index.html
#
# Default logging rules can be found in /etc/rsyslog.d/50-default.conf


#################
#### MODULES ####
#################

module(load="imuxsock") # provides support for local system logging
#module(load="immark")  # provides --MARK-- message capability

# provides UDP syslog reception
#module(load="imudp")
#input(type="imudp" port="514")

# provides TCP syslog reception
#module(load="imtcp")
#input(type="imtcp" port="514")

# provides kernel logging support and enable non-kernel klog messages
module(load="imklog" permitnonkernelfacility="on")

###########################
#### GLOBAL DIRECTIVES ####
###########################

# Filter duplicated messages
$RepeatedMsgReduction on

#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog

#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf

受信を有効にする(/etc/rsyslog.conf)

/etc/rsyslog.conf を編集し、17・18行目(UDP)と 21・22行目(TCP)の # を外します。

編集するファイル
sudo vi /etc/rsyslog.conf
/etc/rsyslog.conf の 16〜22行目(変更後)
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

変更したら再起動します。UDP と TCP の両方が、IPv4 と IPv6 で待ち受けます。

変更後の確認 実行例
kazulog@sv1:~$ grep -n 'imudp\|imtcp' /etc/rsyslog.conf
17:module(load="imudp")
18:input(type="imudp" port="514")
21:module(load="imtcp")
22:input(type="imtcp" port="514")
kazulog@sv1:~$ sudo systemctl restart rsyslog
kazulog@sv1:~$ sudo ss -ulnp 'sport = :514'
State               Recv-Q              Send-Q                           Local Address:Port                             Peer Address:Port              Process
UNCONN              0                   0                                      0.0.0.0:514                                   0.0.0.0:*                  users:(("rsyslogd",pid=2939,fd=5))              
UNCONN              0                   0                                         [::]:514                                      [::]:*                  users:(("rsyslogd",pid=2939,fd=6))              

ルータからログを送る

IOS XE のルータ R1 に送信先を設定します。logging trap は送る重大度の下限、logging origin-id hostname はメッセージにホスト名を付ける指定です。

R1 の設定コマンド
logging host 192.168.100.10
logging trap informational
logging origin-id hostname
R1 側 実行例
R1#show running-config | include logging
no logging console
logging origin-id hostname
logging host 192.168.100.10
R1#send log facility KAZULOG severity 6 mnemonics TESTMSG kazulog-test-message from R1

ログは /var/log/syslog に入ります。ホスト名の欄は送信元の IP(192.168.100.1)で、R1: は本文の中に入ります。

サーバー側 実行例
kazulog@sv1:~$ sudo grep 192.168.100.1 /var/log/syslog | tail -3
2026-09-12T08:30:05.402731+09:00 192.168.100.1 70: R1: *Sep 11 23:30:04.049: %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user: kazulog] [Source: 10.100.3.1] [localport: 22] at 23:30:04 UTC Fri Sep 11 2026
2026-09-12T08:30:07.627711+09:00 192.168.100.1 71: R1: *Sep 11 23:30:07.482: %KAZULOG-6-TESTMSG: Message from tty1(user id: kazulog): kazulog-test-message from R1
2026-09-12T08:30:08.627134+09:00 192.168.100.1 72: R1: *Sep 11 23:30:07.514: %SYS-6-LOGOUT: User kazulog has exited tty session 1(10.100.3.1)

別のサーバーから送る(logger)

logger は1本のメッセージを送るコマンドです。-n が送信先、-P がポート、-d が UDP、-T が TCP、-t がタグです。

logger で送る 実行例
kazulog@sv2:~$ logger -n 192.168.100.10 -P 514 -d -t kazulog-udp "kazulog-test-message over UDP"
kazulog@sv2:~$ logger -n 192.168.100.10 -P 514 -T -t kazulog-tcp "kazulog-test-message over TCP"
kazulog@sv2:~$ echo "logger rc=$?"
logger rc=0

どちらも届きます。 こちらはホスト名の欄が sv2 になります。

サーバー側 実行例
kazulog@sv1:~$ sudo grep kazulog-test-message /var/log/syslog | tail -3
2026-09-12T08:30:07.627711+09:00 192.168.100.1 71: R1: *Sep 11 23:30:07.482: %KAZULOG-6-TESTMSG: Message from tty1(user id: kazulog): kazulog-test-message from R1
2026-09-12T08:30:12.237901+09:00 sv2 kazulog-udp kazulog-test-message over UDP
2026-09-12T08:30:12.290454+09:00 sv2 kazulog-tcp kazulog-test-message over TCP

送信側サーバーのログをまとめて転送する(送信側の /etc/rsyslog.conf)

送信側サーバー(sv2)の rsyslog に転送させると、そのサーバーのログがすべて受信側へ流れます。送信側で編集するのも /etc/rsyslog.conf で、末尾に転送の設定を足します。

編集するファイル(送信側 sv2)
sudo vi /etc/rsyslog.conf
/etc/rsyslog.conf の末尾に追記(送信側 sv2)
# 受信サーバー (sv1) へ転送する
action(type="omfwd"
       queue.filename="fwdRule_sv1"
       queue.maxdiskspace="1g"
       queue.saveonshutdown="on"
       queue.type="LinkedList"
       action.resumeRetryCount="-1"
       Target="192.168.100.10" Port="514" Protocol="tcp")
設定意味
Target / Port / Protocol転送先のサーバー、ポート、UDP か TCP か
queue.filename / queue.maxdiskspace送れないときに貯めるキューの名前と上限
queue.saveonshutdown停止時にキューをディスクに保存する
action.resumeRetryCount="-1"送信先が無応答でも再試行を続ける
送信側の設定と確認 実行例
kazulog@sv2:~$ tail -8 /etc/rsyslog.conf
# 受信サーバー (sv1) へ転送する
action(type="omfwd"
       queue.filename="fwdRule_sv1"
       queue.maxdiskspace="1g"
       queue.saveonshutdown="on"
       queue.type="LinkedList"
       action.resumeRetryCount="-1"
       Target="192.168.100.10" Port="514" Protocol="tcp")
kazulog@sv2:~$ sudo systemctl restart rsyslog
kazulog@sv2:~$ logger -t kazulog-forward "kazulog-forwarded-message from sv2"

受信側に届きます。ただしホスト名の欄は sv2 ではなく ubuntu です。

受信側 実行例
kazulog@sv1:~$ sudo grep kazulog-forwarded-message /var/log/syslog
2026-09-12T08:30:33+09:00 ubuntu kazulog-forward: kazulog-forwarded-message from sv2
kazulog@sv1:~$ sudo grep -c "sv2 " /var/log/syslog
2

これは rsyslog が転送するときに使うホスト名が、cloud-init でホスト名が付く前の ubuntu のままになっているためです。hostname コマンドや journald が記録する _HOSTNAMEsv2 を返します。ホスト名で分けたい場合は、送信側の設定に $LocalHostName sv2 を足すか、受信側で送信元 IP を使います。

送信元ごとにファイルを分ける(/etc/rsyslog.d/10-remote.conf)

受信したログを送信元ごとに分けるには、/etc/rsyslog.d/ に新しいファイルを作ります。

作成するファイル
sudo vi /etc/rsyslog.d/10-remote.conf
/etc/rsyslog.d/10-remote.conf(新規作成)
# 送信元ホストごとにファイルを分ける
template(name="RemoteFile" type="string" string="/var/log/remote/%HOSTNAME%/messages.log")
ruleset(name="remote") {
    action(type="omfile" dynaFile="RemoteFile")
}
input(type="imudp" port="514" ruleset="remote")
input(type="imtcp" port="514" ruleset="remote")

template がファイル名を組み立て、ruleset に入れた受信だけがそこへ書かれます。ファイル名に %PROGRAMNAME%(タグ)を使うと、IOS XE のメッセージ番号(74:)がタグとして解釈されてメッセージごとにファイルが増えるため、ここでは固定名にしています。

作成したファイルの確認 実行例
kazulog@sv1:~$ ls -l /etc/rsyslog.d/
total 16
-rw-r--r-- 1 root root  316 Sep 12 08:32 10-remote.conf
-rw-r--r-- 1 root root  314 May 16  2023 20-ufw.conf
-rw-r--r-- 1 root root  255 Jul 24 01:34 21-cloudinit.conf
-rw-r--r-- 1 root root 1124 Aug 22  2025 50-default.conf
kazulog@sv1:~$ cat /etc/rsyslog.d/10-remote.conf
# 送信元ホストごとにファイルを分ける
template(name="RemoteFile" type="string" string="/var/log/remote/%HOSTNAME%/messages.log")
ruleset(name="remote") {
    action(type="omfile" dynaFile="RemoteFile")
}
input(type="imudp" port="514" ruleset="remote")
input(type="imtcp" port="514" ruleset="remote")
kazulog@sv1:~$ sudo systemctl restart rsyslog

送信元ごとにディレクトリができます。R1 は IP、logger で直接送った sv2 は sv2、rsyslog が転送した分は ubuntu です。

ホスト別ファイル 実行例
kazulog@sv1:~$ sudo ls -l /var/log/remote/ /var/log/remote/192.168.100.1/ /var/log/remote/sv2/
/var/log/remote/:
total 12
drwx------ 2 syslog syslog 4096 Sep 12 08:32 192.168.100.1
drwx------ 2 syslog syslog 4096 Sep 12 08:32 sv2
drwx------ 2 syslog syslog 4096 Sep 12 08:32 ubuntu

/var/log/remote/192.168.100.1/:
total 4
-rw-r--r-- 1 syslog syslog 509 Sep 12 08:32 messages.log

/var/log/remote/sv2/:
total 4
-rw-r--r-- 1 syslog syslog 158 Sep 12 08:32 messages.log
kazulog@sv1:~$ sudo tail -2 /var/log/remote/192.168.100.1/messages.log
2026-09-12T08:32:34.630302+09:00 192.168.100.1 74: R1: *Sep 11 23:32:34.491: %KAZULOG-6-TESTMSG: Message from tty1(user id: kazulog): kazulog-test-message from R1
2026-09-12T08:32:35.629872+09:00 192.168.100.1 75: R1: *Sep 11 23:32:34.517: %SYS-6-LOGOUT: User kazulog has exited tty session 1(10.100.3.1)
kazulog@sv1:~$ sudo tail -2 /var/log/remote/sv2/messages.log
2026-09-12T08:32:31.511588+09:00 sv2 kazulog-udp kazulog-test-message over UDP
2026-09-12T08:32:31.562850+09:00 sv2 kazulog-tcp kazulog-test-message over TCP

送信元を制限する(/etc/rsyslog.conf)

$AllowedSender で受け付ける送信元を絞れます。プロトコルごとに書く必要があり、UDP と書いただけでは TCP には効きません。

編集するファイル
sudo vi /etc/rsyslog.conf
/etc/rsyslog.conf の 24〜25行目に追記
# ログを受け付ける送信元
$AllowedSender UDP, 192.168.100.1/32
$AllowedSender TCP, 192.168.100.1/32
変更後の確認 実行例
kazulog@sv1:~$ grep -n 'imudp\|imtcp\|AllowedSender' /etc/rsyslog.conf
17:module(load="imudp")
18:input(type="imudp" port="514")
21:module(load="imtcp")
22:input(type="imtcp" port="514")
24:$AllowedSender UDP, 192.168.100.1/32
25:$AllowedSender TCP, 192.168.100.1/32
kazulog@sv1:~$ sudo systemctl restart rsyslog

許可していない sv2 のログは記録されなくなり、R1 のログだけが増えます。送信側の logger は成功したように見えます(終了コードは 0)。

拒否の確認 実行例
kazulog@sv1:~$ sudo tail -2 /var/log/remote/sv2/messages.log
2026-09-12T08:32:31.511588+09:00 sv2 kazulog-udp kazulog-test-message over UDP
2026-09-12T08:32:31.562850+09:00 sv2 kazulog-tcp kazulog-test-message over TCP
kazulog@sv1:~$ sudo tail -1 /var/log/remote/192.168.100.1/messages.log
2026-09-12T08:33:13.211924+09:00 192.168.100.1 78: R1: *Sep 11 23:33:12.098: %SYS-6-LOGOUT: User kazulog has exited tty session 1(10.100.3.1)
kazulog@sv1:~$ sudo journalctl -u rsyslog --no-pager -n 6
Sep 12 08:33:11 sv1 rsyslogd[5887]: tcpsrv listener (inputname: 'imtcp') failed to process incoming connection from 192.168.100.20:40852 to 192.168.100.10:514 with error -2063 [v8.2512.0 try https://www.rsyslog.com/e/2063 ]

設定ファイルの最終状態

ここまでの設定が入った状態です。受信側(sv1)で触ったファイルは /etc/rsyslog.conf/etc/rsyslog.d/10-remote.conf の2つだけです。

受信側 sv1 の設定ファイル
kazulog@sv1:~$ ls -l /etc/rsyslog.conf /etc/rsyslog.d/
-rw-r--r-- 1 root root 1319 Sep 12 08:33 /etc/rsyslog.conf

/etc/rsyslog.d/:
total 16
-rw-r--r-- 1 root root  316 Sep 12 08:32 10-remote.conf
-rw-r--r-- 1 root root  314 May 16  2023 20-ufw.conf
-rw-r--r-- 1 root root  255 Jul 24 01:34 21-cloudinit.conf
-rw-r--r-- 1 root root 1124 Aug 22  2025 50-default.conf
kazulog@sv1:~$ grep -vE '^(#|$)' /etc/rsyslog.conf
module(load="imuxsock") # provides support for local system logging
module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
$AllowedSender UDP, 192.168.100.1/32
$AllowedSender TCP, 192.168.100.1/32
module(load="imklog" permitnonkernelfacility="on")
$RepeatedMsgReduction on
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog
$WorkDirectory /var/spool/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf
kazulog@sv1:~$ cat /etc/rsyslog.d/10-remote.conf
# 送信元ホストごとにファイルを分ける
template(name="RemoteFile" type="string" string="/var/log/remote/%HOSTNAME%/messages.log")
ruleset(name="remote") {
    action(type="omfile" dynaFile="RemoteFile")
}
input(type="imudp" port="514" ruleset="remote")
input(type="imtcp" port="514" ruleset="remote")

サービスの状態、待ち受け、集まったログのディレクトリです。

受信側 sv1 の状態
kazulog@sv1:~$ systemctl is-enabled rsyslog; systemctl is-active rsyslog
enabled
active
kazulog@sv1:~$ sudo ss -ulnp 'sport = :514'
State               Recv-Q              Send-Q                           Local Address:Port                             Peer Address:Port              Process
UNCONN              0                   0                                      0.0.0.0:514                                   0.0.0.0:*                  users:(("rsyslogd",pid=5887,fd=7))              
UNCONN              0                   0                                      0.0.0.0:514                                   0.0.0.0:*                  users:(("rsyslogd",pid=5887,fd=5))              
UNCONN              0                   0                                         [::]:514                                      [::]:*                  users:(("rsyslogd",pid=5887,fd=8))              
UNCONN              0                   0                                         [::]:514                                      [::]:*                  users:(("rsyslogd",pid=5887,fd=6))              
kazulog@sv1:~$ sudo ss -tlnp 'sport = :514'
State               Recv-Q              Send-Q                           Local Address:Port                            Peer Address:Port              Process
LISTEN              0                   25                                     0.0.0.0:514                                  0.0.0.0:*                  users:(("rsyslogd",pid=5887,fd=9))               
LISTEN              0                   25                                        [::]:514                                     [::]:*                  users:(("rsyslogd",pid=5887,fd=10))              
kazulog@sv1:~$ sudo ls -l /var/log/remote/ /var/log/remote/192.168.100.1/ /var/log/remote/sv2/
/var/log/remote/:
total 12
drwx------ 2 syslog syslog 4096 Sep 12 08:32 192.168.100.1
drwx------ 2 syslog syslog 4096 Sep 12 08:32 sv2
drwx------ 2 syslog syslog 4096 Sep 12 08:32 ubuntu

/var/log/remote/192.168.100.1/:
total 4
-rw-r--r-- 1 syslog syslog 1017 Sep 12 08:33 messages.log

/var/log/remote/sv2/:
total 4
-rw-r--r-- 1 syslog syslog 158 Sep 12 08:32 messages.log

送信側(sv2)で触ったファイルは /etc/rsyslog.conf だけです。

送信側 sv2 の設定ファイル
kazulog@sv2:~$ ls -l /etc/rsyslog.conf
-rw-r--r-- 1 root root 1502 Sep 12 08:30 /etc/rsyslog.conf
kazulog@sv2:~$ grep -vE '^(#|$)' /etc/rsyslog.conf
module(load="imuxsock") # provides support for local system logging
module(load="imklog" permitnonkernelfacility="on")
$RepeatedMsgReduction on
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog
$WorkDirectory /var/spool/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf
action(type="omfwd"
       queue.filename="fwdRule_sv1"
       queue.maxdiskspace="1g"
       queue.saveonshutdown="on"
       queue.type="LinkedList"
       action.resumeRetryCount="-1"
       Target="192.168.100.10" Port="514" Protocol="tcp")
kazulog@sv2:~$ systemctl is-active rsyslog
active
ホストファイル変更内容
sv1(受信)/etc/rsyslog.conf17・18・21・22行目のコメントを外す、$AllowedSender を2行追記
sv1(受信)/etc/rsyslog.d/10-remote.conf新規作成(送信元ごとのファイル分け)
sv1(受信)/var/log/remote/自動で作られる(送信元ごとのディレクトリ)
sv2(送信)/etc/rsyslog.conf末尾に omfwd の転送設定を追記

受信をやめる

/etc/rsyslog.conf の4行をコメントに戻し、$AllowedSender の行と /etc/rsyslog.d/10-remote.conf を消して再起動すると、514 番が閉じます。ローカルのログ取りは動いたままで、集めたログのファイルも残ります。

受信の停止 実行例
kazulog@sv1:~$ ls -l /etc/rsyslog.d/
total 12
-rw-r--r-- 1 root root  314 May 16  2023 20-ufw.conf
-rw-r--r-- 1 root root  255 Jul 24 01:34 21-cloudinit.conf
-rw-r--r-- 1 root root 1124 Aug 22  2025 50-default.conf
kazulog@sv1:~$ grep -n 'imudp\|imtcp\|AllowedSender' /etc/rsyslog.conf
17:#module(load="imudp")
18:#input(type="imudp" port="514")
21:#module(load="imtcp")
22:#input(type="imtcp" port="514")
kazulog@sv1:~$ sudo systemctl restart rsyslog
kazulog@sv1:~$ sudo ss -ulnp 'sport = :514'; echo "ss rc=$?"
State                  Recv-Q                  Send-Q                                   Local Address:Port                                   Peer Address:Port                 Process
ss rc=0
kazulog@sv1:~$ logger -t kazulog-local "kazulog-local-after-disable"

rsyslog 自体は Ubuntu に最初から入っている Priority: important のパッケージなので、削除はしません。

キャプチャーで中身を見る

sv1 とスイッチの間のリンクで 514 番をキャプチャーしました。ルータからの UDP と、logger の UDP・TCP が並びます。

キャプチャーの一覧 実行例
$ tshark -r ubuntu-syslog.pcap -n -t ad -Y 'frame.number <= 5'
    1 2026-09-12 08:29:45.569384 192.168.100.1 → 192.168.100.10 Syslog 128 LOCAL7.NOTICE: 69: R1: *Sep 11 23:29:44.473: %SYS-5-CONFIG_I: Configured from console by console
    2 2026-09-12 08:30:05.385447 192.168.100.1 → 192.168.100.10 Syslog 203 LOCAL7.NOTICE: 70: R1: *Sep 11 23:30:04.049: %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user: kazulog] [Source: 10.100.3.1] [localport: 22] at 23:30:04 UTC Fri Sep 11 2026
    3 2026-09-12 08:30:07.610694 192.168.100.1 → 192.168.100.10 Syslog 162 LOCAL7.INFO: 71: R1: *Sep 11 23:30:07.482: %KAZULOG-6-TESTMSG: Message from tty1(user id: kazulog): kazulog-test-message from R1
    4 2026-09-12 08:30:08.610247 192.168.100.1 → 192.168.100.10 Syslog 141 LOCAL7.INFO: 72: R1: *Sep 11 23:30:07.514: %SYS-6-LOGOUT: User kazulog has exited tty session 1(10.100.3.1)
    5 2026-09-12 08:30:12.226226 192.168.100.20 → 192.168.100.10 Syslog 191 USER.NOTICE: 1 2026-09-12T08:30:12.237901+09:00 sv2 kazulog-udp - - [timeQuality tzKnown="1" isSynced="1" syncAccuracy="134839"] kazulog-test-message over UDP

ルータのメッセージは facility が LOCAL7(23)、severity が NOTICE(5)です。

ルータのメッセージ 実行例
$ tshark -r ubuntu-syslog.pcap -n -V -O syslog -Y 'frame.number == 1'
Frame 1: Packet, 128 bytes on wire (1024 bits), 128 bytes captured (1024 bits)
Ethernet II, Src: 52:54:00:93:66:9a, Dst: 52:54:00:d1:0a:14
Internet Protocol Version 4, Src: 192.168.100.1, Dst: 192.168.100.10
User Datagram Protocol, Src Port: 53762, Dst Port: 514
Syslog message: LOCAL7.NOTICE: 69: R1: *Sep 11 23:29:44.473: %SYS-5-CONFIG_I: Configured from console by console
    .... ..00 1011 1... = Facility: LOCAL7 - reserved for local use (23)
    .... .... .... .101 = Level: NOTICE - normal but significant condition (5)
    Message: 69: R1: *Sep 11 23:29:44.473: %SYS-5-CONFIG_I: Configured from console by console
        [Expert Info (Note/Protocol): Message conforms to neither RFC 5424 nor RFC 3164; trailing data appended]
            [Message conforms to neither RFC 5424 nor RFC 3164; trailing data appended]
            [Severity level: Note]
            [Group: Protocol]

logger のメッセージは RFC 5424 形式で、バージョン・タイムスタンプ・ホスト名・アプリ名が構造化されています。

logger のメッセージ 実行例
$ tshark -r ubuntu-syslog.pcap -n -V -O syslog -Y 'frame.number == 5'
Frame 5: Packet, 191 bytes on wire (1528 bits), 191 bytes captured (1528 bits)
Ethernet II, Src: 52:54:00:df:e0:dc, Dst: 52:54:00:d1:0a:14
Internet Protocol Version 4, Src: 192.168.100.20, Dst: 192.168.100.10
User Datagram Protocol, Src Port: 44687, Dst Port: 514
Syslog message: USER.NOTICE: 1 2026-09-12T08:30:12.237901+09:00 sv2 kazulog-udp - - [timeQuality tzKnown="1" isSynced="1" syncAccuracy="134839"] kazulog-test-message over UDP
    .... ..00 0000 1... = Facility: USER - random user-level messages (1)
    .... .... .... .101 = Level: NOTICE - normal but significant condition (5)
    Version: 1
    Timestamp: Sep 12, 2026 08:30:12.237901000 JST
    Hostname: sv2
    App Name: kazulog-udp
    Process ID: -
    Message ID: -
    Structured Data (1 element)
        Element (timeQuality) (3 parameters)
            Element Name: timeQuality
            Parameter (tzKnown)
                Parameter Name: tzKnown
                Parameter Value: 1
            Parameter (isSynced)
                Parameter Name: isSynced
                Parameter Value: 1
            Parameter (syncAccuracy)
                Parameter Name: syncAccuracy
                Parameter Value: 134839
    Message: kazulog-test-message over UDP
上のtshark出力のパケット(No.5 UDP)のpcapをダウンロード

TCP の 514 番は、tshark が既定で RSH として解釈します。 -d tcp.port==514,syslog を付けると syslog として読めます。

TCP の中身 実行例
$ tshark -r ubuntu-syslog.pcap -n -d tcp.port==514,syslog -Y 'tcp.stream == 0 && syslog' -T fields -e frame.number -e ip.src -e syslog.facility -e syslog.msg
9	192.168.100.20	1	kazulog-test-message over TCP\n

logger -T はメッセージ1本ごとに接続を張って閉じます。

logger の TCP 接続 実行例
$ tshark -r ubuntu-syslog.pcap -n -t ad -Y 'tcp.stream == 0'
    6 2026-09-12 08:30:12.275358 192.168.100.20 → 192.168.100.10 TCP 74 46098 → 514 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=1586745324 TSecr=0 WS=256
    7 2026-09-12 08:30:12.276303 192.168.100.10 → 192.168.100.20 TCP 74 514 → 46098 [SYN, ACK] Seq=0 Ack=1 Win=65160 Len=0 MSS=1460 SACK_PERM TSval=1354922390 TSecr=1586745324 WS=256
    8 2026-09-12 08:30:12.277115 192.168.100.20 → 192.168.100.10 TCP 66 46098 → 514 [ACK] Seq=1 Ack=1 Win=64256 Len=0 TSval=1586745326 TSecr=1354922390
    9 2026-09-12 08:30:12.277270 192.168.100.20 → 192.168.100.10 RSH 216 Client -> Server data
   10 2026-09-12 08:30:12.277373 192.168.100.20 → 192.168.100.10 TCP 66 46098 → 514 [FIN, ACK] Seq=151 Ack=1 Win=64256 Len=0 TSval=1586745327 TSecr=1354922390
   11 2026-09-12 08:30:12.278244 192.168.100.10 → 192.168.100.20 TCP 66 514 → 46098 [ACK] Seq=1 Ack=151 Win=65024 Len=0 TSval=1354922392 TSecr=1586745326
   12 2026-09-12 08:30:12.319384 192.168.100.10 → 192.168.100.20 TCP 66 514 → 46098 [ACK] Seq=1 Ack=152 Win=65024 Len=0 TSval=1354922433 TSecr=1586745327
   13 2026-09-12 08:30:12.587962 192.168.100.10 → 192.168.100.20 TCP 66 514 → 46098 [FIN, ACK] Seq=1 Ack=152 Win=65024 Len=0 TSval=1354922701 TSecr=1586745327
   14 2026-09-12 08:30:12.588628 192.168.100.20 → 192.168.100.10 TCP 66 46098 → 514 [ACK] Seq=152 Ack=2 Win=64256 Len=0 TSval=1586745638 TSecr=1354922701

一方、rsyslog の転送(omfwd)は1本の接続にまとめて流します。

転送の TCP 接続 実行例
$ tshark -r ubuntu-syslog.pcap -n -t ad -Y 'frame.number >= 15 && frame.number <= 22'
   15 2026-09-12 08:30:33.716887 192.168.100.20 → 192.168.100.10 TCP 74 36452 → 514 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=2878964534 TSecr=0 WS=256
   16 2026-09-12 08:30:33.717884 192.168.100.10 → 192.168.100.20 TCP 74 514 → 36452 [SYN, ACK] Seq=0 Ack=1 Win=65160 Len=0 MSS=1460 SACK_PERM TSval=2658807182 TSecr=2878964534 WS=256
   17 2026-09-12 08:30:33.718545 192.168.100.20 → 192.168.100.10 TCP 66 36452 → 514 [ACK] Seq=1 Ack=1 Win=64256 Len=0 TSval=2878964536 TSecr=2658807182
   18 2026-09-12 08:30:33.718651 192.168.100.20 → 192.168.100.10 RSH 1117 Client -> Server data
   19 2026-09-12 08:30:33.719381 192.168.100.10 → 192.168.100.20 TCP 66 514 → 36452 [ACK] Seq=1 Ack=1052 Win=68096 Len=0 TSval=2658807184 TSecr=2878964536
   20 2026-09-12 08:30:33.719773 192.168.100.20 → 192.168.100.10 RSH 346 Client -> Server data
   21 2026-09-12 08:30:33.720326 192.168.100.10 → 192.168.100.20 TCP 66 514 → 36452 [ACK] Seq=1 Ack=1332 Win=70400 Len=0 TSval=2658807185 TSecr=2878964537
   22 2026-09-12 08:30:33.763520 192.168.100.20 → 192.168.100.10 RSH 145 Client -> Server data

拒否された接続はハンドシェイクが成立してデータも送られ、最後にサーバーが RST を返します(No.748)。

拒否された接続 実行例
$ tshark -r ubuntu-syslog.pcap -n -t ad -Y '(frame.number >= 708 && frame.number <= 713) || frame.number == 748'
  708 2026-09-12 08:33:08.064218 192.168.100.20 → 192.168.100.10 TCP 74 40616 → 514 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM TSval=4097793459 TSecr=0 WS=256
  709 2026-09-12 08:33:08.064787 192.168.100.10 → 192.168.100.20 TCP 74 514 → 40616 [SYN, ACK] Seq=0 Ack=1 Win=65160 Len=0 MSS=1460 SACK_PERM TSval=2615597037 TSecr=4097793459 WS=256
  710 2026-09-12 08:33:08.065530 192.168.100.20 → 192.168.100.10 TCP 66 40616 → 514 [ACK] Seq=1 Ack=1 Win=64256 Len=0 TSval=4097793461 TSecr=2615597037
  711 2026-09-12 08:33:08.066662 192.168.100.20 → 192.168.100.10 RSH 236 Client -> Server data
  712 2026-09-12 08:33:08.067214 192.168.100.10 → 192.168.100.20 TCP 66 514 → 40616 [ACK] Seq=1 Ack=171 Win=65024 Len=0 TSval=2615597039 TSecr=4097793462
  713 2026-09-12 08:33:08.069621 192.168.100.20 → 192.168.100.10 RSH 1094 Client -> Server data
  748 2026-09-12 08:33:08.370433 192.168.100.10 → 192.168.100.20 TCP 66 514 → 40616 [RST, ACK] Seq=1 Ack=3638 Win=70912 Len=0 TSval=2615597342 TSecr=4097793747
上のtshark出力のパケット(No.748 RST)のpcapをダウンロード

検証環境と実行ログ

CML 上に Ubuntu 26.04 LTS Server 2台と IOS XE のルータ1台を置いて採取しました。Ubuntu のディスクは wipe した直後の状態から始めています(前の検証で入れたパッケージが残っていると手順が再現しないため)。

検証構成
  sv1 (受信)                    sv2 (送信)                    R1
  ens3 192.168.100.10/24      ens3 192.168.100.20/24      Gi2 192.168.100.1/24
  rsyslog (UDP/TCP 514)       rsyslog omfwd / logger      IOS XE 17.03.08a
   |                           |                           |
   +--------- LAB-SW ----------+---------------------------+
   ^ このリンクでキャプチャー(514 番)

キャプチャー全体のファイルです。

syslog のキャプチャー(ubuntu-syslog.pcap)
手順sv1(受信)sv2(送信)R1
初期状態(wipe 直後)show / conf / logshow / conf / log
設定ファイルの確認show / conf / log
受信の有効化show / conf / log
ルータからの送信show / conf / logshow
logger からの送信show / conf / logshow / conf / log
送信側からの転送show / conf / logshow / conf / log
ホスト別ファイルの設定show / conf / logshow / conf / logshow
ホスト別ファイルの確認show / conf / log
送信元の制限show / conf / logshow / conf / logshow
制限の確認show / conf / log
設定ファイルの最終状態show / conf / logshow / conf / log
受信の停止show / conf / log
キャプチャーの解析tshark

参考リンク

rsyslog documentation

RFC 5424 - The Syslog Protocol

関連記事

Ubuntu 公式ページ