Поля ввода Filebeat не отправляются в Logstash

Сообщество StackOverflow!

Я пытаюсь собрать некоторые системные журналы с помощью Filebeat, а затем обработать их с помощью LogStash, прежде чем просматривать их в Kibana.

Теперь, когда у меня разное расположение журналов, я пытаюсь добавить определенные поля идентификации для каждого из них в filebeat.yml.

- type: log
   enabled: true
   paths:
     - C:\Users\theod\Desktop\Logs\Test2\*
processors:
 - add_fields:
    target: ''
   fields: 
    name:"drs"


 - type: log
   enabled: true
   paths:
     - C:\Users\theod\Desktop\Logs\Test\*
processors:
 - add_fields:
    target: ''
   fields: 
    name:"pos"

В зависимости от этого я пытаюсь применить некоторые фильтры Grok в файле конфигурации Logstash:

input {
  beats {
    port => 5044
  }
}


filter
{    
if "pos" in [fields][name] {
        grok {
            match => { "message" => "\[%{LOGLEVEL:LogLevel}(?: ?)] %{TIMESTAMP_ISO8601:TimeStamp} \[%{GREEDYDATA:IP_Address}] \[%{GREEDYDATA:Username}] %{GREEDYDATA:Operation}] \[%{GREEDYDATA:API_RequestLink}] \[%{GREEDYDATA:Account_name_and_Code}] \[%{GREEDYDATA:Additional_Info1}] \[%{GREEDYDATA:Additional_Info2}] \[%{GREEDYDATA:Store}] \[%{GREEDYDATA:Additional_Info3}](?: ?)%{GREEDYDATA:Error}" }
        }   
}
if "drs" in [fields][name] {
        grok {
            match => { "message" => "%{TIMESTAMP_ISO8601:TimeStamp} \[%{DATA:Thread}] %{LOGLEVEL:LogLevel} (?: ?)%{INT:Sequence} %{DATA:Request_Header}] %{GREEDYDATA:Request}" }
        }   
}   
}



output
{
if "pos" in [fields][name] {
    elasticsearch {
    hosts => ["localhost:9200"]
    index => "[fields][name]logs-%{+YYYY.MM.dd}"
    }
}
else if "pos" in [fields][name] {
elasticsearch {
    hosts => ["localhost:9200"]
    index => "[fields][name]logs-%{+YYYY.MM.dd}"
    }
} else {
elasticsearch {
    hosts => ["localhost:9200"]
    index => "logs-%{+YYYY.MM.dd}"
    }
}
}

Теперь, каждый раз, когда я запускаю это, условные выражения в Logstash conf игнорируются. Проверяя журналы Filebeat, я замечаю, что в Logstash не отправляются никакие поля.

Может ли кто-нибудь дать совет и, возможно, указать, что я делаю не так?

Спасибо!


person Theodor Hargau    schedule 11.06.2020    source источник


Ответы (1)


Ваша конфигурация Filebeat не добавляет поле [fields][name], она добавляет поле [name] на верхнем уровне вашего документа из-за вашего целевая конфигурация.

processors:
 - add_fields:
   target: ''
   fields: 
    name:"pos"

Все ваши условные проверки поля [fields][name], которого не существует.

Измените свои условия, чтобы проверить поле [name].

if "pos" in [name] { 
    ... your filters ...
}
person leandrojmp    schedule 12.06.2020
comment
Мне пришлось немного изменить файл filebeat.yml, но, в конце концов, ваше решение было той деталью, которая мне нужна. Спасибо! - person Theodor Hargau; 12.06.2020