java-grok-api使用

java-grok-api使用

pom

<!-- https://mvnrepository.com/artifact/io.thekraken/grok -->
<dependency>
    <groupId>io.krakens</groupId>
    <artifactId>java-grok</artifactId>
    <version>0.1.9</version>
</dependency>

简单测试

public static void main(String[] args) {
        GrokCompiler grokCompiler = GrokCompiler.newInstance();
        // 进行注册, registerDefaultPatterns()方法注册的是Grok内置的patterns
        grokCompiler.registerDefaultPatterns();
        Grok grok = grokCompiler.compile("%{IPV4:remote_addr}\\s*%{DATA:black}\\s*\\[%{HTTPDATE:access_time}\\]\\s*%{NOTSPACE:url}\\s*%{WORD:method}\\s*%{QUOTEDSTRING:api}\\s*%{NOTSPACE:cms}\\s*%{NUMBER:number}\\s*%{NUMBER:4}\\s*%{QUOTEDSTRING:http_referrer}\\s*%{NUMBER:eee}\\s*(?<date>\\d+\\.\\d+\\.\\d+\\.\\d+\\:\\d+)\\s*%{BASE16FLOAT:float}\\s*%{BASE16FLOAT:float1}\\s*%{GREEDYDATA:all}");
    
        String logMsg = "1.1.1.1 - - [06/Jun/2016:00:00:01 +0800] www.test.com GET \"/api/index\" \"?cms=0&rnd=1692442321\" 200 4 \"http://www.test.com/?cp=sfwefsc\" 200 192.168.0.122:80 0.004 0.004 \"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36\" \"-\"";
    
        // 通过match()方法进行匹配, 对log进行解析, 按照指定的格式进行输出
        Match grokMatch = grok.match(logMsg);
        // 获取结果
        Map<String, Object> resultMap = grokMatch.capture();
        System.out.println(resultMap);
    }

输出结果

{date=192.168.0.122:80, all="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36" "-", remote_addr=1.1.1.1, float1=0.004, MONTH=Jun, method=GET, eee=200, HOUR=00, black=- -, cms=?cms=0&rnd=1692442321, TIME=00:00:01, float=0.004, INT=+0800, url=www.test.com, number=200, YEAR=2016, 4=4, http_referrer=http://www.test.com/?cp=sfwefsc, MINUTE=00, SECOND=01, api=/api/index, MONTHDAY=06, access_time=06/Jun/2016:00:00:01 +0800}

深入了解

grokDebuug调试地址 可以在上面进行对日志格式的解析调试

grok语法定义 了解grok使用语法,自定义表达式等…
在这里插入图片描述

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读