Winlogbeat как отбрасывать все поля, кроме заданных?

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

winlogbeat.event_logs:
  - name: Microsoft-Windows-TerminalServices-LocalSessionManager/Operational
    event_id: 21, 23, 24, 25, 39
processors:
  - drop_fields.when:
           - not.equals.fields: ["event_id", "host.name", "user_data.Address", "user_data.User"]

Может быть фильтрацию event_id нужно записать в processors?

Странно, даже logstash не хочет удалять поля...

filter {
  if "logon" in [tags] and [event_id] == 21  {
    mutate {
    add_field => { "short_message" => "RDP login" }
    }
  } 
  else if "logon" in [tags] and [event_id] == 23 {
    mutate {
    add_field => { "short_message" => "RDP logout" }
    }
  }
  else if "logon" in [tags] and [event_id] == 24 {
    mutate {
    add_field => { "short_message" => "RDP logout" }
    }
  }
  else if "logon" in [tags] and [event_id] == 25 {
    mutate {
    add_field => { "short_message" => "RDP login" }
    }
  }
  else if "logon" in [tags] and [event_id] == 39 {
    mutate {
    add_field => { "short_message" => "RDP logout" }
    }
  }
  if "logon" in [tags] {
    mutate {
    remove_field => [ "activity_id", "beat.hostname", "beat.name", "beat.version", "host.architecture", "computer_name", "host.id", "host.os.build", "host.os.name", "host.os.platform", "host.os.version", "level", "log_name", "opcode", "process_id", "provider_guid", "record_number", "source_name", "thread_id", "user.domain", "user.identifier", "user.name", "user.type", "user_data.SessionID", "user_data.xml_name" ]
    }
  }
}

А можно взглянуть на пример записи, из которой поля не удаляются?

Записи в elasticsearch? Или в коде winlogbeat, logstash?
Кстати, код из logstash удалил некоторое количество полей, но не все...
Вот скрин из elasticsearch, хотелось бы сократить все это до четырех полей, тех которые подчеркнутые, желательно на стороне winlogbeat.

А что так не работает?

processors:
  - include_fields:
      fields: ["event_id", "host.name", "user_data.Address", "user_data.User"]
1 Like

Нет, в elasticsearch все равно приходят поля host.os.* и user.* и user_data.*
Может быть эти поля защищены?

Ситуация: на одном хосте на котором пытаюсь настроить фильтрацию полей - не работает, сейчас конфиг который выше опробовал на другом хосте - все работает! Правда версии winlogbeat разные, где не работает там 6.6.2, где работает там 6.4.2.
ЧУДЕСА!

Я только что попробовал с 6.6.2. Работает как надо. Может с yaml что-нибудь напутали? Две секции в разных местах, лишние пробелы?

Вроде все нормально, копировал из 6.6.2 в 6.4.2.

Установил на новый хост winlogbeat 6.6.2, настроил конфиг, все так же, приходят лишние поля...

Все, нашел причину...
в конфиге была не закоментированная секция:
processors:

  • add_host_metadata: ~
  • add_cloud_metadata: ~
    Поставил коментарии, все стало нормально!
    Спасибо за помощь!

Игорь, подскажите пожалуйста, как сделать, чтобы winlogbeat отправлял определенные события на другой порт logstash?

На сколько я понимаю, winlogbeat не может разруливать разные события по разным output. Это лучше сделать в самом logstash.

А как добавить tags в Winlogbeat?
Все, нашел.

Подскажите пожалуйста по filebeat, у меня в файле есть строка:
Apr 1 04:17:01 elk sshd[6249]: Accepted password for root from 192.168.0.9 port 9688 ssh2
Мне нужно отсылать в logstash только эту строку, в конфиг filebeat я добавил следующее:

include_lines: ["Accepted password for root from"]

После добавления этой строки, в logstash вообще ничего не приходит...

в конфиг filebeat я добавил следующее:

Где вы это добавили? Ошибки какие-нибудь в логе filebeat появились? Можно весь конфиг посмотреть?

Игорь, спасибо большое за помощь!
Я подбирал разные конфиги, и один из них подошел, я добавил следующее:

filebeat.inputs:

  • type: log
    enabled: true
    paths:
    • /var/log/secure*
      include_lines: ['Accepted']

Но вот странный факт, работать это начало только после перезагрузки сервера!
А то что службу filebeat перезапускал, не помогало...

Подскажите, в чем может быть проблема?
Добавил в конфиг winlogbeat следующее:

winlogbeat.event_logs:

  • name: Security
    event_id: 4663
    tags: ["storage"]

Мне нужно отсылать событие 4663 в logstash, но проблема в том, что в logstash приходят события 4663 по одному пользователю, это пользователь под которым делается резервное копирование, в чем может быть причина?

Мне нужно отсылать событие 4663 в logstash

и

в logstash приходят события 4663

Из вашего описания того, что вам нужно и того, что происходит - получается что все работает. Вы не могли бы более четко сформулировать, что вам нужно чтобы происходило?