Logstash анализирует разные действия с разными журналами

Я использую Logstash для анализа журналов.

Теперь я хочу по-разному обрабатывать журналы, которые соответствуют определенному регулярному выражению, и те, которые не совпадают.

Это достижимо с помощью Logstash.

Как мне это сделать?

Мой файл конфигурации:

input {
stdin {
    type => "stdin-type"
  }
}
filter {

  grok {
    type => "stdin-type"
    patterns_dir=>["./patterns"]
    pattern => "%{PARSE_ERROR}"
    add_tag=>"%{type1},%{type2},%{slave},ERR_SYSTEM"
  }
date
{
replace=>["%{ts}","yyyy/MM/dd-HH:mm:ss.SSS"]
custom_timestamp=>[%{ts}]
}

mutate
{
    type=>"stdin-type"
    replace => ["@message", "%{message}" ]

}


}
output {
  stdout { debug => true debug_format => "json"}
  elasticsearch
{ 
}
}

Скажите, что я не хочу помещать в эластичный поиск те журналы, которые не соответствуют регулярному выражению. Является ли это возможным? Как?


person user2359303    schedule 14.05.2013    source источник
comment
Что вы хотите делать с журналами, которые не совпадают? Сбросить их или вывести куда-то еще?   -  person nickethier    schedule 15.05.2013
comment
@nikethier Я хочу сбросить их в одном проекте, а в другом связать с ним какие-то разные теги и вывести их в эластичный поиск, а также... пожалуйста, объясните мне оба   -  person user2359303    schedule 15.05.2013


Ответы (1)


Да, вы можете сделать это с помощью условий либо в разделе filter{}, либо в разделе output{}:

filter {
    if [field] == "value" {
        drop{}
    }
}

or

output {
     if [field] != "value" {
         elasticsearch {
              ...
         }
     }
}
person Alain Collins    schedule 30.05.2015