16.4.2. 配置带有 RELP 的服务器日志
您可以使用 logging RHEL 系统角色配置服务器,来从带有 RELP 的远程日志记录系统接收日志信息。
RELP 配置使用 TLS 加密消息传输,以保证在网络上安全地传输日志。
先决条件
- 您已准备好控制节点和受管节点。
- 您以可在受管主机上运行 playbook 的用户身份登录到控制节点。
-
用于连接到受管节点的帐户具有这些节点的
sudo权限。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml:--- - name: Configure server-side of the remote logging solution by using RELP hosts: managed-node-01.example.com tasks: - name: Deploying remote input and remote_files output ansible.builtin.include_role: name: redhat.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: - '*client.example.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,需要 key/certificates 和 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} 三元组,则文件在日志配置前应位于默认路径上。 - 如果同时设置了 triplet,则会将文件从控制节点上的本地路径传输到受管节点的特定路径。
-
如果设置了 {
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 连接和发送日志的客户端列表。
输入- 日志输入字典列表。
输出- 日志输出字典列表。
有关角色变量的详情和有关
rsyslog的更多信息,请参阅控制节点上的/usr/share/ansible/roles/rhel-system-roles.logging/README.md文件以及rsyslog.conf (5)和syslog (3)手册页。验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml请注意,这个命令只验证语法,不能防止错误的、但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml