zaki work log

作業ログやら生活ログやらなんやら

rsyslogでリモートへログを送りつける設定

今回は、リモートのrsyslogへログを送りつける設定について。
(図の左側のrsyslogの設定です)

f:id:zaki-hmkc:20200326062208p:plain

対向のrsyslog(図の右側)は前回の記事の、リモートからログの受信を受け付けるrsyslogの設定が入ってる前提

zaki-hmkc.hatenablog.com

基本

実は/etc/rsyslog.confにリモート送信のサンプル設定がコメントアウトされてる。

# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514

(手元のrpm版v8.24では)「forwarding rule」のうしろーーの方に記述されてぱっと見わかりづらいけど、書式はこの通り

<ファシリティ>.<ログレベル>      @@remote-host.example.org:514

既存設定における/var/log/messagesなどのファイル名を記述してる右側の設定部分に、@@を頭につけたホスト名:ポート番号という記述で、対象ホストへTCP転送する設定となる。(UDP転送の場合は@を一つ指定)

設定例

# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
*.* @manager-dev:514

これでこのrsyslogが動作しているホスト上のログは、manager-devホストへ514/UDPで転送される。

# リモートへ転送設定してるホストでlogger実行
[zaki@registry ~]$ logger "hello" -i -t "remote-test"
[zaki@registry ~]$

すると転送先のmanager-devホストの/var/log/messagesに以下が記録される

[root@manager-dev ~]# tail /var/log/messages
:
:
Mar 26 05:59:19 registry remote-test[59228]: hello

ちなみに転送元のホストでも既存の/var/log/messagesへの出力は有効なままなので、こちらも記録される

[root@registry ~]# tail /var/log/messages
:
:
Mar 26 05:59:19 registry remote-test[59228]: hello

-pでファシリティを変更すれば

[zaki@registry ~]$ logger "hello" -i -t "remote-test" -p "mail.err"

転送先のrsyslogの設定に従って出力は振り分けられる

[root@manager-dev ~]# tail -f /var/log/maillog
:
:
Mar 26 06:02:27 registry remote-test[59838]: hello

フィルタやログ分割はまたそのうち…