Fluent Bit 中文文档
  • Fluent Bit 中文文档
  • 关于
    • Fluent Bit 是什么?
    • Fluent Bit 简要历史
    • Fluentd & Fluent Bit
    • 协议
  • 概念
    • 核心概念
    • 缓冲
    • 数据管道
      • 输入
      • 解析器
      • 过滤器
      • 缓冲
      • 路由
      • 输出
  • 安装
    • 升级说明
    • 平台支持
    • 依赖
    • 源码安装
      • 下载源码
      • 构建和安装
      • 以静态配置构建
    • Linux 软件包
      • Amazon Linux
      • Redhat / CentOS
      • Debian
      • Ubuntu
      • 树莓派
    • Docker
    • Kubernetes
    • Windows
  • 管理
    • 配置 Fluent Bit
      • 格式与模式
      • 配置文件
      • 变量
      • 命令
      • 上游服务负载均衡
      • 单位
    • 安全性
    • 缓冲与存储
    • 积压
    • 调度与重试
    • 内存管理
    • 监控
    • 内部状态导出/信号
  • 数据管道
    • 输入插件
      • Dummy
      • Memory Metics
      • Standard Input
      • Systemd
      • tail
    • 解析器
      • JSON
      • Regular Expression
      • LTSV
      • Logfmt
    • 过滤器
      • Grep
      • Kubernetes
      • Rewrite Tag
      • Modify
      • Nest
    • 输出插件
      • Counter
      • Elasticsearch
      • File
      • FlowCounter
      • HTTP
      • Kafka
      • NULL
      • PostgreSQL
      • Standard Output
      • TCP & TLS
  • 流处理
    • 简介
    • 总览
    • 快速开始
      • Fluent Bit + SQL
      • Check Keys and NULL values
      • Hands On! 101
  • FLUENT BIT FOR DEVELOPERS
    • C Library API
    • 手动提取记录
    • Golang 输出插件
Powered by GitBook
On this page
  • 配置参数
  • 快速开始
  • 命令行
  • 配置文件
  • 嵌套字段示例

Was this helpful?

  1. 数据管道
  2. 过滤器

Grep

grep 过滤插件允许根据正则表达式模式匹配或排除特定记录。

配置参数

该插件支持如下配置参数:

Key

Value Format

Description

Regex

FIELD REGEX

保留与正则表达式匹配的字段的记录

Exclude

FIELD REGEX

排除与正则表达式匹配的字段的记录

快速开始

要开始过滤数据记录,您可以从命令行或通过配置文件运行过滤器。如下示例假定您有一个名为 lines.txt 的文件,其中包含以下内容:

aaa
aab
bbb
ccc
ddd
eee
fff
ggg

命令行

注意: 使用命令行模式时,需要特别注意正则表达式的正确性。建议使用配置文件。

如下命令将加载 tail 插件并读取 lines.txt 文件的内容。然后 grep 过滤器会将正则表达式规则应用于 log 字段(由 tail 插件创建),并且仅保留以 aa 开头的记录:

$ bin/fluent-bit -i tail -p 'path=lines.txt' -F grep -p 'regex=log aa' -m '*' -o stdout

配置文件

[INPUT]
    Name   tail
    Path   lines.txt

[FILTER]
    Name   grep
    Match  *
    Regex  log aa

[OUTPUT]
    Name   stdout
    Match  *

该过滤器允许按顺序应用多个规则,您可以根据需要设置多个 Regex 和 Exclude 配置项。

嵌套字段示例

到目前为止,不支持嵌套字段。如果您有类似以下格式的记录:

{
    "kubernetes": {
        "pod_name": "myapp-0",
        "namespace_name": "default",
        "pod_id": "216cd7ae-1c7e-11e8-bb40-000c298df552",
        "labels": {
            "app": "myapp"
        },
        "host": "minikube",
        "container_name": "myapp",
        "docker_id": "370face382c7603fdd309d8c6aaaf434fd98b92421ce7c7c8aafe7697d4aa362"
    }
}
[FILTER]
    Name         nest
    Match        *
    Operation    lift
    Nested_under kubernetes

[FILTER]
    Name         nest
    Match        *
    Operation    lift
    Nested_under labels

[FILTER]
    Name    grep
    Match   *
    Exclude app myapp
Previous过滤器NextKubernetes

Last updated 4 years ago

Was this helpful?

如果您想排除与给定嵌套字段(如 kubernetes.labels.app),则可以与 过滤插件一起使用。如下是一个排除与 kubernetes.labels.app: myapp 匹配的记录的示例:

nest