【问题标题】:How to use FluentD as a buffer between Telegraf and InfluxDB如何使用 FluentD 作为 Telegraf 和 InfluxDB 之间的缓冲区
【发布时间】:2020-01-31 02:02:59
【问题描述】:

有什么方法可以将从 Telegraf 收集的指标发送到 FluentD,然后发送到 InfluxDB?

我知道将数据从 FluentD 写入 InfluxDB 是可能的;但是如何将数据从 Telegraf 传送到 FluentD,基本上使用 FluentD 作为缓冲区(而不是使用 Kafka 或 Redis)?

【问题讨论】:

    标签: influxdb fluentd telegraf kapacitor


    【解决方案1】:

    虽然使用一些可用的输出插件(例如 InfluxDB-Metrics)可能与 FluentD 相关,但我无法让插件正常工作,并且六年多没有更新,因此它可能不适用于较新版本的 FluentD。

    Fluent Bit 但是,它内置了一个 Influxdb 输出,所以我能够让它与它一起工作。需要注意的是它没有 Telegraf 插件。所以我找到的解决方案是在 Fluent Bit 中设置一个tcp input plugin,并设置 Telegraf 在其输出部分向其写入 JSON 格式的数据。

    这样做的警告是,JSON 数据是嵌套的,并且没有为 InfluxDB 正确格式化。解决方法是在 Fluent Bit 中使用 nest filters 来“提升”嵌套数据格式,并为 InfluxDB 重新格式化。

    以下是磁盘空间的示例,它不是 Fluent Bit 指标原生支持但 Telegraf 原生支持的指标:

    @SET me=${HOST_HOSTNAME}
    
    [INPUT]  ## tcp recipe  ## Collect data from telegraf
        Name          tcp
        Listen        0.0.0.0
        Port          5170
        Tag           telegraf.${me}
        Chunk_Size    32
        Buffer_Size   64
        Format        json
    [FILTER]  ## rename the three tags sent from Telegraf to prevent duplicates
        Name          modify
        Match         telegraf.*
        Condition Key_Value_Equals name disk
        Rename        fields   fieldsDisk
        Rename        name     nameDisk
        Rename        tags     tagsDisk
    [FILTER]  ## un-nest nested JSON formatted info under 'field' tag
        Name          nest
        Match         telegraf.*
        Operation     lift
        Nested_under  fieldsDisk
        Add_prefix    disk.
    [FILTER]  ## un-nest nested JSON formatted info under 'disk' tag
        Name          nest
        Match         telegraf.*
        Operation     lift
        Nested_under  tagsDisk
        Add_prefix    disk.
    [OUTPUT]  ## output properly formatted JSON info
        Name          influxdb
        Match         telegraf.*
        Host          influxdb.server.com
        Port          8086
        #HTTP_User     whatever
        #HTTP_Passwd   whatever
        Database      telegraf.${me}
        Sequence_Tag  point_in_time
        Auto_Tags     On
    

    注意:这只是我自己的概念证明的一个简单尴尬的配置

    【讨论】:

      猜你喜欢
      • 2015-11-27
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 2017-01-31
      • 2018-11-02
      • 2019-10-14
      相关资源
      最近更新 更多