Rsyslog : リモートホストにログを転送する2016/09/12 |
リモートホストにログを転送して、特定ホストで複数ホストのログを一括管理できるようにします。
ここでは以下のような環境を例にします。 +----------------------+ | +----------------------+ | [ Syslog Server ] |10.0.0.30 | 10.0.0.51| [ Syslog Client ] | | dlp.srv.world +----------+----------+ node01.srv.world | | | | | +----------------------+ +----------------------+ |
[1] | ログを受信して一括管理する側のホストで、リモートホストのログを TCP 経由で受信できるよう設定します。 |
root@dlp:~#
vi /etc/rsyslog.conf # 22-23行目:コメント解除 module(load="imtcp") input(type="imtcp" port="514") # 許可する送信元を指定
$AllowedSender TCP, 127.0.0.1, 10.0.0.0/24, *.srv.world
systemctl restart rsyslog |
[2] | 送信側ホストの設定です。 |
root@node01:~#
vi /etc/rsyslog.d/50-default.conf # 例として auth,authpriv.* のログを転送 auth,authpriv.* @@dlp.srv.world:514
# 最終行に追記 (ログ受信サーバーダウン時の設定) # キューファイルのプレフィックス $ActionQueueFileName queue # キューファイルを保存する領域の最大サイズ $ActionQueueMaxDiskSpace 1g # シャットダウン時にキューをディスクに書き出す $ActionQueueSaveOnShutdown on # LinkedList方式でキューを管理 (メモリを動的に割り当てる方式) $ActionQueueType LinkedList # 受信サーバーダウン時のリトライ回数 (-1 で無制限, 0 でリトライしない $ActionResumeRetryCount -1 systemctl restart rsyslog |
[3] | 受信側のホストでログを見てみると、以下のようにログが記録されていることが分かります。 |
root@dlp:~# tail -30 /var/log/auth.log Sep 11 09:28:17 dlp systemd: pam_unix(systemd-user:session): session opened for user root by (uid=0) Sep 11 09:28:17 dlp login[2275]: ROOT LOGIN on '/dev/ttyS0' Sep 11 10:17:01 dlp CRON[2342]: pam_unix(cron:session): session opened for user root by (uid=0) Sep 11 10:17:01 dlp CRON[2342]: pam_unix(cron:session): session closed for user root Sep 11 14:26:57 node01 login[2527]: pam_unix(login:session): session closed for user ubuntu Sep 11 14:26:57 node01 systemd-logind[2032]: Removed session 6. Sep 11 14:26:57 node01 systemd: pam_unix(systemd-user:session): session closed for user ubuntu Sep 11 14:27:03 node01 login[2611]: pam_unix(login:session): session opened for user root by LOGIN(uid=0) Sep 11 14:27:03 node01 systemd: pam_unix(systemd-user:session): session opened for user root by (uid=0) Sep 11 14:27:03 node01 systemd-logind[2032]: New session 7 of user root. Sep 11 14:27:03 node01 login[2658]: ROOT LOGIN on '/dev/ttyS0' |
[4] | ホストごと、年月日ごとにログファイルを分ける場合は、受信サーバー側で以下のように設定します。 |
root@dlp:~#
vi /etc/rsyslog.d/50-default.conf # 追記:ログを書き出す場所を定義
$template Auth_log,"/var/log/auth.d/%fromhost%_%$year%%$month%%$day%.auth"
# 追記:定義した場所を指定 (ハイフンは非同期書き込みの指定) auth,authpriv.* -?Auth_log
root@dlp:~#
root@dlp:~# systemctl restart rsyslog
ll /var/log/auth.d/ total 16 -rw-r----- 1 syslog adm 483 Sep 14 14:49 dlp_20160914.auth -rw-r----- 1 syslog adm 411 Sep 14 14:49 node01.srv.world_20160914.auth |
Sponsored Link |