日志解析--ldetool

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了日志解析--ldetool脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

背景:

使用grok解析日志做字段拆分,性能上可能存在问题,尝试使用ldetool,与grok做下对比。

安装(windows)

下载压缩包:[ldetool](https://gIThub.COM/sirkon/ldetool)
使用idea打开
当前目录是 **D:webworkldetool**

日志解析--ldetool

实践

  1. 项目里已存在的demo是上图中红框所示的三个文件,下面按照README.md的步骤进行生成自己的demo,以便更容易熟悉其逻辑。

  2. 首先解决go mod的报错

    日志解析--ldetool

    直接删除go.mod里有关github.com/sirkon/gosrCFmt的配置即可

  3. README.md有下面一段话

    First write extraction script, we usually name it `<something>.lde`
    ……
    The recommended way is to put something like `//go:generate ldetool -- package main Line.lde` in `generate.go` of a package and then generate a code with `go generate <PRoject path>`
    
  4. 所以新建一个文件,如line.lde,填写以下内容

     Line = 
     ^'[' Time(string) ']' 
     ^" FETCH " 
     ^"first[" First(uint8) ']'[1]
     ^" format[" Format(string) ~']'
     ?Hidden (^" hidden[" Value(string) ']')
     ^" userAgent[" UserAgent(string) ']'
     _ "country[" Country(string)  ']'
     ;
    

    匹配的日志内容如下:

    [2017-09-02T22:48:13] FETCH first[1] format[JSON] hidden[0] userAgent[AndROId App v1.0] rnd[21341975] country[MA]
    [2017-09-02T22:48:14] FETCH first[0] format[JSON] userAgent[Android App v1.0] rnd[10000000] country[LC]
    

    具体语法可以查看TOOL_RULES.md

  5. 新建文件line.go,填写如下(包含双斜杠):

    //go:generate ldetool --package main line.lde
    
  6. terminal执行命令go generate D:webworkldetool,出现如下错误

    日志解析--ldetool

    line.go文件里就这行,然后报错了。试了几次后发现需要加个第行,就可以执行成功了。

    日志解析--ldetool

    日志解析--ldetool

    执行成功结果

    日志解析--ldetool

    生成相关处理该格式的日志的结构体对象

    日志解析--ldetool

  7. 编写gotest,日志内容是[2017-09-02T22:48:13] FETCH first[1] format[JSON] hidden["1"] userAgent[Android App v1.0] rnd[21341975] country[MA]

    日志解析--ldetool

    8. 执行结果如下:

    日志解析--ldetool

脚本宝典总结

以上是脚本宝典为你收集整理的日志解析--ldetool全部内容,希望文章能够帮你解决日志解析--ldetool所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。