リモートロギング · 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

install rsyslog

インストールが完了したら、以下の「 systemctl 」コマンドを実行して「 rsyslog 」サーバーを開始し、有効にします。その後、実行中であることを確認します。

sudo systemctl enable --now rsyslog  
sudo systemctl status rsyslog

以下の出力で、Rsyslogが実行中であり、有効になっていることが確認できます。

check rsyslog

UFW(Uncomplicated Firewall)の設定

Rsyslogがインストールされたら、UFW(Uncomplicated Firewall)をインストールして構成します。OpenSSHサービス用にポート「22」を開き、Rsyslog用にポート「514」を開きます。そして、UFWサービスを開始して有効にします。

UFWをインストールするには、以下の「 apt 」コマンドを実行します。インストールを確認するために「 Y 」と入力します。

sudo apt install ufw

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 」が有効になっていることが確認できます。

setup ufw

Rsyslogがリモートサーバーからログを受信する設定

Rsyslogをインストールし、UFWを構成したので、リモートサーバーからログを受信するためにRsyslogを設定する準備が整いました。これを実現するためには、「/etc/rsyslog.conf」ファイルを修正し、以下を構成する必要があります:

  1. リモートサーバーからUDP経由でログを受信するために「 imudp 」モジュールを有効にする
  2. オプションで、TCP経由でログを受信するために「 imtcp 」を有効にする
  3. 特定のサブネットがリモートでログを送信できるように「 AllowedSender 」オプションを有効にする
  4. Rsyslog用のカスタムテンプレートを追加する
  5. Rsyslogの構成を確認する
  6. 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 」が実行中であることが確認できます。

check rsyslog service

さらに、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

install rsyslog client

次に、デフォルトの構成「 /etc/rsyslog.conf 」ファイルを「 nano 」エディタで開きます。

sudo nano /etc/rsyslog.conf

以下の構成を追加して、Rsyslogサーバー「 192.168.10.10 」にログを送信します。この場合、kernelcron、および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サーバーに送信されることが確認できます。

check rsyslog service

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

check log

結論

おめでとうございます!Debian 12サーバーにRsyslogをインストールしました。また、Rsyslogを介してリモートロギングを構成し、syslog UDPを介してサーバーにログを送信しました。次のステップとして、TCPおよびUDP入力モジュールの両方を設定し、RsyslogやLogstashなどのログシステムと統合することもできます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。