第 15 章 使用 logging 系统角色
作为系统管理员,您可以使用 logging
系统角色将 Red Hat Enterprise Linux 主机配置为日志服务器,以从多个客户端系统收集日志。
15.1. 使用 logging RHEL 系统角色过滤本地日志消息 复制链接链接已复制到粘贴板!
您可以使用 logging
RHEL 系统角色的基于属性的过滤器,来根据各种条件过滤本地日志消息。因此,您可以实现,例如:
- 日志清晰度:在高流量环境中,日志可能会快速增长。专注于特定消息(如错误)有助于更快地识别问题。
- 优化的系统性能:大量的日志通常与系统性能下降有关。仅选择重要事件的日志可以防止资源耗尽,这样可使您的系统更有效地运行。
- 增强了安全性:通过安全消息(如系统错误和失败的登录)进行高效过滤,有助于仅捕获相关的日志。这对于检测漏洞并满足合规性标准非常重要。
先决条件
- 您已准备好控制节点和受管节点
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 playbook 中指定的设置包括以下内容:
logging_inputs
-
定义记录输入字典的列表。
type: basics
选项涵盖了来自systemd
日志或 Unix 套接字的输入。 logging_outputs
-
定义记录输出字典的列表。
type: files
选项支持将日志存储到本地文件,通常存储在/var/log/
目录中。property: msg
;property: contains
; 和property_value: error
选项指定所有包含error
字符串的日志都存储在/var/log/errors.log
文件中。property: msg
;property: !contains
; 和property_value: error
选项指定所有其他日志都放在/var/log/others.log
文件中。您可以将error
值替换为您要过滤的字符串。 logging_flows
-
定义记录流字典的列表,以指定
logging_inputs
和logging_outputs
之间的关系。inputs: [files_input]
选项指定输入的列表,日志的处理从该列表开始。outputs: [files_output0, files_output1]
选项指定输出的列表,日志被发送到此输出中。
有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.logging/README.md
文件。验证 playbook 语法:
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
在受管节点上,测试
/etc/rsyslog.conf
文件的语法:rsyslogd -N 1
# rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run... rsyslogd: End of config validation run. Bye.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在受管节点上,验证系统是否将包含
error
字符串的消息发送到日志中:发送测试信息:
logger error
# logger error
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看
/var/log/errors.log
日志,例如:cat /var/log/errors.log Aug 5 13:48:31 hostname root[6778]: error
# cat /var/log/errors.log Aug 5 13:48:31 hostname root[6778]: error
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
hostname
是客户端系统的主机名。请注意,该日志包含输入 logger 命令的用户的用户名,本例中为root
。