前回の記事と今回やりたいこと
前回の記事では、USB メモリを自動マウントして syslog の保存先として利用できるようにして、rsyslogd をインストールしました。
今回の記事では、syslog サーバの設定を行い、他のサーバからのログを収集できるようにします。
rsyslogd の設定ファイルについて
rsyslogd の設定は、/etc/rsyslog.conf と /etc/rsyslog.d/ 以下の .conf ファイルで行います。いわゆる drop-in 形式となっており、/etc/rsyslog.conf に記載した内容を基本として、/etc/rsyslog.d 以下のファイルが上書きする形となっています。
今回は、どのサーバからどのプロトコルとポートでログを受け付けるかを /etc/rsyslog.conf で、それ以外を drop-in ファイルである /etc/rsyslog.d/10-default.conf で記述することとしました。
まずは /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") <== コメントアウト
ご覧の通りで、上が UDP で受け付けるかどうかと受け付ける場合のポート、下が TCP で受け付けるかどうかと受け付ける場合のポートの設定です。これは、どちらのプロトコルのどのポートで受け付けるか、ご自身の環境に合わせて適宜設定をしましょう。
続いて、コメントアウトした部分のすぐ下に以下の2行を追記しました。
# allowed host settings
$AllowedSender UDP, 127.0.0.1, 192.168.2.0/24
$AllowedSender TCP, 127.0.0.1, 192.168.2.0/24
こちらもご覧の通りで、上が UDP においてログ転送を受け付ける IP アドレス、下が TCP においてログ転送を受け付ける IP アドレスとなります。今回は家庭内の各デバイスやサーバからログを収集するため、我が家の回線に合わせて設定しています (コードの IP アドレスはサンプルで、実際のネットワークセグメントは異なっています)。
/etc/rsyslog.conf での設定は、以上となります。続いて、/etc/rsyslog.d/10-default.conf での設定を行います。
インストールした直後は /etc/rsyslog.d/ 以下にファイルがない状態のはずです。10-default.conf も存在していませんので、vim で新規作成を行います。
$ sudo vim /etc/rsyslog.d/10-default.conf
まっさらなファイルに以下の内容を追記して、保存します。
$template logFileName,"/mnt/usb/rsyslogd/%hostname%/%syslogfacility-text%/%$year%%$month%%$day%.log"
*.* -?logFileName
今回は、前回の記事で作成した USB メモリ内の保存領域に、ホストごとかつ項目 (ファシリティ) ごとかつ1日ごとに全てのログを保存したいため、その旨を記述しています。
この状態で rsyslogd を再起動しましょう。
$ sudo systemctl restart rsyslog
以後、以下のように、USB の中にログファイルが蓄積され始めたと思います。
rpdays@rp004:~ $ ls -lha /mnt/usb/rsyslogd/
total 260K
drwxr-xr-x 5 root root 64K Jan 1 1970 .
drwxr-xr-x 3 root root 4.0K Nov 3 08:50 ..
drwxr-xr-x 7 root root 64K Nov 3 13:17 rp004
最初の段階では、まだ他のサーバからのログ転送を行っていないため、この syslog サーバを構築したローカルホスト rp004 のもののみ存在しています。
次は実際にデバイスやサーバからログを転送したいのですが、そろそろ記事が長くなってきましたので、別の記事にまとめたいと思います。

コメント