Logstash - Можно ли не пересылать журнал на основе данных? - PullRequest
0 голосов
/ 01 ноября 2019

Просто изучаю, как использовать Logstash - черт побери, есть чему поучиться: D

В моей настройке у меня есть данные CEF, отправляемые в мой logstash. Некоторые события cef являются просто «статистической» информацией об инструменте, который отправляет события cef.

Я хочу, чтобы logstash НЕ отправлял эти события. Это возможно?

Вот некоторый псевдо-код того, как я думаю, это будет выглядеть.

input { 
  udp { 
    port => 9001 
    codec => cef
}

filter { 
  if 'stat_heading' contains "Statistic Information" do not forward to elasticsearch 
}

output { 
  elasticsearch { 
    host => ["192.168.0.20:9200"] 
}

Может ли кто-нибудь указать мне правильное направление?

Редактировать

Хорошо. Итак, я вижу, что у фильтра есть опциональное условие IF. Я собираюсь прочитать об этом больше, и когда я получу рабочее решение, я опубликую это.

Редактировать

все заработало. Добавлено решение в комментариях ниже.

Ответы [ 2 ]

2 голосов
/ 01 ноября 2019

Я думаю, вы можете попробовать удалить плагин, чтобы пропустить некоторые данные, если они попадают в фильтр

https://www.elastic.co/guide/en/logstash/current/plugins-filters-drop.html

0 голосов
/ 01 ноября 2019

Хорошо, я нашел свой собственный ответ на это.

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

input { 
  udp { 
    port => 9001 
    codec => cef
}

filter { 
  if "Some string here" in [myheader] {
    drop {}
}

output { 
  elasticsearch { 
    host => ["192.168.0.20:9200"] 
}
...