CentOS 8
Sponsored Link

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

module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")
# 許可する送信元を追記

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

[2] 受信側ホストで Firewalld を有効にしている場合は、ポートの許可が必要です。
[root@dlp ~]#
firewall-cmd --add-port=514/tcp --permanent

success
[root@dlp ~]#
firewall-cmd --reload

success
[3] 送信側ホストの設定です。
# ローカルディスクに保存する既存設定に加えて

# リモートホストにもログを転送する場合の設定

[root@node01 ~]#
vi /etc/rsyslog.conf
# 最終行に追記

action(type="omfwd"
       queue.filename="fwdRule_dlp.srv.world"
       queue.maxdiskspace="1g"
       queue.saveonshutdown="on"
       queue.type="LinkedList"
       action.resumeRetryCount="-1"
       Target="dlp.srv.world" Port="514" Protocol="tcp")

# 特定のファシリティのみ転送する場合の設定

# 例として [authpriv] に設定

[root@node01 ~]#
vi /etc/rsyslog.conf
# ローカルディスクにログを保存しない場合は既存設定をコメント化

#authpriv.*                   /var/log/secure
authpriv.* action(type="omfwd"
       queue.filename="fwdRule_dlp.srv.world"
       queue.maxdiskspace="1g"
       queue.saveonshutdown="on"
       queue.type="LinkedList"
       action.resumeRetryCount="-1"
       Target="dlp.srv.world" Port="514" Protocol="tcp")

# [queue.filename] : キューファイル名

# [queue.maxdiskspace] : キューに確保するディスクスペース

# [queue.saveonshutdown=on] : シャットダウン時にキューデータをディスクに保存

# [queue.type=LinkedList] : 10,000 メッセージを保持可能な非同期キュー

# [action.resumeRetryCount=-1] : サーバーが無応答の場合リトライし続ける

# [Target=***] : ログ受信サーバーを指定

[root@node01 ~]#
systemctl restart rsyslog

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

Feb  5 19:50:34 node01 rsyslogd[2022]: environment variable TZ is not set, auto correcting this to TZ=/etc/localtime  [v8.37.0-13.el8 try http://www.rsyslog.com/e/2442 ]
Feb  5 19:50:34 node01 systemd[1]: Started System Logging Service.
Feb  5 19:50:34 node01 rsyslogd[2022]: [origin software="rsyslogd" swVersion="8.37.0-13.el8" x-pid="2022" x-info="http://www.rsyslog.com"] start
Feb  5 19:54:37 node01 sssd[kcm][1970]: Shutting down
Feb  5 19:59:39 node01 systemd[1]: Starting dnf makecache...
Feb  5 19:59:40 node01 dnf[2037]: Metadata cache refreshed recently.
Feb  5 19:59:40 node01 systemd[1]: Started dnf makecache.
Feb  5 20:06:01 dlp systemd[1]: Starting dnf makecache...
Feb  5 20:06:01 dlp dnf[2254]: Metadata cache refreshed recently.
Feb  5 20:06:01 dlp systemd[1]: Started dnf makecache.
関連コンテンツ