前段时间的项目中接触到了Telegraf,telegarf接收来自mqtt发送的数据,同时将数据存储到InfluxDB中,后来随便项目的开发,需要将不同的数据源写入到不同的Influxdb中。上网查了一下,需要用到Metric Filtering,特此记录一下。
这个操作使用的是 Metric Filtering的 Selectors 功能,其中包括
namepass,namedrop,tagpass,tagdrop
name针对measurement的名称,而tag对应标签。pass是白名单,drop是黑名单,他们都是以[“”,“”]的形式存在。它的关系是或,只要满足一条即可。
直接贴上代码,然后下面解释一下。
步骤1
上面代码的目的是:创建两个不同的Influxdb数据库,名字分别为telegraf1和telegraf2.
步骤2
上面代码的目的是:创建两个不同的measurements, 分别为mqtt_info和mqtt_info2。这个时候就会出现一个问题,步骤1中创建的两个数据库分别对应的是哪个measurements。这个时候就回到步骤1中的namepass,只需要把要对应的measurements名字填写到namepass即可。
这样最后就会生成两个数据库,分别为telegraf1和telegraf2,telegraf1中有mqtt_info,telegraf2中有mqtt_info2。
参考:https://amefs.net/archives/2280.html#:~:text=Telegraf%20%E5%A4%9A%E8%BE%93%E5%85%A5%E5%A4%9A%E8%BE%93%E5%87%BA%20Telegraf%20%E5%8F%AF%E4%BB%A5%E5%B0%86%E4%B8%8D%E5%90%8C%E7%9A%84%E6%95%B0%E6%8D%AE%E6%9D%A5%E6%BA%90%EF%BC%88%E8%BE%93%E5%85%A5%EF%BC%89%E5%86%99%E5%85%A5%E5%A4%9A%E4%B8%AA%E4%B8%8D%E5%90%8C%E7%9A%84%20InfluxDB,%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%88%E8%BE%93%E5%87%BA%EF%BC%89%EF%BC%8C%E6%88%96%E8%80%85%E5%8D%95%E4%B8%AA%20InfluxDB%20%E7%9A%84%E4%B8%8D%E5%90%8C%20bucket%2F%E8%A1%A8%20%E5%86%99%E5%85%A5%E6%95%B0%E6%8D%AE%E3%80%82
https://www.ishells.cn/archives/telegraf-multipleinput-output-sources#3%E5%A4%9A%E8%BE%93%E5%85%A5%E6%BA%90%E5%A4%9A%E8%BE%93%E5%87%BA%E6%BA%90%E5%85%B7%E4%BD%93%E5%AE%9E%E7%8E%B0