Использование id_key с fluentd / elasticsearch

Недавно я начал пытаться использовать настройку fluentd + elasticsearch + kibana.
В настоящее время я загружаю информацию через fluentd, заставляя его читать файл журнала, который я выплевываю с помощью кода Python.
Журнал состоит из список данных json, по одному в строке, например:

{"id": "1","date": "2014-02-01T09:09:59.000+09:00","protocol": "tcp","source ip": "xxxx.xxxx.xxxx.xxxx","source port": "37605","country": "CN","organization": "China Telecom jiangsu","dest ip": "xxxx.xxxx.xxxx.xxxx","dest port": "23"}

У меня есть настройка fluentd, чтобы прочитать мое поле «id» и заполнить «_id» в соответствии с инструкциями здесь:

<source>
  type tail
  path /home/(usr)/bin1/fluentd.log
  tag es
  format json
  keys id, date, prot, srcip, srcport, country, org, dstip, dstport
  id_key id
  time_key date
  time_format %Y-%m-%dT%H:%M:%S.%L%:z
</source>

<match es.**>
  type elasticsearch
  logstash_format true
  flush_interval 10s # for testing
</match>

Однако "_id" после вставки вышеупомянутого по-прежнему оказывается случайно сгенерированным _id.
Если бы кто-нибудь мог указать мне, что я делаю не так, я был бы очень признателен.


person Cong Hui    schedule 26.02.2015    source источник


Ответы (1)


id_key id должен находиться внутри <match es.**>, а не <source>.

<source> - это плагин ввода, в данном случае - хвост. <match> предназначен для плагина вывода, в данном случае elasticsearch. Таким образом, конфигурация elasticsearch должна быть установлена ​​в <match>.

http://docs.fluentd.org/articles/config-file

person repeatedly    schedule 27.02.2015