执行核心操作编辑

本节中描述的插件对于核心操作(例如事件的变异和丢弃)很有用。

date 过滤器

解析字段中的日期,用作事件的 Logstash 时间戳。

以下配置解析名为 logdate 的字段以设置 Logstash 时间戳

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

丢弃事件。此过滤器通常与条件语句结合使用。

以下配置丢弃 debug 级别的日志消息

filter {
  if [loglevel] == "debug" {
    drop { }
  }
}
fingerprint 过滤器

通过应用一致的哈希来对字段进行指纹识别。

以下配置对 IP@timestampmessage 字段进行指纹识别,并将哈希值添加到名为 generated_id 的元数据字段中

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

对字段执行一般变异。您可以重命名、删除、替换和修改事件中的字段。

以下配置将 HOSTORIP 字段重命名为 client_ip

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

以下配置从指定字段中删除前导和尾随空格

filter {
  mutate {
    strip => ["field1", "field2"]
  }
}
ruby 过滤器

执行 Ruby 代码。

以下配置执行取消 90% 事件的 Ruby 代码

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