Для доставки событий из Windows в ELK используется WinlogBeat. В принципе по настройке всё и так есть на офсайте.

WARN EventLog[Security] Open() error. No events will be read from this source. The specified query is invalid

Теперь про саму ошибку, с которой вы столкнётесь если вдруг решите отфильтровать что именно нужно слать.

winlogbeat.event_logs:
  - name: Security
    event_id: 1102,4624,4625,4723,4724,4728,4729,4732,4733,4738,4740,4746,4747,4751,4752,4756,4757,4761,4762,4767,4771,5136,5137,5141,5236

Тут видно, что я указал конкретные события, их количество в общем составляет 25. Но вот у Windows есть ограничение, которое не позволят Winlogbeat читать журнал событий.

Для того, чтобы обойти это ограничение воспользуемся процессом drop_event. Суть работы заключается в следующем:

  1. Winlogbeat получает все события
  2. Уже сам фильтрует что именно отправить
winlogbeat.event_logs:

  - name: Security
    processors:
      - drop_event.when.not.or:
        - equals.winlog.event_id: "1102"
        - equals.winlog.event_id: "4624"
        - equals.winlog.event_id: "4625"
        - equals.winlog.event_id: "4723"
        - equals.winlog.event_id: "4724"
        - equals.winlog.event_id: "4728"
        - equals.winlog.event_id: "4729"
        - equals.winlog.event_id: "4732"
        - equals.winlog.event_id: "4733"
        - equals.winlog.event_id: "4738"
        - equals.winlog.event_id: "4740"
        - equals.winlog.event_id: "4746"
        - equals.winlog.event_id: "4747"
        - equals.winlog.event_id: "4751"
        - equals.winlog.event_id: "4752"
        - equals.winlog.event_id: "4756"
        - equals.winlog.event_id: "4757"
        - equals.winlog.event_id: "4761"
        - equals.winlog.event_id: "4762"
        - equals.winlog.event_id: "4767"
        - equals.winlog.event_id: "4771"
        - equals.winlog.event_id: "5136"
        - equals.winlog.event_id: "5137"
        - equals.winlog.event_id: "5141"
        - equals.winlog.event_id: "5236"