15.6. RELP で logging RHEL システムロールの使用
Reliable Event Logging Protocol (RELP) とは、TCP ネットワークを使用する、データとメッセージロギング用のネットワーキングプロトコルのことです。イベントメッセージを確実に配信するので、メッセージの損失が許されない環境で使用できます。
RELP の送信側はコマンド形式でログエントリーを転送し、受信側は処理後に確認応答します。RELP は、一貫性を保つために、転送されたコマンドごとにトランザクション番号を保存し、各種メッセージの復旧します。
RELP Client と RELP Server の間に、リモートロギングシステムを検討することができます。RELP Client はリモートロギングシステムにログを転送し、RELP Server はリモートロギングシステムから送信されたすべてのログを受け取ります。
管理者は、logging
RHEL システムロールを使用して、ログエントリーが確実に送受信されるようにロギングシステムを設定できます。
15.6.1. RELP を使用したクライアントロギングの設定
logging
RHEL システムロールを使用すると、ローカルマシンにログが記録されている RHEL システムのロギングを設定し、Ansible Playbook を実行して RELP を使用してリモートロギングシステムにログを転送できます。
この手順では、Ansible インベントリーの client
グループ内の全ホストに RELP を設定します。RELP 設定は Transport Layer Security (TLS) を使用して、メッセージ送信を暗号化し、ネットワーク経由でログを安全に転送します。
前提条件
- コントロールノードと管理対象ノードを準備している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Deploying basic input and relp output hosts: managed-node-01.example.com roles: - rhel-system-roles.logging vars: logging_inputs: - name: basic_input type: basics logging_outputs: - name: relp_client type: relp target: logging.server.com port: 20514 tls: true ca_cert: /etc/pki/tls/certs/ca.pem cert: /etc/pki/tls/certs/client-cert.pem private_key: /etc/pki/tls/private/client-key.pem pki_authmode: name permitted_servers: - '*.server.example.com' logging_flows: - name: example_flow inputs: [basic_input] outputs: [relp_client]
Playbook では次の設定を使用します。
target
- リモートロギングシステムが稼働しているホスト名を指定する必須パラメーターです。
port
- リモートロギングシステムがリッスンしているポート番号です。
tls
ネットワーク上でログをセキュアに転送します。セキュアなラッパーが必要ない場合は、
tls
変数をfalse
に設定します。デフォルトではtls
パラメーターは true に設定されますが、RELP を使用する場合には鍵/証明書およびトリプレット {ca_cert
、cert
、private_key
} や {ca_cert_src
、cert_src
、private_key_src
} が必要です。-
{
ca_cert_src
、cert_src
、private_key_src
} のトリプレットを設定すると、デフォルトの場所 (/etc/pki/tls/certs
と/etc/pki/tls/private
) が、コントロールノードからファイルを転送するため、管理対象ノードの宛先として使用されます。この場合、ファイル名はトリプレットの元の名前と同じです。 -
{
ca_cert
、cert
、private_key
} トリプレットが設定されている場合は、ファイルはロギング設定の前にデフォルトのパスに配置されている必要があります。 - トリプレットの両方が設定されている場合には、ファイルはコントロールノードのローカルのパスから管理対象ノードの特定のパスへ転送されます。
-
{
ca_cert
-
CA 証明書へのパスを表します。デフォルトのパスは
/etc/pki/tls/certs/ca.pem
で、ファイル名はユーザーが設定します。 cert
-
証明書へのパスを表します。デフォルトのパスは
/etc/pki/tls/certs/server-cert.pem
で、ファイル名はユーザーが設定します。 private_key
-
秘密鍵へのパスを表します。デフォルトのパスは
/etc/pki/tls/private/server-key.pem
で、ファイル名はユーザーが設定します。 ca_cert_src
-
ローカルの CA 証明書ファイルパスを表します。これはターゲットホストにコピーされます。
ca_cert
を指定している場合は、その場所にコピーされます。 cert_src
-
ローカルの証明書ファイルパスを表します。これはターゲットホストにコピーされます。
cert
を指定している場合には、その証明書が場所にコピーされます。 private_key_src
-
ローカルキーファイルのパスを表します。これはターゲットホストにコピーされます。
private_key
を指定している場合は、その場所にコピーされます。 pki_authmode
-
name
またはfingerprint
の認証モードを使用できます。 permitted_servers
- ロギングクライアントが、TLS 経由での接続およびログ送信を許可するサーバーのリスト。
inputs
- ロギング入力ディクショナリーのリスト。
outputs
- ロギング出力ディクショナリーのリスト。
Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
ファイル -
/usr/share/doc/rhel-system-roles/logging/
ディレクトリー
15.6.2. RELP を使用したサーバーログの設定
logging
RHEL システムロールを使用して、RHEL システムでのロギングをサーバーとして設定し、Ansible Playbook を実行して RELP を使用してリモートロギングシステムからログを受信できます。
以下の手順では、Ansible インベントリーの server
グループ内の全ホストに RELP を設定します。RELP 設定は TLS を使用して、メッセージ送信を暗号化し、ネットワーク経由でログを安全に転送します。
前提条件
- コントロールノードと管理対象ノードを準備している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Deploying remote input and remote_files output hosts: managed-node-01.example.com roles: - rhel-system-roles.logging vars: logging_inputs: - name: relp_server type: relp port: 20514 tls: true ca_cert: /etc/pki/tls/certs/ca.pem cert: /etc/pki/tls/certs/server-cert.pem private_key: /etc/pki/tls/private/server-key.pem pki_authmode: name permitted_clients: - '*example.client.com' logging_outputs: - name: remote_files_output type: remote_files logging_flows: - name: example_flow inputs: relp_server outputs: remote_files_output
Playbook は以下の設定を使用します。
port
- リモートロギングシステムがリッスンしているポート番号です。
tls
ネットワーク上でログをセキュアに転送します。セキュアなラッパーが必要ない場合は、
tls
変数をfalse
に設定します。デフォルトではtls
パラメーターは true に設定されますが、RELP を使用する場合には鍵/証明書およびトリプレット {ca_cert
、cert
、private_key
} や {ca_cert_src
、cert_src
、private_key_src
} が必要です。-
{
ca_cert_src
、cert_src
、private_key_src
} のトリプレットを設定すると、デフォルトの場所 (/etc/pki/tls/certs
と/etc/pki/tls/private
) が、コントロールノードからファイルを転送するため、管理対象ノードの宛先として使用されます。この場合、ファイル名はトリプレットの元の名前と同じです。 -
{
ca_cert
、cert
、private_key
} トリプレットが設定されている場合は、ファイルはロギング設定の前にデフォルトのパスに配置されている必要があります。 - トリプレットの両方が設定されている場合には、ファイルはコントロールノードのローカルのパスから管理対象ノードの特定のパスへ転送されます。
-
{
ca_cert
-
CA 証明書へのパスを表します。デフォルトのパスは
/etc/pki/tls/certs/ca.pem
で、ファイル名はユーザーが設定します。 cert
-
証明書へのパスを表します。デフォルトのパスは
/etc/pki/tls/certs/server-cert.pem
で、ファイル名はユーザーが設定します。 private_key
-
秘密鍵へのパスを表します。デフォルトのパスは
/etc/pki/tls/private/server-key.pem
で、ファイル名はユーザーが設定します。 ca_cert_src
-
ローカルの CA 証明書ファイルパスを表します。これはターゲットホストにコピーされます。
ca_cert
を指定している場合は、その場所にコピーされます。 cert_src
-
ローカルの証明書ファイルパスを表します。これはターゲットホストにコピーされます。
cert
を指定している場合には、その証明書が場所にコピーされます。 private_key_src
-
ローカルキーファイルのパスを表します。これはターゲットホストにコピーされます。
private_key
を指定している場合は、その場所にコピーされます。 pki_authmode
-
name
またはfingerprint
の認証モードを使用できます。 permitted_clients
- ロギングサーバーが TLS 経由での接続およびログ送信を許可するクライアントのリスト。
inputs
- ロギング入力ディクショナリーのリスト。
outputs
- ロギング出力ディクショナリーのリスト。
Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
ファイル -
/usr/share/doc/rhel-system-roles/logging/
ディレクトリー