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サーバーとクライアントをセットアップする方法を説明しました。これで、中央の場所からクライアントを監視できるようになりました。ご不明な点がございましたら、お気軽にお問い合わせください。