syslogサーバーを構築する
ネットワーク機器やサーバーからのログを集約するため、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