Skip to content

Best Practice

Sun Jianbo edited this page Jul 26, 2017 · 12 revisions

在实际使用logkit的过程中,我们总结了一些最佳实践:

  1. 如果有多个sender,并且希望sender之间互不影响,那么我们建议做成多份配置文件,而不是单份配置文件写多个sender。
  2. 如果多个reader,并且每个reader都不能遗漏日志,那么每一个reader都应该对应配置一个cleaner,来控制日志的删除。
  3. 在发送到Pandora的过程中,如果发现repo创建错误,需要修改,那么先把发送到pandora的logkit配置移除,修改为新的以后,再将配置移入,无需重启logkit。
  4. 我们在grok_patterns里面写了一些基本的示例,其中NGINX_LOG比COMMON_LOG_FORMAT性能好,PADNORA_NGINX是我们自己的nginx配置生成的匹配,更全面。grok的pattern编写完请一定要看一下benchmark,参阅grok文章

带有默认值的最佳实践配置

如下为一份配置,“#”号标注指带有默认值

{
    "name":"exportd.csv",
    #"batch_len": 1000,
    #"batch_size": 2097152,
    "reader":{
        "log_path":"/path/to/log",
        #"meta_path":"./meta/{{.env}}/reader", # defalut: CURRENT_WORK_DIR/meta/<NAME-{hash(NAME)}>/
        #"mode":"dir",
        #"ignore_hidden":"true",
        #"valid_file_pattern":"*"
    },
    "parser":{
        "name":"exportd_csv",
        "type":"csv",
	#"csv_splitter":"\t",
        "csv_schema":"logtype string, service string, timestamp long, tags jsonmap, fields jsonmap,unkown string",
        "labels":"machine {{.node}}"
    },
    "senders":[{
        "name":"pandora_sender",
        "sender_type":"pandora",
        "pandora_ak":"<your qiniu access key>",
        "pandora_sk":"<your qiniu secret key>",
        "pandora_host":"https://pipeline.qiniu.com",
        "pandora_repo_name":"<your pandora repo(工作流名称)>",
        "pandora_region":"nb",
        "pandora_schema_free":"true",
        "pandora_enable_logdb":"true",
        "fault_tolerant":"true",
        "ft_save_log_path":"./ft_log",
        "ft_strategy":"always_save",
        "ft_procs":"2"
    }]
}
Clone this wiki locally