白驹过隙,这篇文章距今已有一年以上的历史。技术发展日新月异,文中的观点或代码很可能过时或失效,请自行甄别:)

官方Github地址:

https://github.com/influxdata/telegraf

input 的grok 文档:

https://github.com/influxdata/telegraf/tree/master/plugins/inputs/logparser

logparser 用来监听 log 文件的变化,主要用 grok,而 grok 是 logstash 的语法,文档在这里:https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html

如果要测试 grok,这里有一个在线的测试http://grokdebug.herokuapp.com/

telegraf 的 telegraf 配置

[[inputs.logparser]]
files=["/Users/scofield/go/src/git.coding.net/zzjz/payment.git/log/*.log"]
from_beginning=false
watch_method="inotify"
tags=["level"]
  [inputs.logparser.grok]
  patterns=['\[%{LOGLEVEL:level}\] %{TIMESTAMP_ISO8601:timestamp:ts-"2006-01-02 15:04:05"} %{UNIXPATH:file}:%{NUMBER:line:int} %{MESSAGE:message}']
  measurement="payment_log"
  custom_patterns='''
      MESSAGE [\w\W]{1,}
  '''
  timezone="Asia/Shanghai"