虽然可以使用一些可用但过时的输出插件来使用FluentD,例如
InfluxDB-Metrics
,我无法让插件正常工作,而且它已经六年多没有更新了,所以它可能无法与FluentD的新版本一起使用。
然而,Fluent Bit内置了Influxdb输出,所以我能够让它使用它。需要注意的是,它没有Telegraf插件。所以我找到的解决方案是设置一个
tcp input plugin
在Fluent Bit中,设置Telegraf在其输出部分写入JSON格式的数据。
这样做的警告是,JSON数据是嵌套的,对于InfluxDB格式不正确。解决方法是使用
nest filters
在Fluent Bit中“提升”嵌套数据格式,并为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
注:
对于我自己的概念证明来说,这只是一个简单而尴尬的配置