Logstash笔记(三)——数据转换插件

1. 核心操作

如修改和删除事件。

1.1. date filter

解析字段中的日期,以用作事件的Logstash时间戳。
下面的配置解析一个名为logdate的字段来设置Logstash时间戳:

filter {
   
  date {
   
    match => [ "logdate", "MMM dd yyyy HH:mm:ss" ]
  }
}
1.2. drop filter

删除事件。这个过滤器通常与条件句结合使用。
下面的配置将删除调试级别的日志消息:

filter {
   
  if [loglevel] == "debug" {
   
    drop {
    }
  }
}
1.3. fingerprint filter

通过应用一致性的散列来创建指纹字段。
下面的配置对IP、@timestamp和message字段进行指纹识别,并将散列添加到名为generated_id的元数据字段:

filter {
   
  fingerprint {
   
    source => ["IP", "@timestamp", "message"]
    method => "SHA1"
    key => "0123"
    target => "[@metadata][generated_id]"
  }
}
1.4. mutate filter

对字段执行一般的操作。您可以重命名、删除、替换和修改事件中的字段。
以下配置将HOSTORIP字段重命名为client_ip:

filter {
   
  mutate {
   
    rename => {
    "HOSTORIP" => "client_ip" }
  }
}

下面的配置将从指定的字段中删除前缀和后缀的空格:

filter {
   
  mutate {
   
    strip => ["field1", "field2"]
  }
}
1.5. ruby filter

执行 Ruby 代码.

下面的配置执行Ruby代码,用来取消90%的事件:

filter {
   
  ruby {
   
    code => "event.cancel if rand <= 0.90"
  }
}

2. 数据反序列化

2.1. avro codec

将序列化的Avro记录读取为Logstash事件。这个插件反序列化单个Avro记录。它不是用来读取Avro文件的。Avro文件有一个独特的格式,必须在输入时处理。
下面的配置反序列化Kafka的输入:

input {
   
  kafka {
   
    codec => {
   
      avro => {
   
        schema_uri => "/tmp/schema.avsc"
      }
    }
  }
}
2.2. csv filter

将逗号分隔的值数据解析为单个字段。默认情况下,过滤器自动生成字段名称(column n1、column2等),或者您可以指定一个名称列表。还可以更改列分隔符。
以下配置将CSV数据解析为columns字段中指定的字段名:

filter {
   
  csv {
   
    separator => ","
    columns => [ "Transaction Number", "Date", "Description", "Amount Debit", "Amount Credit", "Balance" ]
  }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值