将 id_key 与 fluentd/elasticsearch 一起使用

Posted

技术标签:

【中文标题】将 id_key 与 fluentd/elasticsearch 一起使用【英文标题】:Using id_key with fluentd/elasticsearch 【发布时间】:2015-02-26 07:02:36 【问题描述】:

我最近开始尝试使用 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"

按照here 的说明,我有流畅的设置来读取我的字段“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。 如果有人能指出我做错了什么,我将不胜感激。

【问题讨论】:

【参考方案1】:

id_key id 应该在内部&lt;match es.**&gt;,而不是&lt;source&gt;

&lt;source&gt; 用于输入插件,在这种情况下为尾部。 &lt;match&gt; 用于输出插件,在这种情况下是弹性搜索。 所以elasticsearch配置应该设置在&lt;match&gt;中。

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

【讨论】:

以上是关于将 id_key 与 fluentd/elasticsearch 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何根据日期计算查询中的总数?

Codeigniter 和 Oracle 获取插入查询的 last_id

php [将产品与社交共享插件集成]将社交共享插件与WooCommerce集成 - Sharedaddy

php [将产品与社交共享插件集成]将社交共享插件与WooCommerce集成 - Sharedaddy

php [将产品与社交共享插件集成]将社交共享插件与WooCommerce集成 - Sharedaddy

php [将产品与社交共享插件集成]将社交共享插件与WooCommerce集成 - 分享此功能