GNU/Linux >> Linux の 問題 >  >> Debian

Debian11でRsyslogサーバーをセットアップする方法

Rsyslogは、すべてのログファイルをIPネットワーク経由で集中ログサーバーに転送する無料のオープンソースログソフトウェアです。これは、システム管理者が中心点からすべてのサーバーを監視するのに役立ちます。 Rsyslogはクライアント/サーバーモデルで動作し、TCP/UDPプロトコルを介してポート514でリモートクライアントからログを受信します。

この投稿では、Debian11でRsyslogサーバーをセットアップする方法を紹介します。

前提条件
  • Debian11を実行している2台のサーバー。
  • ルートパスワードはサーバーで構成されています。

Rsyslogをインストール

まず、サーバーマシンにRsyslogサーバーパッケージをインストールする必要があります。次のコマンドを使用してインストールできます:

apt-get install rsyslog -y

インストール後、次のコマンドを使用してRsyslogのステータスを確認します。

systemctl status rsyslog

次の出力が表示されます。

? rsyslog.service - System Logging Service
     Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-10-03 13:35:32 UTC; 1h 44min ago
TriggeredBy: ? syslog.socket
       Docs: man:rsyslogd(8)
             man:rsyslog.conf(5)
             https://www.rsyslog.com/doc/
   Main PID: 283 (rsyslogd)
      Tasks: 4 (limit: 2341)
     Memory: 5.0M
        CPU: 90ms
     CGroup: /system.slice/rsyslog.service
             ??283 /usr/sbin/rsyslogd -n -iNONE

Oct 03 13:35:32 debian11 systemd[1]: Starting System Logging Service...
Oct 03 13:35:32 debian11 rsyslogd[283]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd.  [v8.2102.0]
Oct 03 13:35:32 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] start
Oct 03 13:35:32 debian11 systemd[1]: Started System Logging Service.
Oct 03 13:35:34 debian11 systemd[1]: rsyslog.service: Sent signal SIGHUP to main process 283 (rsyslogd) on client request.
Oct 03 13:45:33 debian11 rsyslogd[283]: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="283" x-info="https://www.rsyslog.com"] rsyslog>

Rsyslogを構成する

次に、サーバーモードで実行するようにRsyslogを構成する必要があります。これを行うには、Rsyslogのメイン構成ファイルを編集します。

nano /etc/rsyslog.conf

次の行のコメントを解除します:

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

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

次に、次の行を追加して、クライアントシステムからの受信ログを保存するためのテンプレートを定義します。

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?remote-incoming-logs

ファイルを保存して閉じてから、Rsyslogサービスを再起動して変更を適用します。

systemctl restart rsyslog

この時点で、Rsyslogが起動し、ポート514でリッスンします。次のコマンドを使用して確認できます。

ss -tunlp | grep 514

次の出力が表示されます。

udp   UNCONN 0      0                              0.0.0.0:514       0.0.0.0:*    users:(("rsyslogd",pid=26276,fd=6))                                                                                                                                                                                                                                                                             
udp   UNCONN 0      0                                 [::]:514          [::]:*    users:(("rsyslogd",pid=26276,fd=7))                                                                                                                                                                                                                                                                             
tcp   LISTEN 0      25                             0.0.0.0:514       0.0.0.0:*    users:(("rsyslogd",pid=26276,fd=8))                                                                                                                                                                                                                                                                             
tcp   LISTEN 0      25                                [::]:514          [::]:*    users:(("rsyslogd",pid=26276,fd=9))                                                                                                                                                                                                                                                                             

Rsyslog用にファイアウォールを構成する

次に、ポート514がUFWファイアウォールを通過できるようにする必要があります。次のコマンドで許可できます:

ufw allow 514/tcp
ufw allow 514/udp

次に、ファイアウォールをリロードして変更を適用します。

ufw reload

Rsyslogクライアントの構成

次に、ログファイルをRsyslogサーバーに送信するようにRsyslogクライアントを構成する必要があります。これは、Rsyslogのメイン構成ファイルを編集することで実行できます。

nano /etc/rsyslog.conf

ファイルの最後に次の行を追加します。

#Enable sending system logs over UDP to rsyslog server
*.* @rsyslog-server-ip:514

#Enable sending system logs over TCP to rsyslog server
*.* @@rsyslog-server-ip:514

また、rsyslogサーバーがダウンしたときにディスクキューを設定するには、次の行を追加します。

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

ファイルを保存して閉じてから、Rsyslogサービスを再起動して変更を適用します。

systemctl restart rsyslog
クライアントのログファイルを確認する

すべてのクライアントのログファイルは、サーバーマシンの/ var/logディレクトリに保存されます。

次のコマンドで確認できます:

ls -l /var/log/

クライアントシステムのホスト名に対応するクライアントのログファイルが表示されます。

alternatives.log    auth.log.2.gz  daemon.log	    debian11	dpkg.log    kern.log.1	   messages.1	  private      syslog.3.gz
clientpc            auth.log.3.gz  daemon.log.1     debug	dpkg.log.1  kern.log.2.gz  messages.2.gz  runit        syslog.4.gz
apt		    btmp	   daemon.log.3.gz  debug.2.gz	icinga2     kern.log.4.gz  messages.4.gz  syslog
auth.log.1	    csm.log	   dbconfig-common  debug.4.gz	kern.log    messages	   ntpstats	  syslog.2.gz

ご覧のとおり、 clientpc クライアントのシステムのログディレクトリです。

結論

上記のガイドでは、Debian 11でRsyslogサーバーとクライアントをセットアップする方法を説明しました。これで、中央の場所からクライアントを監視できるようになりました。ご不明な点がございましたら、お気軽にお問い合わせください。


Debian
  1. Ubuntu18.04LTSでRsyslogサーバーをセットアップする方法

  2. Debian11にRedisサーバーをインストールする方法

  3. Ubuntu 20.04でRsyslogサーバーをセットアップする-その方法は?

  1. Debian9または10でSSHを有効にする方法

  2. MySQL 8.0/5.7をDebian11/Debian10にインストールする方法

  3. Rsyslogを使用して集中ログサーバーをセットアップする方法

  1. Debianでvsftpdをセットアップする方法

  2. Debian9でVSFTPDを使用してFTPサーバーをセットアップする方法

  3. Debian9にMinecraftサーバーをインストールする方法