Red Hat Training

A Red Hat training course is available for RHEL 8

9.2. 使用日志记录系统角色

作为系统管理员,您可以使用 logging 系统角色将 RHEL 主机配置为日志服务器,从多个客户端系统收集日志。

9.2.1. 日志记录系统角色

使用 logging RHEL 系统角色,您可以在本地和远程主机上部署日志配置。

日志记录解决方案提供多种读取日志和多个日志记录输出的方法。

例如,日志记录系统可接受以下输入:

  • 本地文件
  • systemd/journal
  • 网络上的另一个日志记录系统

另外,日志记录系统还可有以下输出:

  • 日志存储在 /var/log 目录中的本地文件中
  • 日志被发送到 Elasticsearch
  • 日志被转发到另一个日志系统

使用 logging RHEL 系统角色,您可以组合输入和输出以适应您的场景。例如,您可以配置一个日志解决方案,将来自 日志 的输入存储在本地文件中,而从文件读取的输入则被转发到另一个日志系统,并存储在本地日志文件中。

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.logging/README.md file
  • /usr/share/doc/rhel-system-roles/logging/ directory
  • RHEL 系统角色

9.2.2. 日志记录系统角色的变量

logging RHEL 系统角色 playbook 中,您可以在 logging_inputs 参数中定义输入,在 logging_outputs 参数中定义输出,以及在 logging_flows 参数中定义输入和输出之间的关系。日志记录 RHEL 系统角色使用附加选项处理这些变量来配置日志记录系统。您还可以启用加密或自动端口管理。

注意

目前,logging RHEL 系统角色中唯一可用的日志记录系统是 Rsyslog

  • logging_inputs :日志记录解决方案的输入列表。

    • 名称 :输入的唯一名称。用于 logging_flows : 输入列表以及生成的 config 文件名称的一部分。
    • 类型 :输入元素的类型。type 指定与 roles/rsyslog/{tasks,vars}/inputs/ 中的目录名称相对应的任务类型。

      • 基本 :配置 systemd 日志或 unix 套接字输入。

        • kernel_message :如果设为 true,则加载 imklog。默认值为 false
        • 使用_imuxsock :使用 imuxsock 而不是 imjournal。默认值为 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: Journal 状态保留每个 的消息。默认为 10。仅在 use_imuxsock 为 false 时有效。
      • 文件 :输入配置本地文件输入。
      • 远程 :输入通过网络配置来自其他日志记录系统的输入。
    • state:配置文件的状态。presentabsent。默认为 present
  • logging_outputs :日志记录解决方案的输出列表。

    • 文件 :输出将输出配置为本地文件。
    • 转发: 输出配置输出到另一个日志记录系统。
    • remote_files :输出将输出配置为另一个日志记录系统到本地文件。
  • logging_flows :定义 logging_inputslogging_outputs 之间关系的流列表。logging_flows 变量具有以下键:

    • 名称 :流的唯一名称
    • 输入logging_inputs 名称值列表
    • 输出logging_outputs 名称值列表。
  • logging_manage_firewall :如果设为 true,则 logging RHEL 系统角色将使用 firewall 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/ directory

9.2.3. 应用本地 日志记录系统角色

准备和应用 Ansible playbook,以便在一组独立的机器上配置日志记录解决方案。每台机器在本地记录日志。

先决条件

注意

您不必安装 rsyslog 软件包,因为 RHEL 系统角色会在部署时安装 rsyslog

流程

  1. 创建包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - 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]
  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

验证

  1. 测试 /etc/rsyslog.conf 文件的语法:

    # rsyslogd -N 1
    rsyslogd: version 8.1911.0-6.el8, config validation run...
    rsyslogd: End of config validation run. Bye.
  2. 验证系统是否向日志发送信息:

    1. 发送测试信息:

      # logger test
    2. 查看 /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/ directory

9.2.4. 过滤本地 日志记录系统角色 中的日志

您可以部署一个日志解决方案,该方案基于 rsyslog 属性的过滤器过滤日志。

先决条件

注意

您不必安装 rsyslog 软件包,因为 RHEL 系统角色会在部署时安装 rsyslog

流程

  1. 创建包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - 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 属性值替换为您要用来过滤的字符串。

    您可以根据您的偏好修改变量。

  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

验证

  1. 测试 /etc/rsyslog.conf 文件的语法:

    # rsyslogd -N 1
    rsyslogd: version 8.1911.0-6.el8, config validation run...
    rsyslogd: End of config validation run. Bye.
  2. 验证系统是否向日志发送包含 error 字符串的信息:

    1. 发送测试信息:

      # logger error
    2. 查看 /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/ directory

9.2.5. 使用日志记录系统角色应用远程日志解决方案

按照以下步骤准备并应用 Red Hat Ansible Core playbook 来配置远程日志记录解决方案。在本 playbook 中,一个或多个客户端从 systemd-journal 获取日志,并将它们转发到远程服务器。服务器从 remote_rsyslogremote_files 接收远程输入,并将日志输出到由远程主机名命名的目录中的本地文件。

先决条件

注意

您不必安装 rsyslog 软件包,因为 RHEL 系统角色会在部署时安装 rsyslog

流程

  1. 创建包含以下内容的 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: 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 策略

  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

验证

  1. 在客户端和服务器系统上测试 /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.
  2. 验证客户端系统向服务器发送信息:

    1. 在客户端系统中发送测试信息:

      # logger test
    2. 在服务器系统上,查看 /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/ directory

9.2.6. 使用带有 TLS 的日志记录系统角色

传输层安全性(TLS)是一种加密协议,旨在允许计算机网络上的安全通信。

作为管理员,您可以使用 logging RHEL 系统角色使用红帽 Ansible Automation Platform 配置日志的安全传输。

9.2.6.1. 配置带有 TLS 的客户端日志

您可以使用带有 logging RHEL 系统角色的 Ansible playbook 在 RHEL 客户端上配置日志,并使用 TLS 加密将日志传送到远程日志系统。

此流程创建一个私钥和证书,并在 Ansible 清单中客户端组的所有主机上配置 TLS。TLS 对信息的传输进行加密,确保日志在网络安全传输。

注意

您不必在 playbook 中调用 certificate RHEL 系统角色来创建证书。logging RHEL 系统角色会自动调用它。

要让 CA 能够为创建的证书签名,受管节点必须在 IdM 域中注册。

先决条件

  • 您已准备好控制节点和受管节点
  • 以可在受管主机上运行 playbook 的用户登录到控制节点。
  • 用于连接到受管节点的帐户具有 sudo 权限。
  • 受管节点已在 IdM 域中注册。

流程

  1. 创建包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - 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
    此参数的值传递至证书 RHEL 系统角色中的 certificate _requests,用于创建私钥和证书。
    logging_pki_files

    使用这个参数,您可以配置日志记录用来查找 CA 证书和用于 TLS 的密钥文件的路径和其他设置,使用以下子参数指定:ca_certca_cert_srccertcert_srcprivate_keyprivate_key_srctls

    注意

    如果您使用 logging_certificates 在目标节点上创建文件,请不要使用 ca_cert_srccert_srcprivate_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 证书文件的路径,该路径被复制到目标主机上由 ca_cert 指定的位置。如果使用 logging_certificates,请不要使用它。
    cert_src
    代表控制节点上证书文件的路径,该文件的路径被复制到目标主机上由 cert 指定的位置。如果使用 logging_certificates,请不要使用它。
    private_key_src
    代表控制节点上私钥文件的路径,该路径被复制到目标主机上由 private_key 指定的位置。如果使用 logging_certificates,请不要使用它。
    tls
    将此参数设为 true 以确保通过网络安全地传输日志。如果您不想要一个安全的包装程序,您可以设置 tls: false
  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

其他资源

9.2.6.2. 配置带有 TLS 的服务器日志

您可以使用带有 logging RHEL 系统角色的 Ansible playbook 在 RHEL 服务器上配置日志,并将其设置为使用 TLS 加密从远程日志系统接收日志。

此流程创建一个私钥和证书,并在 Ansible 清单中服务器组中的所有主机上配置 TLS。

注意

您不必在 playbook 中调用 certificate RHEL 系统角色来创建证书。logging RHEL 系统角色会自动调用它。

要让 CA 能够为创建的证书签名,受管节点必须在 IdM 域中注册。

先决条件

  • 您已准备好控制节点和受管节点
  • 以可在受管主机上运行 playbook 的用户登录到控制节点。
  • 用于连接到受管节点的帐户具有 sudo 权限。
  • 受管节点已在 IdM 域中注册。

流程

  1. 创建包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - 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
    此参数的值传递至证书 RHEL 系统角色中的 certificate _requests,用于创建私钥和证书。
    logging_pki_files

    使用这个参数,您可以配置日志记录用来查找 CA 证书和用于 TLS 的密钥文件的路径和其他设置,使用以下子参数指定:ca_certca_cert_srccertcert_srcprivate_keyprivate_key_srctls

    注意

    如果您使用 logging_certificates 在目标节点上创建文件,请不要使用 ca_cert_srccert_srcprivate_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 证书文件的路径,该路径被复制到目标主机上由 ca_cert 指定的位置。如果使用 logging_certificates,请不要使用它。
    cert_src
    代表控制节点上证书文件的路径,该文件的路径被复制到目标主机上由 cert 指定的位置。如果使用 logging_certificates,请不要使用它。
    private_key_src
    代表控制节点上私钥文件的路径,该路径被复制到目标主机上由 private_key 指定的位置。如果使用 logging_certificates,请不要使用它。
    tls
    将此参数设为 true 以确保通过网络安全地传输日志。如果您不想要一个安全的包装程序,您可以设置 tls: false
  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

其他资源

9.2.7. 使用带有 RELP 的日志系统角色

可靠的事件日志协议(RELP)是一种通过 TCP 网络记录数据和消息的网络协议。它确保了事件消息的可靠传递,您可以在不容许任何消息丢失的环境中使用它。

RELP 发送者以命令的形式传输日志条目,接收者在处理后确认这些条目。为确保一致性,RELP 将事务数保存到传输的命令中,以便进行任何类型的消息恢复。

您可以考虑在 RELP 客户端和 RELP Server 间的远程日志系统。RELP 客户端将日志传送给远程日志系统,RELP 服务器接收由远程日志系统发送的所有日志。

管理员可以使用 logging RHEL 系统角色将日志记录系统配置为可靠地发送和接收日志条目。

9.2.7.1. 配置带有 RELP 的客户端日志

您可以使用 logging RHEL 系统角色在 RHEL 系统中配置日志,这些日志记录在本地机器上,并通过运行 Ansible playbook 将日志转发到带有 RELP 的远程日志系统。

此流程对 Ansible 清单中 客户端 组中的所有主机配置 RELP。RELP 配置使用传输层安全(TLS)来加密消息传输,保证日志在网络上安全传输。

先决条件

流程

  1. 创建包含以下内容的 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。在与 RELP 工作时,默认的 tls 参数被设置为 true,且需要密钥/证书和 triplets {ca_certcertprivate_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 被用作受管节点上的目的地,以便从控制节点传输文件。在这种情况下,文件名与 triplet 中的原始名称相同
    • 如果设置了 {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
    接受身份验证模式为 namefingerprint
    permitted_servers
    日志客户端允许通过 TLS 连接和发送日志的服务器列表。
    输入
    日志输入字典列表。
    输出
    日志输出字典列表。
  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.logging/README.md file
  • /usr/share/doc/rhel-system-roles/logging/ directory

9.2.7.2. 配置带有 RELP 的服务器日志

您可以使用 logging RHEL 系统角色将 RHEL 系统中的日志配置为服务器,并通过运行 Ansible playbook 从带有 RELP 的远程日志系统接收日志。

此流程对 Ansible 清单中 服务器 组中的所有主机配置 RELP。RELP 配置使用 TLS 加密消息传输,以保证在网络上安全地传输日志。

先决条件

流程

  1. 创建包含以下内容的 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。在与 RELP 工作时,默认的 tls 参数被设置为 true,且需要密钥/证书和 triplets {ca_certcertprivate_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 被用作受管节点上的目的地,以便从控制节点传输文件。在这种情况下,文件名与 triplet 中的原始名称相同
    • 如果设置了 {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
    接受身份验证模式为 namefingerprint
    permitted_clients
    日志记录服务器允许通过 TLS 连接和发送日志的客户端列表。
    输入
    日志输入字典列表。
    输出
    日志输出字典列表。
  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.logging/README.md file
  • /usr/share/doc/rhel-system-roles/logging/ directory

9.2.8. 其他资源