​syslogサーバーを構築する

メモ:  Category:ubuntu

ネットワーク機器やサーバーからのログを集約するため、syslog サーバーを構築していきます。 集めたログをどのように処理するかなど、今後検討できればと...

rsyslog の設定

導入した Ubuntu サーバー(24.04.0)には rsyslog がインストールされていましたので、更新だけしておきます。

$ sudo apt-get update

rsyslog は、追加したい機能がモジュールという形で用意されており、設定ファイルに必要なモジュールを追記していきます。

モジュールは、様々なものが提供されており主に次の種類に分類されています。(https://www.rsyslog.com/doc/configuration/modules/)

  • Output Modules
  • Input Modules
  • Parser Modules
  • Message Modification Modules
  • String Generator Modules
  • Library Modules
  • Where are the modules integrated into the Message Flow?

今回は、 UDP や TCP による入力を受け付けたいため、設定ファイルでコメントになっているモジュールと「module(load=“imtcp”)」入力ソース「input(type=“imtcp” port=“514”)」のコメントアウトを外します。

udp も同様に修正しています。

#################
#### 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")

rsyslog の設定はできましたが、指定したポートが開いていないのでファイアウォールの設定を変更します。

ファイアウォールの設定をするため ufw の状態を確認します。

$ sudo ufw status
Status: inactive

「 inactive 」になっていたので、 ufw を有効にします。

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

「現在の ssh 接続を中断させる可能性があります。操作を続けますか?」と聞かれるので「 y 」を入力します。

これで設定可能になったので、必要なポートを開けていきます。

$ sudo ufw allow 514/tcp
$ sudo ufw allow 514/udp

ファイアウォールの設定が正しくできたかは、次のコマンドで確認できます。

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
514/tcp                    ALLOW       Anywhere
514/udp                    ALLOW       Anywhere
514/tcp (v6)               ALLOW       Anywhere (v6)
514/udp (v6)               ALLOW       Anywhere (v6)

設定を反映するため、 rsyslog を再起動します。

$ sudo systemctl restart rsyslog

設定に問題がなく、 rsyslog が実行されているか確認します。 Active:active(running) と表示されており、エラーが出ていないようであれば設定は完了です。

$ sudo systemctl status rsyslog
● rsyslog.service - System Logging Service
     Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; preset: enabled)
     Active: active (running) since Mon 2024-11-11 11:25:47 UTC; 1h 47min ago

​ 動作確認する

今回の設定は、最小限の設定のため /var/log/syslog  に ログ が書き込まれます。

次のコマンドを実行し、ログが出力されるか確認します。

$ logger -p local0.info "test"

次の「tail -f」 コマンドで、ログが上がってくることが確認できます。

$ tail -f /var/log/syslog

bluenote by BBB