Мое правило эласта частоты не дает совпадений - PullRequest
0 голосов
/ 16 мая 2019

Я настраиваю оповещение в elastalert, чтобы получать оповещения всякий раз, когда пользователь использует sudo, и это не удается.Но я не получаю никакого совпадения ни с одним из правил, которые я написал, и я понятия не имею, что я делаю неправильно.Я пробовал несколько правил черного списка и частоты, но я не могу заставить их работать, а также разные индексы, строки и фильтры.Это текущее правило, с которым я работаю.

Файл правила yaml

es_host: elasticsearch
es_port: 9200

name: failed_sudo_warning

index: "*:logstash-beats-*"

type: frequency

num_events: 1

timeframe:
  minutes: 5

use_count_query: true
doc_type: 'doc'

filter:
- query:
   query_string:
     #query: "message: a"
     query: "message: user NOT in sudoers"

alert:
- debug

Поле сообщения из файла журнала:

May 16 19:58:20 Cl-Ub sudo: virtlabsiem : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/virtlabsiem ; USER=root ; COMMAND=/usr/bin/vim

Поля индекса:

- *:logstash-beats-*
- *:logstash-*

вывод so-elastalert-test с полем индекса : logstash-beats- :

Please enter the file path and rule name you want to test.
/etc/elastalert/rules/failed_sudo_warning.yaml 
The results can be rather long.  Would you like to write the results to a file? (Y/N)
N
Successfully loaded failed_sudo_warning

INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:33 UTC to 2019-05-16 18:34 UTC: 0 hits
INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:34 UTC to 2019-05-16 18:35 UTC: 0 hits
INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:35 UTC to 2019-05-16 18:36 UTC: 0 hits
INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:36 UTC to 2019-05-16 18:37 UTC: 0 hits
INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:37 UTC to 2019-05-16 18:38 UTC: 0 hits
INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:38 UTC to 2019-05-16 18:38 UTC: 0 hits

Would have written the following documents to writeback index (default is elastalert_status):

elastalert_status - {'hits': 0, 'matches': 0, '@timestamp': datetime.datetime(2019, 5, 16, 18, 38, 4, 319317, tzinfo=tzutc()), 'rule_name': 'failed_sudo_warning', 'starttime': datetime.datetime(2019, 5, 16, 18, 33, 1, 284936, tzinfo=tzutc()), 'endtime': datetime.datetime(2019, 5, 16, 18, 38, 4, 284936, tzinfo=tzutc()), 'time_taken': 0.029651165008544922}

Complete!

вывод so-elastalert-test с полем индекса : logstash- :

Successfully loaded failed_sudo_warning

INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:33 UTC to 2019-05-16 18:34 UTC: 24 hits
INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:34 UTC to 2019-05-16 18:35 UTC: 36 hits
INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:35 UTC to 2019-05-16 18:36 UTC: 20 hits
INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:36 UTC to 2019-05-16 18:37 UTC: 29 hits
INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:37 UTC to 2019-05-16 18:38 UTC: 79 hits
INFO:elastalert:Queried rule failed_sudo_warning from 2019-05-16 18:38 UTC to 2019-05-16 18:38 UTC: 0 hits
INFO:elastalert:Alert for failed_sudo_warning at 2019-05-16T18:34:53.757004Z:
INFO:elastalert:failed_sudo_warning

At least 1 events occurred between 2019-05-16 18:29 UTC and 2019-05-16 18:34 UTC

@timestamp: 2019-05-16T18:34:53.757004Z
num_hits: 188
num_matches: 5

INFO:elastalert:Ignoring match for silenced rule failed_sudo_warning
INFO:elastalert:Ignoring match for silenced rule failed_sudo_warning
INFO:elastalert:Ignoring match for silenced rule failed_sudo_warning
INFO:elastalert:Ignoring match for silenced rule failed_sudo_warning

Would have written the following documents to writeback index (default is elastalert_status):

silence - {'rule_name': 'failed_sudo_warning', '@timestamp': datetime.datetime(2019, 5, 16, 18, 38, 56, 865075, tzinfo=tzutc()), 'exponent': 0, 'until': datetime.datetime(2019, 5, 16, 18, 39, 56, 865067, tzinfo=tzutc())}

elastalert_status - {'hits': 188, 'matches': 5, '@timestamp': datetime.datetime(2019, 5, 16, 18, 38, 56, 866752, tzinfo=tzutc()), 'rule_name': 'failed_sudo_warning', 'starttime': datetime.datetime(2019, 5, 16, 18, 33, 53, 757004, tzinfo=tzutc()), 'endtime': datetime.datetime(2019, 5, 16, 18, 38, 56, 757004, tzinfo=tzutc()), 'time_taken': 0.10465812683105469}

Complete!

Я ожидаю, что мне нужноиспользуйте индекс beats, а не только logstash, поскольку журналы отправляются в этот индекс.Если я открываю индекс logstash-beats, я вижу в нем журналы, но они также появляются в logstash-index.Надеюсь, кто-нибудь может мне помочь.

...