Чтение файла журнала по заданному пути с использованием logstash
input
{
file
{
path => ["D:/logstash-2.3.4/temp/logs/localhost_access_log.2016-08-24.log"]
start_position => "beginning"
}
}
filter
{
date
{
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output
{
stdout { codec => rubydebug }
}
Теперь после запуска logstash я не могу увидеть какие-либо выходные данные в командном окне logstash. То есть логи внутри данного файла не загружаются.
некоторые примеры журналов в моем файле журнала localhost_access_log.2016-08-24 приведены ниже:
127.0.0.1 - - [24/Aug/2016:10:07:54 +0530] "GET / HTTP/1.1" 200 11452
0:0:0:0:0:0:0:1 - - [24/Aug/2016:10:08:09 +0530] "GET /Migration/firstpage.jsp HTTP/1.1" 404 1040
127.0.0.1 - - [24/Aug/2016:10:08:39 +0530] "GET / HTTP/1.1" 200 11452
0:0:0:0:0:0:0:1 - - [24/Aug/2016:10:08:41 +0530] "GET /Migration/firstpage.jsp HTTP/1.1" 500 3750
0:0:0:0:0:0:0:1 - - [24/Aug/2016:10:09:38 +0530] "GET /Mortgage/faces/NewFile.jsp HTTP/1.1" 404 1046
Есть ли проблема с кодом ввода или кодом фильтра даты? Может ли кто-нибудь помочь мне, где я совершаю ошибку?
1 ответ
Вы пытались сохранить stdout {}
пустой как это внутри вашего output
раздел вашего файла Conf, чтобы проверить вывод из вашего logstash
приставка?
Как уже упоминалось @baudsp, лучше использовать grok
фильтр, когда вы имеете дело с файлами журналов. Что-то вроде этого:
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
}
Источник: парсинг логов с помощью Logstash