搜索

15.3. 在本地 logging RHEL 系统角色中过滤日志

download PDF

您可以部署一个日志解决方案,该方案基于 rsyslog 属性的过滤器过滤日志。

先决条件

注意

您不必安装 rsyslog 软件包,因为 RHEL 系统角色在部署时会安装 rsyslog

流程

  1. 创建一个包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: Deploying files input and configured files output
      hosts: managed-node-01.example.com
      roles:
        - rhel-system-roles.logging
      vars:
        logging_inputs:
          - name: files_input
            type: basics
        logging_outputs:
          - name: files_output0
            type: files
            property: msg
            property_op: contains
            property_value: error
            path: /var/log/errors.log
          - name: files_output1
            type: files
            property: msg
            property_op: "!contains"
            property_value: error
            path: /var/log/others.log
        logging_flows:
          - name: flow0
            inputs: [files_input]
            outputs: [files_output0, files_output1]

    使用这个配置,所有包含 error 字符串的消息都记录在 /var/log/errors.log 中,所有其他消息都记录在 /var/log/others.log 中。

    您可以将 error 属性值替换为您要用来过滤的字符串。

    您可以根据您的偏好修改变量。

  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

验证

  1. 测试 /etc/rsyslog.conf 文件的语法:

    # rsyslogd -N 1
    rsyslogd: version 8.1911.0-6.el8, config validation run...
    rsyslogd: End of config validation run. Bye.
  2. 验证系统是否向日志发送包含 error 字符串的信息:

    1. 发送测试信息:

      # logger error
    2. 查看 /var/log/errors.log 日志,例如:

      # cat /var/log/errors.log
      Aug  5 13:48:31 hostname root[6778]: error

      其中 hostname 是客户端系统的主机名。请注意,该日志包含输入 logger 命令的用户的用户名,本例中为 root

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.logging/README.md 文件
  • /usr/share/doc/rhel-system-roles/logging/ 目录
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.