带有时间戳的Fluend中的自定义logstash索引

时间:2019-07-09 19:37:01

标签: logstash fluentd

我正在尝试建立一个流利的服务来收集日志并将其发送到弹性搜索。

一切都很好,除了我无法获得自定义索引名称并保持类似于logstash_format: true的时间戳。

这是我的fluent.conf文件:

<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>
<match *.**>
  @type copy
  <store>
    @type elasticsearch
    hosts hostaddressandport
    user theuser
    password password
    include_tag_key true
    tag_key @log_name
    index_name myindex-%Y.%m
    <buffer>
      flush_interval 3s
    </buffer>
  </store>
</match>

该索引实际上是弹性创建的,它显示myindex-%Y.%m我已经尝试过myindex-$ {%Y.%m}并获得相同的行为。

如果我改用logstash_format: true,则会得到类似logstash-2019.07.09的索引,但我不希望这样。

这是我从https://docs.fluentd.org/output/elasticsearch那里得到想法的地方,但是我没有看到预期的行为。

我在上述文档中找到了以下内容:

<buffer tag, time>
  timekey 1h # chunks per hours ("3600" also available)
</buffer>

但是它很模糊,我不明白chunk_keys是什么。

2 个答案:

答案 0 :(得分:0)

您可以使用logstash_formatlogstash_prefix来更改索引前缀。不过,这不会使用您需要的日期格式。

logstash_format true
logstash_prefix myindex

答案 1 :(得分:0)

请使用此配置,您将获得索引名称的自定义日期格式

配置文件

<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>
<match *.**>
  @type copy
  <store>
    @type elasticsearch
    hosts hostaddressandport
    user theuser
    password password
    include_tag_key true
    tag_key @log_name
    logstash_format true
    logstash_dateformat %Y.%m
    logstash_prefix index_name
    <buffer>
      flush_interval 3s
    </buffer>
  </store>
</match>

输出

indexname-2021.08