ELK 和 Logstach
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\template\log\log_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}' } }
即可运行;
多想,多试