Здравствуйте. Я сделал условный оператор в выводе 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 и работает.