Logstash — если %{оператор} имеет «значение»

#elasticsearch #logstash #kibana #elastic-stack #grok

#elasticsearch #logstash #кибана #эластичный-стек #грок

Вопрос:

В Logstash я пытаюсь установить условие, при котором, если в файле с именем «cowrie.json», если получено новое сообщение, начинающееся с «попытка входа в систему *» — отправьте электронное письмо.

Это то, что я пробовал:

 output {
  if [log][file][path] =~ "cowrie.json" {
  if %{message} =~ "login attempt.*"{
    email {
      to => 'test@address.com'
      subject => 'Honeypot Alert'
      body => "Someone interacted with the honeypot!"
      domain => 'mail.xconnect.net'
      port => 25
    }
  }
 }
}
  

Если я удалю второе if утверждение, оно сработает. Кто-нибудь случайно не знает, чем я должен заменить второе if утверждение, чтобы оно применялось только к целым сообщениям / сообщениям, начинающимся с «попытки входа в систему»?

Заранее огромное спасибо!

Ответ №1:

Редактировать: РЕШАЕМАЯ:

  if "login attempt" in [message] {
  

или

  if [message] =~ "^login attempt" {