リモートロギング · 2 min read · Sep 13, 2025
Debian 12でRsyslogを使用したリモートロギングの設定方法

Rsyslogは、オペレーティングシステムやアプリケーションのログメッセージを収集、フィルタリング、保存、転送するために使用されるオープンソースのロギングシステムデーモンです。これは、TCP、UDP、RELP(Reliable Event Logging Protocol)などの複数のプロトコルをサポートする強力で柔軟なロギングシステムです。Rsyslogを使用して、サーバー、アプリケーション、データベースのログを集中管理できます。
このガイドでは、Debian 12サーバーにrsyslogをインストールし、リモートロギングを設定する方法を示します。また、Linuxサーバーを設定して、Rsyslogサーバーにリモートでログを送信します。
前提条件
このガイドを始めるには、以下が必要です:
- Debian 12サーバー
- 管理者権限を持つ非ルートユーザー
- テスト用のクライアントとしてのLinuxマシン
Rsyslogのインストール
始める前に、DebianサーバーにRsyslogをインストールする必要があります。このステップでは、APTを通じてRsyslogをインストールし、Rsyslogサービスを開始して有効にします。
まず、以下のコマンドを実行してDebianパッケージインデックスを更新し、システムにRsyslogをインストールします。インストールを確認するために「 Y 」と入力します。
sudo apt update
sudo apt install rsyslog
インストールが完了したら、以下の「 systemctl 」コマンドを実行して「 rsyslog 」サーバーを開始し、有効にします。その後、実行中であることを確認します。
sudo systemctl enable --now rsyslog
sudo systemctl status rsyslog以下の出力で、Rsyslogが実行中であり、有効になっていることが確認できます。

UFW(Uncomplicated Firewall)の設定
Rsyslogがインストールされたら、UFW(Uncomplicated Firewall)をインストールして構成します。OpenSSHサービス用にポート「22」を開き、Rsyslog用にポート「514」を開きます。そして、UFWサービスを開始して有効にします。
UFWをインストールするには、以下の「 apt 」コマンドを実行します。インストールを確認するために「 Y 」と入力します。
sudo apt install ufw
インストールが完了したら、以下の「ufw」コマンドを実行して「 OpenSSH 」プロファイルを有効にし、ポート「514」へのアクセスを許可します。「 OpenSSH 」プロファイルはSSHアクセスを許可し、ポート「 514 」はsyslogポートです。
sudo ufw allow OpenSSH
sudo ufw allow 514次に、以下のコマンドでUFWを開始して有効にします。「 y 」と入力して確認し、「 Firewall is active and enabled at system startup 」という出力が得られます。
sudo ufw enable最後に、以下のコマンドでUFWのステータスを確認します。
sudo ufw status以下の出力で、UFWがアクティブであり、OpenSSHプロファイルとポート「 514 」が有効になっていることが確認できます。

Rsyslogがリモートサーバーからログを受信する設定
Rsyslogをインストールし、UFWを構成したので、リモートサーバーからログを受信するためにRsyslogを設定する準備が整いました。これを実現するためには、「/etc/rsyslog.conf」ファイルを修正し、以下を構成する必要があります:
- リモートサーバーからUDP経由でログを受信するために「 imudp 」モジュールを有効にする
- オプションで、TCP経由でログを受信するために「 imtcp 」を有効にする
- 特定のサブネットがリモートでログを送信できるように「 AllowedSender 」オプションを有効にする
- Rsyslog用のカスタムテンプレートを追加する
- Rsyslogの構成を確認する
- Rsyslogサービスを開始し、有効にし、確認する
始めましょう。
まず、以下の「 nano 」エディタを使用して「 /etc/rsyslog.conf 」ファイルを編集します。
sudo nano /etc/rsyslog.conf以下の行のコメントを外して「 imudp 」モジュールを有効にし、syslogがRsyslogサーバーにログインするようにします。
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")さらに、TCP経由でsyslogを有効にする必要がある場合は、以下のように「 imtcp 」モジュールを有効にします。
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="50514")次に、「 AllowedSender 」オプションを追加し、SyslogメッセージをRsyslogサーバーに送信できるネットワークサブネットを入力します。
# $AllowedSender - specifies which remote systems are allowed to send syslog messages to rsyslogd
$AllowedSender UDP, 192.168.10.0/24, [::1]/128, *.howtoforge.local, db.howtoforge.localリモートサーバーからのログファイルのためのテンプレートを設定するために、以下の構成を入力します。この例では、リモートサーバーからのログファイルは「 /var/log/servers/server-ip 」ディレクトリに保存されます。
#Custom template to generate the log filename dynamically based on the client's IP address.
$template RemInputLogs, "/var/log/servers/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.?RemInputLogsファイルを保存し、編集を終了します。
次に、以下の「 rsyslogd 」コマンドを実行してRsyslogの構成を確認し、適切な構成がされていることを確認します。
rsyslogd -f /etc/rsyslog.conf -N1エラーが発生しない場合は、以下の「 systemctl 」コマンドを実行して「 rsyslog 」サービスを再起動し、変更を適用します。
sudo systemctl restart rsyslog最後に、「 rsyslog 」サービスのステータスを確認して、実行中であることを確認します。
sudo systemctl status rsyslog以下の出力で、「 rsyslog 」が実行中であることが確認できます。

さらに、Rsyslogが実行されていることを確認するために、サーバーのポート「 514 」を確認します。
ss -tulpn | grep 514以下のように、UDPポート「 514 」がRsyslogによって使用されていることが確認できます。
Rsyslogサーバーへのログの送信
Debianサーバーでリモートロギングを構成したので、次に「 192.168.10.41 」から「 192.168.10.10 」サーバーにログを送信してみましょう。これを行うには、以下が必要です:
- マシンにRsyslogパッケージをインストールする
- Rsyslogの構成を編集し、どのログがリモートRsyslogサーバーに送信されるかを定義する
- オプションで、Rsyslogのディスクキューを設定する
以下の「 apt 」コマンドで「rsyslog」パッケージをインストールします。「 Y 」と入力してインストールを確認します。
sudo apt install rsyslog
次に、デフォルトの構成「 /etc/rsyslog.conf 」ファイルを「 nano 」エディタで開きます。
sudo nano /etc/rsyslog.conf以下の構成を追加して、Rsyslogサーバー「 192.168.10.10 」にログを送信します。この場合、kernel、cron、およびauthenticationログをRsyslogサーバーに送信します。
# Send logs to a remote syslog server over UDP
auth,[email protected]:514
[email protected]:514
[email protected]:514次に、以下を追加してRsyslogのキューを設定します。
# Define Disk Queue Buffer in case the server goes down
$ActionQueueFileName queue # define a file name for disk assistance.
$ActionQueueMaxDiskSpace 1g # The maximum size that all queue files together will use on disk.
$ActionQueueSaveOnShutdown on # specifies that data should be saved at shutdown
$ActionQueueType LinkedList # holds enqueued messages in memory which makes the process very fast.
$ActionResumeRetryCount -1 # prevents rsyslog from dropping messages when retrying to connect if the server is not responding,ファイルを保存し、編集を終了します。
次に、以下の「 rsyslogd 」コマンドを実行してRsyslogの構成を確認し、検証します。
rsyslogd -f /etc/rsyslog.conf -N1エラーが発生しない場合は、以下の「 systemctl 」コマンドを実行してRsyslogを再起動し、実行中であることを確認します。
sudo systemctl restart rsyslogd
sudo systemctl status rsyslogd以下のように、Rsyslogサービスが実行中であり、ログが「 192.168.10.10 」のRsyslogサーバーに送信されることが確認できます。

Rsyslogサーバーでのログファイルの確認
Rsyslogが正常に動作していることを確認するために、テンプレートで構成したログディレクトリを確認する必要があります。この例では、リモートサーバーからのログファイルは「 /var/log/servers 」ディレクトリに保存されます。
以下のコマンドでログディレクトリ「 /var/log/servers 」を確認します。これにより、各サーバーのディレクトリが表示されます。
ls /var/log/servers次に、サーバーのログディレクトリ「 /var/log/servers/server-ip 」を確認します。Rsyslogサーバーに複数のログファイルがあることが確認できます。
「 cat 」または「 tail 」コマンドを使用して、ログの詳細を確認できます。
cat /var/log/servers/logfile.log
tail -f /var/log/servers/logfile.log
結論
おめでとうございます!Debian 12サーバーにRsyslogをインストールしました。また、Rsyslogを介してリモートロギングを構成し、syslog UDPを介してサーバーにログを送信しました。次のステップとして、TCPおよびUDP入力モジュールの両方を設定し、RsyslogやLogstashなどのログシステムと統合することもできます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。