15.4. 使用带有 RELP 的 logging RHEL 系统角色
可靠的事件日志协议(RELP)是一种通过 TCP 网络记录数据和消息的网络协议。它确保了事件消息的可靠传递,您可以在不容许任何消息丢失的环境中使用它。
RELP 发送者以命令的形式传输日志条目,接收器会在处理后确认它们。为确保一致性,RELP 将事务数保存到传输的命令中,以便进行任何类型的消息恢复。
您可以考虑在 RELP 客户端和 RELP Server 间的远程日志系统。RELP 客户端将日志传送给远程日志系统,RELP 服务器接收由远程日志系统发送的所有日志。要实现这种用例,您可以使用 logging
RHEL 系统角色将日志记录系统配置为可靠地发送和接收日志条目。
15.4.1. 配置带有 RELP 的客户端日志
您可以使用 logging
RHEL 系统角色配置保存在带有 RELP 的远程日志系统的日志消息传输。
此流程对 Ansible 清单中 客户端
组中的所有主机配置 RELP。RELP 配置使用传输层安全(TLS)来加密消息传输,保证日志在网络上安全传输。
先决条件
- 您已准备好控制节点和受管节点
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Configure client-side of the remote logging solution using RELP hosts: managed-node-01.example.com tasks: - name: Deploy basic input and RELP output ansible.builtin.include_role: name: 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_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
作为受管节点上的目的地,以便从控制节点传输文件。在这种情况下,文件名与 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
-
接受身份验证模式为
name
或fingerprint
。 permitted_servers
- 日志客户端允许通过 TLS 连接和发送日志的服务器列表。
输入
- 日志输入字典列表。
输出
- 日志输出字典列表。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
文件。验证 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/
目录 -
rsyslog.conf (5)
和syslog (3)
手册页
15.4.2. 配置带有 RELP 的服务器日志
您可以使用 logging
RHEL 系统角色配置服务器,以从带有 RELP 的远程日志记录系统接收日志信息。
此流程对 Ansible 清单中 服务器
组中的所有主机配置 RELP。RELP 配置使用 TLS 加密消息传输,以保证在网络上安全地传输日志。
先决条件
- 您已准备好控制节点和受管节点
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Configure server-side of the remote logging solution using RELP hosts: managed-node-01.example.com tasks: - name: Deploying remote input and remote_files output ansible.builtin.include_role: name: 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_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
作为受管节点上的目的地,以便从控制节点传输文件。在这种情况下,文件名与 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
-
接受身份验证模式为
name
或fingerprint
。 permitted_clients
- 日志记录服务器允许通过 TLS 连接和发送日志的客户端列表。
输入
- 日志输入字典列表。
输出
- 日志输出字典列表。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
文件。验证 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/
目录 -
rsyslog.conf (5)
和syslog (3)
手册页