14.4. TCP 経由のサーバーへのリモートロギングの設定
TCP プロトコル経由でログメッセージをサーバーに転送するようにシステムを設定できます。omfwd
プラグインは、UDP または TCP による転送を提供します。デフォルトのプロトコルは UDP です。プラグインは組み込まれているのでロードする必要はありません。
前提条件
-
rsyslog
パッケージが、サーバーに報告する必要のあるクライアントシステムにインストールされている。 - リモートロギング用にサーバーを設定している。
- 指定したポートが SELinux で許可され、ファイアウォールで開いている。
-
システムには、
policycoreutils-python-utils
パッケージが含まれています。このパッケージは、標準以外のポートを SELinux 設定に追加するためのsemanage
コマンドを提供します。
手順
/etc/rsyslog.d/
ディレクトリーに新規ファイル (例:10-remotelog.conf
) を作成し、以下のコンテンツを挿入します。*.* action(type="omfwd" queue.type="linkedlist" queue.filename="example_fwd" action.resumeRetryCount="-1" queue.saveOnShutdown="on" target="example.com" port="30514" protocol="tcp" )
ここでは、以下のようになります。
-
queue.type="linkedlist"
設定は、LinkedList インメモリーキューを有効にします。 -
queue.filename
設定は、ディスクストレージを定義します。バックアップファイルは、前のグローバルのworkDirectory
ディレクティブで指定された作業ディレクトリーにexample_fwd
接頭辞を付けて作成されます。 -
action.resumeRetryCount -1
設定は、サーバーが応答しない場合に接続を再試行するときにrsyslog
がメッセージを破棄しないようにします。 -
queue.saveOnShutdown="on"
設定は、rsyslog
がシャットダウンした場合にインメモリーデータを保存します。 最後の行は、受信したすべてのメッセージをロギングサーバーに転送します。ポートの指定は任意です。
この設定では、
rsyslog
はメッセージをサーバーに送信しますが、リモートサーバーに到達できない場合には、メッセージをメモリーに保持します。ディスク上にあるファイルは、設定されたメモリーキュー領域がrsyslog
で不足するか、シャットダウンする必要がある場合にのみ作成されます。これにより、システムパフォーマンスが向上します。
注記Rsyslog は設定ファイル
/etc/rsyslog.d/
を字句順に処理します。-
rsyslog
サービスを再起動します。# systemctl restart rsyslog
検証
クライアントシステムがサーバーにメッセージを送信することを確認するには、以下の手順に従います。
クライアントシステムで、テストメッセージを送信します。
# logger test
サーバーシステムで、
/var/log/messages
ログを表示します。以下に例を示します。# cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: test
hostname はクライアントシステムのホスト名です。ログには、
logger
コマンドを入力したユーザーのユーザー名 (この場合はroot
) が含まれていることに注意してください。
関連情報
-
rsyslogd(8)
およびrsyslog.conf(5)
man ページ。 -
/usr/share/doc/rsyslog/html/index.html
ファイルにrsyslog-doc
パッケージでインストールされたドキュメント。