12.3. 按元数据过滤日志


您可以使用 input 选择器过滤 ClusterLogForwarder CR 中的日志,以根据元数据选择或忽略整个日志流。作为管理员或开发人员,您可以包含或排除日志记录,以减少收集器上的内存和 CPU 负载。

重要

只有在日志记录部署中设置了 Vector 收集器时,才能使用此功能。

注意

input spec 过滤与内容过滤不同。input 选择器选择或忽略基于源元数据的整个日志流。内容过滤器编辑日志流,以根据记录内容删除和修改记录。

12.3.1. 通过包含或排除命名空间或容器名称,在输入中过滤应用程序日志

您可以使用 input 选择器根据命名空间和容器名称包含或排除应用程序日志。

先决条件

  • 已安装 Red Hat OpenShift Logging Operator。
  • 有管理员权限。
  • 您已创建了 ClusterLogForwarder 自定义资源 (CR)。

流程

  1. 添加配置,以在 ClusterLogForwarder CR 中包含或排除命名空间和容器名称。

    以下示例演示了如何配置 ClusterLogForwarder CR 以包含或排除命名空间和容器名称:

    ClusterLogForwarder CR 示例

    apiVersion: "logging.openshift.io/v1"
    kind: ClusterLogForwarder
    # ...
    spec:
      inputs:
        - name: mylogs
          application:
            includes:
              - namespace: "my-project" 1
                container: "my-container" 2
            excludes:
              - container: "other-container*" 3
                namespace: "other-namespace" 4
    # ...

    1
    指定日志只从这些命名空间中收集数据。
    2
    指定日志只从这些容器中收集数据。
    3
    指定收集日志时要忽略的命名空间模式。
    4
    指定收集日志时要忽略的容器集合。
  2. 运行以下命令来应用 ClusterLogForwarder CR:

    $ oc apply -f <filename>.yaml

excludes 选项优先于 includes

12.3.2. 通过包括标签表达式或匹配标签键和值在输入中过滤应用程序日志

您可以使用 input 选择器,根据标签表达式或匹配的标签键及其值包含应用程序日志。

先决条件

  • 已安装 Red Hat OpenShift Logging Operator。
  • 有管理员权限。
  • 您已创建了 ClusterLogForwarder 自定义资源 (CR)。

流程

  1. 将过滤器的配置添加到 ClusterLogForwarder CR 中的 input spec 中。

    以下示例演示了如何配置 ClusterLogForwarder CR,使其包含基于标签表达式或匹配的标签键/值的日志:

    ClusterLogForwarder CR 示例

    apiVersion: "logging.openshift.io/v1"
    kind: ClusterLogForwarder
    # ...
    spec:
      inputs:
        - name: mylogs
          application:
            selector:
              matchExpressions:
              - key: env 1
                operator: In 2
                values: [“prod”, “qa”] 3
              - key: zone
                operator: NotIn
                values: [“east”, “west”]
              matchLabels: 4
                app: one
                name: app1
    # ...

    1
    指定要匹配的标签键。
    2
    指定 operator。有效值包括: In,NotIn,Exists, 和 DoesNotExist
    3
    指定字符串值的数组。如果 operator 值为 ExistsDoesNotExist,则值数组必须为空。
    4
    指定准确的键或值映射。
  2. 运行以下命令来应用 ClusterLogForwarder CR:

    $ oc apply -f <filename>.yaml

12.3.3. 根据源过滤审计和基础架构日志输入

您可以使用 input 选择器定义 auditinfrastructure 源列表,以收集日志。

先决条件

  • 已安装 Red Hat OpenShift Logging Operator。
  • 有管理员权限。
  • 您已创建了 ClusterLogForwarder 自定义资源 (CR)。

流程

  1. 添加配置,以在 ClusterLogForwarder CR 中定义 auditinfrastructure 源。

    以下示例演示了如何配置 ClusterLogForwarder CR 以定义 aduitinfrastructure 源:

    ClusterLogForwarder CR 示例

    apiVersion: "logging.openshift.io/v1"
    kind: ClusterLogForwarder
    # ...
    spec:
      inputs:
        - name: mylogs1
          infrastructure:
            sources: 1
              - node
        - name: mylogs2
          audit:
            sources: 2
              - kubeAPI
              - openshiftAPI
              - ovn
    # ...

    1
    指定要收集的基础架构源列表。有效的源包括:
    • node :来自节点的日志
    • container :命名空间中部署的工作负载的日志
    2
    指定要收集的审计源列表。有效的源包括:
    • kubeAPI: 来自 Kubernetes API 服务器的日志
    • openshiftAPI: 来自 OpenShift API 服务器的日志
    • auditd: 来自节点 auditd 服务的日志
    • ovn :来自开放虚拟网络服务的日志
  2. 运行以下命令来应用 ClusterLogForwarder CR:

    $ oc apply -f <filename>.yaml
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.