CentOS 7
 

Rsyslog : リモートホストにログを転送する
2015/06/18
 
リモートホストにログを転送して、特定ホストで複数ホストのログを一括管理できるようにします。
ここでは以下のような環境を例にします。
+----------------------+          |          +----------------------+
| [  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
# 19-20行目:コメント解除

$ModLoad imtcp
$InputTCPServerRun 514
# 許可する送信元を指定

$AllowedSender TCP, 127.0.0.1, 10.0.0.0/24, *.srv.world
[root@dlp ~]#
systemctl restart rsyslog

[2] 送信側ホストの設定です。
[root@node01 ~]#
vi /etc/rsyslog.conf
# 例として authpriv.* のログを転送

authpriv.*    
@@dlp.srv.world:514
# 84行目:全てコメント解除

$ActionQueueFileName fwdRule1 # unique name prefix for spool files
$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
$ActionQueueType LinkedList   # run asynchronously
$ActionResumeRetryCount -1    # infinite retries if host is down

[root@node01 ~]#
systemctl restart rsyslog

[3] 受信側のホストでログを見てみると、以下のようにログが記録されていることが分かります。
[root@dlp ~]#
tail -10 /var/log/secure

Jun 17 11:24:47 dlp sshd[9582]: Connection closed by 127.0.0.1 [preauth]
Jun 17 11:27:46 node01 login: pam_unix(login:session): session closed for user root
Jun 17 11:27:52 node01 login: pam_unix(login:auth): check pass; user unknown
Jun 17 11:27:52 node01 login: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0
Jun 17 11:27:54 node01 login: FAILED LOGIN 1 FROM ttyS0 FOR (unknown), User not known to the underlyin
Jun 17 11:27:59 node01 login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
Jun 17 11:27:59 node01 login: DIALUP AT ttyS0 BY root
Jun 17 11:27:59 node01 login: ROOT LOGIN ON ttyS0
Jun 17 11:28:44 node01 su: pam_unix(su-l:session): session opened for user cent by root(uid=0)
Jun 17 11:28:54 node01 sudo: cent : TTY=ttyS0 ; PWD=/home/cent ; USER=root ; COMMAND=/bin/cat /etc/sha
[4] ホストごと、年月日ごとにログファイルを分ける場合は、サーバー側で以下のように設定します。
[root@dlp ~]#
vi /etc/rsyslog.conf
# 追記:ログを書き出す場所を定義

$template Secure_log,"/var/log/secure.d/%fromhost%_%$year%%$month%%$day%.secure"
# 追記:定義した場所を指定 (ハイフンは非同期書き込みの指定)

authpriv.*    
-?Secure_log
[root@dlp ~]#
systemctl restart rsyslog
[root@dlp ~]#
ll /var/log/secure.d

total 8
-rw-r--r-- 1 root root 350 Jun 17 11:34 dlp_20150617.secure
-rw-r--r-- 1 root root 380 Jun 17 11:34 node01.srv.world_20150617.secure
 
Tweet