通过事件类型将日志中继到Elasticsearch

时间:2019-02-04 00:29:59

标签: elasticsearch filter fluentd

我有如下的json日志:

{"event": "{"eventType": "pageview","userId": "2122334"}"}
{"event": "{"eventType": "reload","userId": "2122334"}"}

我需要将事件中继到基于它们的eventType的单独的Elasticsearch索引。我对在流利使用标签,规则中的模式等方面感到困惑。

一种方法是按类型标记事件,然后将不同的索引发送给elasticsearch。但我找不到如何执行此操作的示例。

任何帮助表示赞赏。

谢谢

1 个答案:

答案 0 :(得分:0)

鉴于您的日志采用JSON格式,则您的源代码部分将显示以下内容:

  <parse>
    @type json
    time_key $.log.myTimeField  # optional, just for you to see how to retrieve keys from json.
    keep_time_key true   # optional
  </parse>

然后您可以进行如下匹配:

  <match **>
    @type copy
    <store>
      @type elasticsearch
      host 127.0.0.1
      port 9200
      index_name logs.${myKey}
      include_tag_key true
      <buffer tag, myKey>
        flush_at_shutdown true
        flush_mode immediate
        flush_thread_count 8
      </buffer>
    </store>
  </match>

请注意,您将需要缓冲区部分。这个例子很简单,也许您可​​以尝试这样的方法来满足您的需求:

index_name日志。$ {event [“ eventType”]}

我知道这是一个老问题,但是希望可以有所帮助。祝你好运!