Skip to content

Parsers

Sun Jianbo edited this page May 23, 2017 · 10 revisions

Parser 是在数据被logkit读取后,用户可以根据需要定制化的解析日志格式,抽取数据中的字段,转化为结构化数据的方式。

目前logkit已经内置7中数据解析方式,他们分别为:

  1. csv(按行通过分隔符解析): csv parser
  2. json(通过json反序列化解析): json parser
  3. grok(通过配置grok pattern解析): grok parser
  4. _sql(内置的sql解析): Inner SQL Parser
  5. qiniulog(七牛开源的golang日志库日志格式解析): Qiniu Log Parser
  6. kafkarest(Kafkarest日志解析): KafkaRestLog Parser
  7. raw(直接按行读取返回): Raw Parser

若上述内置的解析器依旧无法满足您的需求,Logkit也支持用户根据需要自己实现解析逻辑,只需要实现如下两个接口。具体的构建方式参见自定义Parser和Sender

type LogParser interface {
    Name() string
    // parse lines into structured datas
    Parse(lines []string) (datas []sender.Data, err error)
}

Parser 典型配置如下

    "parser":{
        "name":"req_csv",
        "type":"csv",
        "labels":"machine nb110,team pandora"
    },
  1. name parser的name,用来标识
  2. type parser的类型
  3. labels 对于所有的Parser,我们均提供了标签功能,用于记录一些额外的信息,添加到结构化的数据字段中,如常见的日志所在机器、业务所述团队等信息,labels的写法则是标签名称和数值以空格隔开<标签名> <标签内容>,多个标签提供逗号分隔。

根据不同的Parser,还需要填写其他特定Parser相关的配置文件,详情请参阅各Parser的配置页面。

Clone this wiki locally