java-grok的简单使用

因为是maven项目,所以可以直接在pom中添加依赖,这样包就自己下载下来了:

    <dependency>
        <groupId>io.krakens</groupId>
        <artifactId>java-grok</artifactId>
        <version>0.1.9</version>
    </dependency>

下载好包之后,就可以开心的敲代码了。项目中的代码不能贴出来,此处就简单的写一下。

    @Test
    public void grokTest() {
        GrokCompiler grokCompiler = GrokCompiler.newInstance();
        // 进行注册, registerDefaultPatterns()方法注册的是Grok内置的patterns
        grokCompiler.registerDefaultPatterns();
        /*
         传入自定义的pattern, 会从已注册的patterns里面进行配对, 例如: TIMESTAMP_ISO8601:timestamp1, TIMESTAMP_ISO8601在注册的
         patterns里面有对应的解析格式, 配对成功后, 会在match时按照固定的解析格式将解析结果存入map中, 此处timestamp1作为输出的key
          */
        Grok grok = grokCompiler.compile("%{TIMESTAMP_ISO8601:timestamp1}%{SPACE}%{WORD:location}"
            + ".%{WORD:level}%{SPACE}%{IP:ip}%{SPACE}%{MONTH:month}");
        String logMsg = "2018-08-23 02:56:53 Local7.Info 171.8.79.214 Aug Aug  23 02:56:53 2018 "
            + "S7506E-A %%10OSPF/6/ORIGINATE_LSA(t): OSPF TrapIDpID1.3.6.1.2.1..1.2.1.14.16.2.1.2.12ospfOriginateLsa: "
            + "Originate new LSA AreaId 0.0.0.0 LsdbType 5 LsdbLsid id 192.168.17.16Lsd LsdbRouterId Id 192.168.250.254"
            + " Rou Router er 192.168.250.254.";
        // 通过match()方法进行匹配, 对log进行解析, 按照指定的格式进行输出
        Match grokMatch = grok.match(logMsg);
        // 获取结果
        Map<String, Object> resultMap = grokMatch.capture();
        logger.info("Result = {}", resultMap);
    }

输出结果:
Result = {timestamp1=2018-08-23 02:56:53, MONTHNUM=08, HOUR=[02, null], level=Info, ip=171.8.79.214, SPACE=[ , , ], YEAR=2018, month=Aug, MINUTE=[56, null], SECOND=53, location=Local7, ISO8601_TIMEZONE=null, MONTHDAY=23}
以上是java-grok的简单使用,注释只是一些简单的个人理解,嗯…写的十分简洁…
想要深入了解的童鞋,可以去GitHub上看看: https://github.com/thekrakken/java-grok

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值