elasticSearch +logstach
正则日志匹配
如果日志格式如下:
[ERROR] 2019-04-28 16:15:21,051(10) --> [main] com.netease.crawler.util.TestLogger.main(TestLogger.java:25): ==========Error:==
java.lang.ArrayIndexOutOfBoundsException: 1
at com.netease.crawler.util.TestLogger.mainBBB(TestLogger.java:23
[INFO ] 2019-04-28 16:15:21,047(6) --> [main] com.netease.crawler.util.TestLogger.main(TestLogger.java:29): ==========Math.random=======:1.8285738636601279
使用 grok 进行正则日志匹配:
[%{DATA:level}] %{TIMESTAMP_ISO8601:time},%{DATA:timestamp}--> [main] %{DATA:className}: %{GREEDYDATA:message}
对于多行的日志,常需要合并的
## 简单的logstach.conf 文件配置
#标准输入 input{ file{ path => "D:logstash-6.2.2 emplateloglog_crawler_simple.log" type => "error" start_position => "beginning" } } filter{
##可能需要单独安装multiline插件 multiline { pattern => "^[" negate => true what => "previous" } grok { match => ["message","[%{DATA:level}] %{DATA:day} %{DATA:time} --> [main] %{DATA:className}: "] } } #标准输出 output{ elasticsearch { #cluster => 'elasticsearch' hosts => ["127.0.0.1:9200"] #index => 'log_stash-%{+YYYY-MM-dd}' } }
即可运行;