Red Hat Training
A Red Hat training course is available for RHEL 8
36.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
} triplet ,默认位置/etc/pki/tls/certs
和/etc/pki/tls/private
被用作受管节点上的目的地,来从控制节点传输文件。在这种情况下,文件名与 triplet 中的原始名称相同 -
如果设置了 {
ca_cert
,cert
,private_key
} triplet,则在日志配置之前,文件应位于默认路径上。 - 如果同时设置了 triplet,则会将文件从本地路径从控制节点传输到受管节点的特定路径。
-
如果设置了 {
-
ca_cert
:代表 CA 证书的路径。默认路径为/etc/pki/tls/certs/ca.pem
,文件名由用户设置。 -
认证
:代表证书的路径。默认路径为/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