Условный оператор в выводе logstash не работает - PullRequest
0 голосов
/ 19 февраля 2019

Здравствуйте. Я сделал условный оператор в выводе logstash, но оператор else не работает.Когда я отправляю журналы INFO, они попадают в оператор if, но когда я отправляю журналы, отличные от этих, они не попадают в оператор else и не отображаются в индексе tpms-system.

Вот мой раздел вывода:

output{
  stdout{
    codec => dots
  }

  if [message] =~ "\D\[INFO\s\]:.*\[ELASTICSEARCH\].*" or [message] =~ "\D\[INFO\]:.*\[ELASTICSEARCH\].*" {
   elasticsearch {
    hosts => ["https://localhost:9200"]
    user => logstash
    password => logstash
    ssl => true
    ssl_certificate_verification => false
    document_id => "%{fingerprint}"
    index => "beat-tpms"
   }
  }else{
   elasticsearch {
    hosts => ["https://localhost:9200"]
    user => logstash
    password => logstash
    ssl => true
    ssl_certificate_verification => false
    document_id => "%{fingerprint}"
    index => "tpms-system"
   }
 }
}

Выражение регулярного выражения является правильным, потому что я использую то же самое в файле filebeat.yml, чтобы получать только эти журналы INFO и работает.

1 Ответ

0 голосов
/ 19 февраля 2019

По какой-то причине logstash не отправляет документы в системный индекс tpms.Оказывается, это была проблема с разрешением.

...