У меня есть файл журнала, имеющий формат ниже, для извлечения в упругий поиск, но данные, отфильтрованные logstash, не передаются в упругий поиск.
Та же конфигурация с фильтром grok, я могу получить ее от kibana devtools
Пример файла журнала:
OCDE - 2019-05-22 13: 24: 34.000 ОШИБКА org.ramyam.ocde.task.NBALookupTask.checkResponsesToBeProcessed - checkResponsesToBeProcessed начался: ср 22 мая 13:24:34 IST 2019
Конфигурация Filebeat:
filebeat.inputs:
- тип: журнал
включено: правда
пути:
- C: \ data \ logs \ OCDE.log
document_type: ocde
конфигурация logstash:
input {
file {
type => "ocde"
path => "C:\data\logs\OCDE.log"
}
beats {
port => 5044
ssl => false
}
}
filter {
grok {
match => [ "message" ,'%{DATA:moduleName} - %{TIMESTAMP_ISO8601:loggerTime}\s+%{LOGLEVEL:level}\s+%{JAVACLASS:className}\.%{DATA:methodName} - %{GREEDYDATA:loggermsg}}']
}
}
output {
if [type]=="ocde"
{
elasticsearch
{
hosts => ["localhost:9200"]
#manage_template => false
index => "enliven_be_log_yyyymmdd"
document_type=> ocde
}
}
}
Я ожидаю нижеприведенный результат из вышеуказанной конфигурации в упругом поиске
{
"level": "ERROR",
"loggerTime": "2019-05-22 13:24:34.000",
"moduleName": "OCDE",
"methodName": "checkResponsesToBeProcessed",
"className": "org.ramyam.ocde.task.NBALookupTask",
"loggermsg": "checkResponsesToBeProcessed started : Wed May 22 13:24:34 IST 2019"
}
Может кто-нибудь объяснить или поделиться примером конфигурации, что мне не хватает