Logstash自定义日志解析

时间:2015-12-10 04:00:15

标签: logstash logstash-grok logstash-configuration

需要您通过logstash自定义日志解析的帮助

以下是我尝试通过logstash解析的日志格式

2015-11-01 07:55:18,952 [abc.xyz.com] - /Enter, G, _null, 2702, 2, 2, 2, 2, PageTotal_1449647718950_1449647718952_2_App_e9c00521-eeec-4d47-bf5b-b842ec14a4ff_178.255.153.2___, , , NEW, 

我的logstash conf文件如下所示

input {
  file {
    path => [ "/tmp/access.log" ]
  }
}

filter{
    grok {
       match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{GREEDYDATA:message}" }
   }
   date {
    match => ["timestamp","yyyy-MM-dd HH:mm:ss,SSSS"]
  }
}

由于某种原因,运行logstash命令传递conf文件并不解析日志,不确定配置是否有错误。任何帮助都将受到高度赞赏。

bin/logstash -f conf/access_log.conf
Settings: Default filter workers: 6
Logstash startup completed

1 个答案:

答案 0 :(得分:1)

我已经检查了您的Grok Match过滤器,并且可以: Grok Debugger

您不必使用日期匹配器,因为grok匹配器已正确匹配TIMESTAMP_ISO8601时间戳。

我认为你的问题是" since_db"文件。 这是文档: since_db

简而言之,logstash记住文件是否已经被读取并且不再读取它。 Logstash记住是否已读取一个文件,因为将其写入自数据库以来。 如果您想测试过滤器读数总是相同的文件,您可以尝试:

    input {
      file {
        path => [ "/tmp/access.log" ]
        sincedb_path => "/dev/null"
      }
    }

此致