13.7. 使用带有 RELP 的 logging 系统角色
可靠的事件日志协议(RELP)是一种通过 TCP 网络记录数据和消息的网络协议。它确保了事件消息的可靠传递,您可以在不容许任何消息丢失的环境中使用它。
RELP 发送者以命令的形式传输日志条目,接收者在处理后确认这些条目。为确保一致性,RELP 将事务数保存到传输的命令中,以便进行任何类型的消息恢复。
您可以考虑在 RELP 客户端和 RELP Server 间的远程日志系统。RELP 客户端将日志传送给远程日志系统,RELP 服务器接收由远程日志系统发送的所有日志。
管理员可以使用 logging
系统角色将日志系统配置为可靠地发送和接收日志条目。
13.7.1. 配置带有 RELP 的客户端日志
您可以使用 logging
系统角色在 RHEL 系统中配置日志,这些日志记录在本地机器上,并通过运行 Ansible playbook 来将日志传送到带有 RELP 的远程日志系统。
此流程对 Ansible 清单中 客户端
组中的所有主机配置 RELP。RELP 配置使用传输层安全(TLS)来加密消息传输,保证日志在网络上安全传输。
先决条件
- 您有在要配置 RELP 的受管节点上运行 playbook 的权限。
- 受管节点列在控制节点上的清单文件中。
-
ansible
和rhel-system-roles
软件包已安装在控制节点上。
流程
使用以下内容创建一个
playbook.yml
文件:--- - name: Deploying basic input and relp output hosts: clients 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
: 这是一个必需的参数,用于指定运行远程日志系统的主机名。 -
端口
:显示远程日志记录系统正在侦听的端口号。 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
:接受身份验证模式作为名称
或指纹
。 -
permitted_servers
:日志客户端允许通过 TLS 连接和发送日志的服务器列表。 -
输入
:日志记录输入字典列表。 -
输出
:日志输出字典列表。
-
可选:验证 playbook 语法。
# ansible-playbook --syntax-check playbook.yml
运行 playbook:
# ansible-playbook -i inventory_file playbook.yml
13.7.2. 配置带有 RELP 的服务器日志
您可以使用 logging
系统角色将 RHEL 系统中的日志配置为服务器,并通过运行 Ansible playbook 从带有 RELP 的远程日志系统接收日志。
此流程对 Ansible 清单中 服务器
组中的所有主机配置 RELP。RELP 配置使用 TLS 加密消息传输,以保证在网络上安全地传输日志。
先决条件
- 您有在要配置 RELP 的受管节点上运行 playbook 的权限。
- 受管节点列在控制节点上的清单文件中。
-
ansible
和rhel-system-roles
软件包已安装在控制节点上。
流程
使用以下内容创建一个
playbook.yml
文件:--- - name: Deploying remote input and remote_files output hosts: server 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 使用以下设置:
-
端口
:显示远程日志记录系统正在侦听的端口号。 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
:接受身份验证模式作为名称
或指纹
。 -
permitted_clients
:日志记录服务器允许通过 TLS 连接和发送日志的客户端列表。 -
输入
:日志记录输入字典列表。 -
输出
:日志输出字典列表。
-
可选:验证 playbook 语法。
# ansible-playbook --syntax-check playbook.yml
运行 playbook:
# ansible-playbook -i inventory_file playbook.yml