6.2. logging システムロールの使用
システム管理者は、logging システムロールを使用して、Red Hat Enterprise Linux ホストをロギングサーバーとして設定し、多数のクライアントシステムからログを収集できます。
6.2.1. logging RHEL システムロールを使用したローカルログメッセージのフィルタリング リンクのコピーリンクがクリップボードにコピーされました!
logging RHEL システムロールのプロパティーベースのフィルターを使用すると、さまざまな条件に基づいてローカルログメッセージをフィルタリングできます。その結果、たとえば以下を実現できます。
- 明確なログ: トラフィック量の多い環境では、ログが急増することがあります。エラーなどの特定のメッセージに注目することで、問題をより早く特定できるようになります。
- システムパフォーマンスの最適化: ログの量が多すぎると、通常、システムパフォーマンスが低下します。重要なイベントのみを選択的にログに記録することで、リソースの枯渇を防ぎ、システムをより効率的に運用できます。
- セキュリティーの強化: システムエラーやログイン失敗などのセキュリティーメッセージを効率的にフィルタリングすることで、関連するログのみを取得できます。これは、違反を検出し、コンプライアンス基準を満たすために重要です。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプル Playbook で指定されている設定は次のとおりです。
logging_inputs-
ロギングの入力ディクショナリーのリストを定義します。
type: basicsオプションを指定すると、systemdジャーナルまたは Unix ソケットからの入力が対象になります。 logging_outputs-
ロギングの出力ディクショナリーのリストを定義します。
type: filesオプションにより、ローカルファイル (通常は/var/log/ディレクトリー内) にログを保存できます。property: msg、property: contains、およびproperty_value: errorオプションを指定すると、error文字列を含むすべてのログが/var/log/errors.logファイルに保存されます。property: msg、property: !contains、およびproperty_value: errorオプションを指定すると、他のすべてのログが/var/log/others.logファイルに保存されます。error値は、フィルタリングする必要がある文字列に置き換えることができます。 logging_flows-
ロギングのフローディクショナリーのリストを定義して、
logging_inputsとlogging_outputsの関係を指定します。inputs: [files_input]オプションは、ログの処理を開始する入力のリストを指定します。outputs: [files_output0, files_output1]オプションは、ログ送信先の出力のリストを指定します。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.logging/README.mdファイルを参照してください。Playbook の構文を検証します。
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
管理対象ノードで、
/etc/rsyslog.confファイルの構文をテストします。rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run... rsyslogd: End of config validation run. Bye.
# rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run... rsyslogd: End of config validation run. Bye.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 管理対象ノードで、システムが
error文字列を含むメッセージをログに送信することを確認します。テストメッセージを送信します。
logger error
# logger errorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のように
/var/log/errors.logログを表示します。cat /var/log/errors.log Aug 5 13:48:31 hostname root[6778]: error
# cat /var/log/errors.log Aug 5 13:48:31 hostname root[6778]: errorCopy to Clipboard Copied! Toggle word wrap Toggle overflow hostnameはクライアントシステムのホスト名に置き換えます。ログには、logger コマンドを入力したユーザーのユーザー名 (この場合はroot) が含まれていることに注意してください。
6.2.2. logging RHEL システムロールを使用したリモートロギングソリューションの適用 リンクのコピーリンクがクリップボードにコピーされました!
logging RHEL システムロールを使用して、1 つ以上のクライアントで systemd-journal サービスからログを取得し、リモートサーバーに転送するリモートロギングソリューションを設定できます。このサーバーは、remote_rsyslog および remote_files 設定からリモート入力を受け取り、リモートホスト名によって指定されたディレクトリー内のローカルファイルにログを出力します。
その結果、たとえば次のようなユースケースに対応できます。
- ログの集中管理: 複数のマシンのログメッセージを 1 つのストレージポイントから収集、アクセス、管理することで、日々の監視とトラブルシューティングのタスクが簡素化されます。また、このユースケースでは、ログメッセージを確認するために個々のマシンにログインする必要性が軽減されます。
- セキュリティーの強化: ログメッセージを 1 カ所に集中して保存すると、セキュアで改ざん不可能な環境にログを保存しやすくなります。このような環境により、セキュリティーインシデントをより効果的に検出して対応し、監査要件を満たすことが容易になります。
- ログ分析の効率向上: 複数のマシンまたはサービスにまたがる複雑な問題を迅速にトラブルシューティングするには、複数のシステムからのログメッセージを相関させることが重要です。これにより、さまざまなソースからのイベントをすばやく分析し、相互参照することができます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo権限がある。 - サーバーまたはクライアントシステムの SELinux ポリシーでポートを定義し、それらのポートのファイアウォールを開く。デフォルトの SELinux ポリシーには、ポート 601、514、6514、10514、および 20514 が含まれます。別のポートを使用するには、クライアントおよびサーバーシステムの SELinux ポリシーの変更 を参照してください。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプル Playbook の最初のプレイで指定されている設定は次のとおりです。
logging_inputs-
ロギングの入力ディクショナリーのリストを定義します。
type: remoteオプションを指定すると、ネットワークを介した他のロギングシステムからのリモート入力が対象になります。udp_ports: [ 601 ]オプションは、監視する UDP ポート番号のリストを定義します。tcp_ports: [ 601 ]オプションは、監視する TCP ポート番号のリストを定義します。udp_portsとtcp_portsの両方が設定されている場合、udp_portsが使用され、tcp_portsは削除されます。 logging_outputs-
ロギングの出力ディクショナリーのリストを定義します。
type: remote_filesオプションを指定すると、ログの送信元であるリモートホストとプログラム名ごとに、出力がローカルファイルに保存されます。 logging_flows-
ロギングのフローディクショナリーのリストを定義して、
logging_inputsとlogging_outputsの関係を指定します。inputs: [remote_udp_input、remote_tcp_input]オプションは、ログの処理を開始する入力のリストを指定します。outputs: [remote_files_output]オプションは、ログ送信先の出力のリストを指定します。
サンプル Playbook の 2 番目のプレイで指定されている設定は次のとおりです。
logging_inputs-
ロギングの入力ディクショナリーのリストを定義します。
type: basicsオプションを指定すると、systemdジャーナルまたは Unix ソケットからの入力が対象になります。 logging_outputs-
ロギングの出力ディクショナリーのリストを定義します。
type: forwardsオプションにより、ネットワーク経由でリモートログサーバーにログを送信できます。severity: infoオプションは、重大度が情報のログメッセージを示します。facility: mailオプションは、ログメッセージを生成するシステムプログラムの種類を示します。target: <host1.example.com>オプションは、リモートログサーバーのホスト名を指定します。udp_port: 601/tcp_port: 601オプションは、リモートログサーバーがリッスンする UDP/TCP ポートを定義します。 logging_flows-
ロギングのフローディクショナリーのリストを定義して、
logging_inputsとlogging_outputsの関係を指定します。inputs: [basic_input]オプションは、ログの処理を開始する入力のリストを指定します。outputs: [forward_output0, forward_output1]オプションは、ログ送信先の出力のリストを指定します。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.logging/README.mdファイルを参照してください。Playbook の構文を検証します。
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
クライアントとサーバーシステムの両方で、
/etc/rsyslog.confファイルの構文をテストします。rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
# rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントシステムがサーバーにメッセージを送信することを確認します。
クライアントシステムで、テストメッセージを送信します。
logger test
# logger testCopy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーシステムで、
/var/log/<host2.example.com>/messagesログを表示します。次に例を示します。cat /var/log/<host2.example.com>/messages Aug 5 13:48:31 <host2.example.com> root[6778]: test
# cat /var/log/<host2.example.com>/messages Aug 5 13:48:31 <host2.example.com> root[6778]: testCopy to Clipboard Copied! Toggle word wrap Toggle overflow <host2.example.com>は、クライアントシステムのホスト名に置き換えます。ログには、logger コマンドを入力したユーザーのユーザー名 (この場合はroot) が含まれていることに注意してください。
6.2.3. TLS を使用した logging RHEL システムロールの使用 リンクのコピーリンクがクリップボードにコピーされました!
Transport Layer Security (TLS) は、コンピューターネットワーク上でセキュアな通信を可能にするために設計された暗号化プロトコルです。
RHEL システムロールの logging を使用すると、ログメッセージのセキュアな転送を設定して、1 つ以上のクライアントで systemd-journal サービスからログを取得し、TLS を使用してリモートサーバーに転送できます。
通常、リモートロギングソリューションでログを転送するための TLS は、インターネットなどの信頼性の低いネットワークやパブリックネットワーク経由で機密データを送信する場合に使用されます。また、TLS で証明書を使用することで、クライアントから正しい信頼できるサーバーにログを確実に転送できます。これにより、"中間者攻撃" などの攻撃を防ぐことができます。
6.2.3.1. TLS を使用したクライアントロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
logging RHEL システムロールを使用すると、RHEL クライアントでのロギングを設定し、TLS 暗号化を使用してログをリモートロギングシステムに転送できます。
この手順では、秘密鍵と証明書を作成します。その後、Ansible インベントリーのクライアントグループ内の全ホストに TLS を設定します。TLS プロトコルは、メッセージ送信を暗号化し、ネットワーク経由でログを安全に転送します。
証明書を作成するために、Playbook で certificate RHEL システムロールを呼び出す必要はありません。このロールは、logging_certificates 変数が設定されている場合、logging RHEL システムロールによって自動的に呼び出されます。
CA が作成された証明書に署名できるようにするには、管理対象ノードが IdM ドメインに登録されている必要があります。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo権限がある。 - 管理対象ノードが IdM ドメインに登録されている。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプル Playbook で指定されている設定は次のとおりです。
logging_certificates-
このパラメーターの値は、
certificateRHEL システムロールのcertificate_requestsに渡され、秘密鍵と証明書の作成に使用されます。 logging_pki_filesこのパラメーターを使用すると、TLS に使用する CA、証明書、および鍵ファイルを検索するためにロギングで使用するパスとその他の設定 (サブパラメーター
ca_cert、ca_cert_src、cert、cert_src、private_key、private_key_src、およびtlsで指定) を設定できます。注記logging_certificatesを使用して管理対象ノードにファイルを作成する場合は、ca_cert_src、cert_src、およびprivate_key_srcを使用しないでください。これらは、logging_certificatesによって作成されていないファイルのコピーに使用されます。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_certで指定された場所にコピーされる、コントロールノード上の CA 証明書ファイルへのパスを表します。logging_certificatesを使用する場合は、これを使用しないでください。 cert_src-
ターゲットホストの
certで指定された場所にコピーされる、コントロールノード上の証明書ファイルへのパスを表します。logging_certificatesを使用する場合は、これを使用しないでください。 private_key_src-
ターゲットホストの
private_keyで指定された場所にコピーされる、コントロールノード上の秘密鍵ファイルへのパスを表します。logging_certificatesを使用する場合は、これを使用しないでください。 tls-
このパラメーターを
trueに設定すると、ネットワーク上でログがセキュアに転送されます。セキュアなラッパーが必要ない場合は、tls: falseに設定します。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.logging/README.mdファイルを参照してください。Playbook の構文を検証します。
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.mdファイル -
/usr/share/doc/rhel-system-roles/logging/ディレクトリー -
/usr/share/ansible/roles/rhel-system-roles.certificate/README.mdファイル -
/usr/share/doc/rhel-system-roles/certificate/ディレクトリー - RHEL システムロールを使用した証明書の要求
-
rsyslog.conf(5)およびsyslog(3)man ページ
6.2.3.2. TLS を使用したサーバーロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
logging RHEL システムロールを使用すると、RHEL サーバーでのロギングを設定し、TLS 暗号化を使用してリモートロギングシステムからログを受信するようにサーバーを設定できます。
この手順では、秘密鍵と証明書を作成します。その後、Ansible インベントリーのサーバーグループ内の全ホストに TLS を設定します。
証明書を作成するために、Playbook で certificate RHEL システムロールを呼び出す必要はありません。logging RHEL システムロールがこのロールを自動的に呼び出します。
CA が作成された証明書に署名できるようにするには、管理対象ノードが IdM ドメインに登録されている必要があります。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo権限がある。 - 管理対象ノードが IdM ドメインに登録されている。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプル Playbook で指定されている設定は次のとおりです。
logging_certificates-
このパラメーターの値は、
certificateRHEL システムロールのcertificate_requestsに渡され、秘密鍵と証明書の作成に使用されます。 logging_pki_filesこのパラメーターを使用すると、TLS に使用する CA、証明書、および鍵ファイルを検索するためにロギングで使用するパスとその他の設定 (サブパラメーター
ca_cert、ca_cert_src、cert、cert_src、private_key、private_key_src、およびtlsで指定) を設定できます。注記logging_certificatesを使用して管理対象ノードにファイルを作成する場合は、ca_cert_src、cert_src、およびprivate_key_srcを使用しないでください。これらは、logging_certificatesによって作成されていないファイルのコピーに使用されます。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_certで指定された場所にコピーされる、コントロールノード上の CA 証明書ファイルへのパスを表します。logging_certificatesを使用する場合は、これを使用しないでください。 cert_src-
ターゲットホストの
certで指定された場所にコピーされる、コントロールノード上の証明書ファイルへのパスを表します。logging_certificatesを使用する場合は、これを使用しないでください。 private_key_src-
ターゲットホストの
private_keyで指定された場所にコピーされる、コントロールノード上の秘密鍵ファイルへのパスを表します。logging_certificatesを使用する場合は、これを使用しないでください。 tls-
このパラメーターを
trueに設定すると、ネットワーク上でログがセキュアに転送されます。セキュアなラッパーが必要ない場合は、tls: falseに設定します。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.logging/README.mdファイルを参照してください。Playbook の構文を検証します。
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.4. RELP で logging RHEL システムロールの使用 リンクのコピーリンクがクリップボードにコピーされました!
Reliable Event Logging Protocol (RELP) とは、TCP ネットワークを使用する、データとメッセージロギング用のネットワーキングプロトコルのことです。イベントメッセージを確実に配信するので、メッセージの損失が許されない環境で使用できます。
RELP の送信側はコマンド形式でログエントリーを転送し、受信側は処理後に確認応答します。RELP は、一貫性を保つために、転送されたコマンドごとにトランザクション番号を保存し、各種メッセージの復旧します。
RELP Client と RELP Server の間に、リモートロギングシステムを検討することができます。RELP Client はリモートロギングシステムにログを転送し、RELP Server はリモートロギングシステムから送信されたすべてのログを受け取ります。このユースケースを実現するには、logging RHEL システムロールを使用して、ログエントリーが確実に送受信されるようにロギングシステムを設定できます。
6.2.4.1. RELP を使用したクライアントロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
logging RHEL システムロールを使用すると、ローカルに保存されたログメッセージを RELP を使用してリモートロギングシステムに転送するように設定できます。
この手順では、Ansible インベントリーの clients グループ内の全ホストに RELP を設定します。RELP 設定は Transport Layer Security (TLS) を使用して、メッセージ送信を暗号化し、ネットワーク経由でログを安全に転送します。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプル Playbook で指定されている設定は次のとおりです。
target- リモートロギングシステムが稼働しているホスト名を指定する必須パラメーターです。
ポート- リモートロギングシステムがリッスンしているポート番号です。
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 で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.logging/README.mdファイルを参照してください。Playbook の構文を検証します。
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.4.2. RELP を使用したサーバーログの設定 リンクのコピーリンクがクリップボードにコピーされました!
logging RHEL システムロールを使用すると、ログメッセージを RELP を使用してリモートロギングシステムから受信するようにサーバーを設定できます。
以下の手順では、Ansible インベントリーの server グループ内の全ホストに RELP を設定します。RELP 設定は TLS を使用して、メッセージ送信を暗号化し、ネットワーク経由でログを安全に転送します。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプル Playbook で指定されている設定は次のとおりです。
ポート- リモートロギングシステムがリッスンしているポート番号です。
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 で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.logging/README.mdファイルを参照してください。Playbook の構文を検証します。
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow