Grok的使用

Grok是一个数据结构化工具。只需要通过简单地变量定义,我们就可以将文本格式的字符串,转换成为具体的结构化的数据。

举个例子,对于下面的日志如果要做分析,提取出关键数据如时间,请求id,耗时等等,如果单纯对下面字符串做分析,会很麻烦,如果使用Grok,就可以将下面的日志结构化,再分析就比较方便了。

2016-09-05 15:38:45.997 [catalina-exec-6] [INFO ] base.controller.BaseController [] [] KEY:93844515-1bb3-476a-9bd6-dd043ce12de11473061124949 ACTION[querybookbyname] RESP_COST[10]MS, REQ_DATA[{"action":"querybookbyname","actiondata":{
结构化后:
timestamp=2016-09-05 15:38:45.997
threadname=catalina-exec-6
loglevel=INFO 
requestid=93844515-1bb3-476a-9bd6-dd043ce12de11473061124949
action=querybookbyname
costtime=10

logstash的日志收集中就使用了Grok,使用起来非常方便,写Grok的表达式很麻烦。下面提供几种调试表达式方法和资料:

  • Grok for java
  • Grok Constructor
  • Grok Debugger 很难用
  • 可参考logstash配置
  • 可参考oniguruma
  • logstash-patterns-core
  • 正则表达式30分钟入门教程

你可能感兴趣的:(分布式和并发编程)