Red Hat Training
A Red Hat training course is available for RHEL 8
9.2. ロギングシステムロールの使用
システム管理者は、Logging
システムロールを使用して、RHEL ホストをロギングサーバーとして設定し、多くのクライアントシステムからログを収集できます。
9.2.1. Logging
システムロール
Logging
システムロールを使用すると、ローカルおよびリモートホストにロギング設定をデプロイできます。
ロギングソリューションは、ログと複数のロギング出力を読み取る複数の方法を提供します。
たとえば、ロギングシステムは以下の入力を受け取ることができます。
- ローカルファイル
-
systemd/journal
- ネットワーク上の別のロギングシステム
さらに、ロギングシステムでは以下を出力できます。
-
/var/log
ディレクトリーのローカルファイルに保存されているログ - Elasticsearch に送信されたログ
- 別のロギングシステムに転送されたログ
Logging
システムロールでは、シナリオに合わせて入出力を組み合わせることができます。たとえば、journal
からの入力をローカルのファイルに保存しつつも、複数のファイルから読み込んだ入力を別のロギングシステムに転送してそのローカルのログファイルに保存するようにロギングソリューションを設定できます。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
file -
/usr/share/doc/rhel-system-roles/logging/
ディレクトリー - RHEL システムロール。
9.2.2. ログ
システムロールの変数
logging
システムロール Playbook では、logging_inputs
パラメーターで入力を、logging_outputs
パラメーターで出力を、そして logging_flows
パラメーターで入力と出力の関係を定義します。Logging システムロールは、ロギングシステムの追加設定オプションで、上記の変数を処理します。暗号化や自動ポート管理を有効にすることもできます。
現在、Logging
システムロールで利用可能な唯一のロギングシステムは Rsyslog です。
logging_inputs
: ロギングソリューションの入力リスト。-
name
: 入力の一意の名前。logging_flows
での使用: 入力リストおよび生成されたconfig
ファイル名の一部で使用されます。 type
: 入力要素のタイプ。type は、roles/rsyslog/{tasks,vars}/inputs/
のディレクトリー名に対応するタスクタイプを指定します。basics
:systemd
ジャーナルまたはunix
ソケットからの入力を設定する入力。-
kernel_message
:true
に設定されている場合にimklog
を読み込みます。デフォルトはfalse
です。 -
use_imuxsock
:imjournal
ではなくimuxsock
を使用します。デフォルトはfalse
です。 -
ratelimit_burst
:ratelimit_interval
内に出力できるメッセージの最大数。use_imuxsock
が false の場合、デフォルトで20000
に設定されます。use_imuxsock
が true の場合、デフォルトで200
に設定されます。 -
ratelimit_interval
:ratelimit_burst
を評価する間隔。use_imuxsock
が false の場合、デフォルトで 600 秒に設定されます。use_imuxsock
が true の場合、デフォルトで 0 に設定されます。0 はレート制限がオフであることを示します。 -
persist_state_interval
: ジャーナルの状態は、value
メッセージごとに永続化されます。デフォルトは10
です。use_imuxsock
が false の場合のみ、有効です。
-
-
files
: ローカルファイルからの入力を設定する入力。 -
Remote
: ネットワークを介して他のロギングシステムからの入力を設定する入力。
-
状態
: 設定ファイルの状態。present
またはabsent
。デフォルトはpresent
です。
-
logging_outputs
: ロギングソリューションの出力リスト。-
files
: ローカルファイルへの出力を設定する出力。 -
forwards
: 別のロギングシステムへの出力を設定する出力。 -
remote_files
: 別のロギングシステムからの出力をローカルファイルに設定する出力。
-
logging_flows
:logging_inputs
およびlogging_outputs
の関係を定義するフローのリスト。logging_flows
変数には以下が含まれます。-
name
: フローの一意の名前。 -
inputs
:logging_inputs
名の値のリスト。 -
outputs
:logging_outputs
名の値のリスト。
-
-
logging_manage_firewall
:true
に設定すると、ロギング
RHEL システムロールはファイアウォール
RHEL システムロールを使用してポートアクセスを自動的に管理します。 -
logging_manage_selinux
:true
に設定すると、logging
RHEL システムロールはselinux
RHEL システムロールを使用してポートアクセスを自動的に管理します。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
file -
/usr/share/doc/rhel-system-roles/logging/
ディレクトリー
9.2.3. ローカルの Logging
システムロールの適用
Ansible Playbook を準備して適用し、別のマシンにロギングソリューションを設定します。各マシンはログをローカルに記録します。
前提条件
- 制御ノードと管理ノードを準備している
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントには、そのノードに対する
sudo
権限がある。
デプロイメント時にシステムロールが rsyslog
をインストールするため、rsyslog
パッケージをインストールする必要はありません。
手順
~/vpn-playbook.yml
などの Playbook ファイルを次の内容で作成します。--- - name: Deploying basics input and implicit files output hosts: managed-node-01.example.com roles: - rhel-system-roles.logging vars: logging_inputs: - name: system_input type: basics logging_outputs: - name: files_output type: files logging_flows: - name: flow1 inputs: [system_input] outputs: [files_output]
Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
検証
/etc/rsyslog.conf
ファイルの構文をテストします。# rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run... rsyslogd: End of config validation run. Bye.
システムがログにメッセージを送信していることを確認します。
テストメッセージを送信します。
# logger test
/var/log/messages ログ
を表示します。以下に例を示します。# cat /var/log/messages Aug 5 13:48:31 <hostname> root[6778]: test
<hostname>
はクライアントシステムのホスト名に置き換えます。ログには、logger コマンドを入力したユーザーのユーザー名 (この場合はroot
) が含まれていることに注意してください。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
file -
/usr/share/doc/rhel-system-roles/logging/
ディレクトリー
9.2.4. ローカルの Logging
システムロールでのログのフィルタリング
rsyslog
プロパティーベースのフィルターをもとにログをフィルターするロギングソリューションをデプロイできます。
前提条件
- 制御ノードと管理ノードを準備している
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントには、そのノードに対する
sudo
権限がある。
デプロイメント時にシステムロールが rsyslog
をインストールするため、rsyslog
パッケージをインストールする必要はありません。
手順
~/vpn-playbook.yml
などの Playbook ファイルを次の内容で作成します。--- - name: Deploying files input and configured files output hosts: managed-node-01.example.com roles: - rhel-system-roles.logging vars: logging_inputs: - name: files_input type: basics logging_outputs: - name: files_output0 type: files property: msg property_op: contains property_value: error path: /var/log/errors.log - name: files_output1 type: files property: msg property_op: "!contains" property_value: error path: /var/log/others.log logging_flows: - name: flow0 inputs: [files_input] outputs: [files_output0, files_output1]
この設定を使用すると、
error
文字列を含むメッセージはすべて/var/log/errors.log
に記録され、その他のメッセージはすべて/var/log/others.log
に記録されます。error
プロパティーの値はフィルタリングする文字列に置き換えることができます。設定に合わせて変数を変更できます。
Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
検証
/etc/rsyslog.conf
ファイルの構文をテストします。# rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run... rsyslogd: End of config validation run. Bye.
システムが
error
文字列を含むメッセージをログに送信していることを確認します。テストメッセージを送信します。
# logger error
以下のように
/var/log/errors.log
ログを表示します。# cat /var/log/errors.log Aug 5 13:48:31 hostname root[6778]: error
hostname
はクライアントシステムのホスト名に置き換えます。ログには、logger コマンドを入力したユーザーのユーザー名 (この場合はroot
) が含まれていることに注意してください。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
file -
/usr/share/doc/rhel-system-roles/logging/
ディレクトリー
9.2.5. Logging
システムロールを使用したリモートロギングソリューションの適用
以下の手順に従って、Red Hat Ansible Core Playbook を準備および適用し、リモートロギングソリューションを設定します。この Playbook では、1 つ以上のクライアントが systemd-journal
からログを取得し、リモートサーバーに転送します。サーバーは、remote_rsyslog
および remote_files
からリモート入力を受信し、リモートホスト名によって名付けられたディレクトリーのローカルファイルにログを出力します。
前提条件
- 制御ノードと管理ノードを準備している
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントには、そのノードに対する
sudo
権限がある。
デプロイメント時にシステムロールが rsyslog
をインストールするため、rsyslog
パッケージをインストールする必要はありません。
手順
~/vpn-playbook.yml
などの Playbook ファイルを次の内容で作成します。--- - name: Deploying remote input and remote_files output hosts: managed-node-01.example.com roles: - rhel-system-roles.logging vars: logging_inputs: - name: remote_udp_input type: remote udp_ports: [ 601 ] - name: remote_tcp_input type: remote tcp_ports: [ 601 ] logging_outputs: - name: remote_files_output type: remote_files logging_flows: - name: flow_0 inputs: [remote_udp_input, remote_tcp_input] outputs: [remote_files_output] - name: Deploying basics input and forwards output hosts: managed-node-02.example.com roles: - rhel-system-roles.logging vars: logging_inputs: - name: basic_input type: basics logging_outputs: - name: forward_output0 type: forwards severity: info target: <host1.example.com> udp_port: 601 - name: forward_output1 type: forwards facility: mail target: <host1.example.com> tcp_port: 601 logging_flows: - name: flows0 inputs: [basic_input] outputs: [forward_output0, forward_output1] [basic_input] [forward_output0, forward_output1]
<host1.example.com>
はロギングサーバーに置き換えます。注記必要に応じて、Playbook のパラメーターを変更することができます。
警告ロギングソリューションは、サーバーまたはクライアントシステムの SELinux ポリシーで定義され、ファイアウォールで開放されたポートでしか機能しません。デフォルトの SELinux ポリシーには、ポート 601、514、6514、10514、および 20514 が含まれます。別のポートを使用するには、クライアントシステムおよびサーバーシステムで SELinux ポリシーを変更 します。
Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
検証
クライアントとサーバーシステムの両方で、
/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.
クライアントシステムがサーバーにメッセージを送信することを確認します。
クライアントシステムで、テストメッセージを送信します。
# logger test
サーバーシステムで、
/var/log/<host2.example.com>/messages
ログを表示します。次に例を示します。# cat /var/log/<host2.example.com>/messages Aug 5 13:48:31 <host2.example.com> root[6778]: test
<host2.example.com>
は、クライアントシステムのホスト名に置き換えます。ログには、logger コマンドを入力したユーザーのユーザー名 (この場合はroot
) が含まれていることに注意してください。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
file -
/usr/share/doc/rhel-system-roles/logging/
ディレクトリー
9.2.6. TLS での logging システムロールの使用
Transport Layer Security (TLS) は、コンピューターネットワーク上でセキュアな通信を可能にするために設計された暗号化プロトコルです。
管理者は、logging
RHEL システムロールを使用し、Red Hat Ansible Automation Platform を使用したセキュアなログ転送を設定できます。
9.2.6.1. TLS を使用したクライアントロギングの設定
logging
システムロールを持つ Ansible Playbook を使用して、RHEL クライアントでのロギングを設定し、TLS 暗号化を使用してリモートロギングシステムにログを転送できます。
この手順では、秘密鍵と証明書を作成し、Ansible インベントリーのクライアントグループ内のすべてのホストに TLS を設定します。TLS プロトコルは、メッセージ送信を暗号化し、ネットワーク経由でログを安全に転送します。
証明書を作成するために、Playbook で certificate
システムロールを呼び出す必要はありません。ログ記録
RHEL システムロールはこれを自動的に呼び出します。
CA が作成された証明書に署名できるようにするには、管理対象ノードが IdM ドメインに登録されている必要があります。
前提条件
- 制御ノードと管理ノードを準備している
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントには、そのノードに対する
sudo
権限がある。 - 管理対象ノードが IdM ドメインに登録されている。
手順
~/vpn-playbook.yml
などの Playbook ファイルを次の内容で作成します。--- - name: Deploying files input and forwards output with certs hosts: managed-node-01.example.com roles: - rhel-system-roles.logging vars: logging_certificates: - name: logging_cert dns: ['localhost', 'www.example.com'] ca: ipa logging_pki_files: - ca_cert: /local/path/to/ca_cert.pem cert: /local/path/to/logging_cert.pem private_key: /local/path/to/logging_cert.pem logging_inputs: - name: input_name type: files input_log_path: /var/log/containers/*.log logging_outputs: - name: output_name type: forwards target: your_target_host tcp_port: 514 tls: true pki_authmode: x509/name permitted_server: 'server.example.com' logging_flows: - name: flow_name inputs: [input_name] outputs: [output_name]
Playbook は以下のパラメーターを使用します。
logging_certificates
-
このパラメーターの値は、
certificate
ロールの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 の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
file -
/usr/share/doc/rhel-system-roles/logging/
ディレクトリー - Requesting certificates using RHEL System Roles
9.2.6.2. TLS を使用したサーバーロギングの設定
logging
システムロールを持つ Ansible Playbook を使用して、RHEL サーバーでのロギングを設定し、TLS 暗号化を使用してリモートロギングシステムからログを受信するように設定できます。
この手順では、秘密鍵と証明書を作成し、Ansible インベントリーのサーバーグループ内のすべてのホストに TLS を設定します。
証明書を作成するために、Playbook で certificate
システムロールを呼び出す必要はありません。ログ記録
RHEL システムロールはこれを自動的に呼び出します。
CA が作成された証明書に署名できるようにするには、管理対象ノードが IdM ドメインに登録されている必要があります。
前提条件
- 制御ノードと管理ノードを準備している
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントには、そのノードに対する
sudo
権限がある。 - 管理対象ノードが IdM ドメインに登録されている。
手順
~/vpn-playbook.yml
などの Playbook ファイルを次の内容で作成します。--- - name: Deploying remote input and remote_files output with certs hosts: managed-node-01.example.com roles: - rhel-system-roles.logging vars: logging_certificates: - name: logging_cert dns: ['localhost', 'www.example.com'] ca: ipa logging_pki_files: - ca_cert: /local/path/to/ca_cert.pem cert: /local/path/to/logging_cert.pem private_key: /local/path/to/logging_cert.pem logging_inputs: - name: input_name type: remote tcp_ports: 514 tls: true permitted_clients: ['clients.example.com'] logging_outputs: - name: output_name type: remote_files remote_log_path: /var/log/remote/%FROMHOST%/%PROGRAMNAME:::secpath-replace%.log async_writing: true client_count: 20 io_buffer_size: 8192 logging_flows: - name: flow_name inputs: [input_name] outputs: [output_name]
Playbook は以下のパラメーターを使用します。
logging_certificates
-
このパラメーターの値は、
certificate
ロールの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 の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
file -
/usr/share/doc/rhel-system-roles/logging/
ディレクトリー - Requesting certificates using RHEL System Roles
9.2.7. RELP での logging
システムロールの使用
Reliable Event Logging Protocol (RELP) とは、TCP ネットワークを使用する、データとメッセージロギング用のネットワーキングプロトコルのことです。イベントメッセージを確実に配信するので、メッセージの損失が許されない環境で使用できます。
RELP の送信側はコマンド形式でログエントリーを転送し、受信側は処理後に確認応答します。RELP は、一貫性を保つために、転送されたコマンドごとにトランザクション番号を保存し、各種メッセージの復旧します。
RELP Client と RELP Server の間に、リモートロギングシステムを検討することができます。RELP Client はリモートロギングシステムにログを転送し、RELP Server はリモートロギングシステムから送信されたすべてのログを受け取ります。
管理者は logging
システムロールを使用して、ログエントリーが確実に送受信されるようにロギングシステムを設定することができます。
9.2.7.1. RELP を使用したクライアントロギングの設定
logging
システムロールを使用して、ローカルマシンにログインしている RHEL システムでロギングを設定し、Ansible Playbook を実行して、ログを RELP でリモートロギングシステムに転送できます。
この手順では、Ansible インベントリーの client
グループ内の全ホストに RELP を設定します。RELP 設定は Transport Layer Security (TLS) を使用して、メッセージ送信を暗号化し、ネットワーク経由でログを安全に転送します。
前提条件
- 制御ノードと管理ノードを準備している
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントには、そのノードに対する
sudo
権限がある。
手順
~/vpn-playbook.yml
などの Playbook ファイルを次の内容で作成します。--- - 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
file -
/usr/share/doc/rhel-system-roles/logging/
ディレクトリー
9.2.7.2. RELP を使用したサーバーログの設定
logging
システムロールを使用して、RHEL システムのログインをサーバーとして設定し、Ansible Playbook を実行して RELP でリモートロギングシステムからログを受信できます。
以下の手順では、Ansible インベントリーの server
グループ内の全ホストに RELP を設定します。RELP 設定は TLS を使用して、メッセージ送信を暗号化し、ネットワーク経由でログを安全に転送します。
前提条件
- 制御ノードと管理ノードを準備している
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントには、そのノードに対する
sudo
権限がある。
手順
~/vpn-playbook.yml
などの Playbook ファイルを次の内容で作成します。--- - 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
file -
/usr/share/doc/rhel-system-roles/logging/
ディレクトリー
9.2.8. 関連情報
- RHEL システムロールを使用するためのコントロールノードと管理対象ノードの準備
-
rhel-system-roles
パッケージでインストールされたドキュメントは、/usr/share/ansible/roles/rhel-system-roles.logging/README.html
にあります。 - RHEL システムロール。
-
ansible-playbook(1)
の man ページ。