使用logstash从给定路径读取日志文件

时间:2016-09-01 07:42:22

标签: logstash logstash-configuration logstash-file

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 个答案:

答案 0 :(得分:0)

您是否尝试在您的配置文件的stdout {}部分中保持output为空,以检查logstash控制台的输出?

正如@baudsp所提到的,在处理日志文件时最好使用grok过滤器。像这样:

filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}"}
    }
}

来源:Parsing Logs with Logstash