使用 Telegraf 向 TDengine 写入数据

Telegraf 是一款十分流行的指标采集开源软件。在数据采集和平台监控系统中,Telegraf 可以采集多种组件的运行信息,而不需要自己手写脚本定时采集,降低数据获取的难度。

只需要将 Telegraf 的输出配置增加指向 taosAdapter 对应的 url 并修改若干配置项即可将 Telegraf 的数据写入到 TDengine 中。将 Telegraf 的数据存在到 TDengine 中可以充分利用 TDengine 对时序数据的高效存储查询性能和集群处理能力。

前置条件

要将 Telegraf 数据写入 TDengine 需要以下几方面的准备工作。

  • TDengine 集群已经部署并正常运行
  • taosAdapter 已经安装并正常运行。具体细节请参考 taosAdapter 的使用手册
  • Telegraf 已经安装。安装 Telegraf 请参考 官方文档
  • Telegraf 默认采集系统运行状态数据。通过使能 输入插件方式可以输出 其他格式 的数据到 Telegraf 再写入到 TDengine 中。

配置步骤

在 Telegraf 配置文件(默认位置 /etc/telegraf/telegraf.conf)增加 outputs.http 输出模块配置:

复制代码
[[outputs.http]]
  url = "http://<taosAdapter's host>:<REST service port>/influxdb/v1/write?db=<database name>"
  ...
  username = "<TDengine's username>"
  password = "<TDengine's password>"
  ...

其中 <taosAdapter's host> 请填写运行 taosAdapter 服务的服务器域名或 IP 地址,<REST service port> 请填写 REST 服务的端口(默认为 6041),<TDengine's username> 和 <TDengine's password> 请填写当前运行的 TDengine 实际配置,<database name> 请填写希望在 TDengine 保存 Telegraf 数据的数据库名。

示例如下:

复制代码
[[outputs.http]]
  url = "http://127.0.0.1:6041/influxdb/v1/write?db=telegraf"
  method = "POST"
  timeout = "5s"
  username = "root"
  password = "taosdata"
  data_format = "influx"

验证方法

重启 Telegraf 服务:

复制代码
sudo systemctl restart telegraf

使用 TDengine CLI 验证从 Telegraf 向 TDengine 写入数据并能够正确读出:

复制代码
taos> show databases;
              name              |
=================================
 information_schema             |
 performance_schema             |
 telegraf                       |
Query OK, 3 rows in database (0.010568s)

taos> use telegraf;
Database changed.

taos> show stables;
              name              |
=================================
 swap                           |
 cpu                            |
 system                         |
 diskio                         |
 kernel                         |
 mem                            |
 processes                      |
 disk                           |
Query OK, 8 row(s) in set (0.000521s)

taos> select * from telegraf.system limit 10;
              ts               |           load1           |           load5           |          load15           |        n_cpus         |        n_users        |        uptime         | uptime_format |              host
|
=============================================================================================================================================================================================================================================
 2022-04-20 08:47:50.000000000 |               0.000000000 |               0.050000000 |               0.070000000 |                     4 |                     1 |                  5533 |  1:32         | shuduo-1804
|
 2022-04-20 08:48:00.000000000 |               0.000000000 |               0.050000000 |               0.070000000 |                     4 |                     1 |                  5543 |  1:32         | shuduo-1804
|
 2022-04-20 08:48:10.000000000 |               0.000000000 |               0.040000000 |               0.070000000 |                     4 |                     1 |                  5553 |  1:32         | shuduo-1804
|
Query OK, 3 row(s) in set (0.013269s)

提示

TDengine 接收 influxdb 格式数据默认生成的子表名是根据规则生成的唯一 ID 值。

用户如需指定生成的表名,可以通过在 taos.cfg 里配置 smlChildTableName 参数来指定。如果通过控制输入数据格式,即可利用 TDengine 这个功能指定生成的表名。

举例如下:配置 smlChildTableName=tname 插入数据为 st,tname=cpu1,t1=4 c1=3 1626006833639000000 则创建的表名为 cpu1。如果多行数据 tname 相同,但是后面的 tag_set 不同,则使用第一行自动建表时指定的 tag_set,其他的行会忽略)。
TDengine 无模式写入参考指南

访问官网

更多内容欢迎访问 TDengine 官网

相关推荐
云手机掌柜11 分钟前
技术深度解析:指纹云手机如何通过设备指纹隔离技术重塑多账号安全管理
大数据·服务器·安全·智能手机·矩阵·云计算
恒悦sunsite1 小时前
Ubuntu之apt安装ClickHouse数据库
数据库·clickhouse·ubuntu·列式存储·8123
奥尔特星云大使2 小时前
MySQL 慢查询日志slow query log
android·数据库·mysql·adb·慢日志·slow query log
来自宇宙的曹先生2 小时前
MySQL 存储引擎 API
数据库·mysql
间彧2 小时前
MySQL Performance Schema详解与实战应用
数据库
间彧2 小时前
MySQL Exporter采集的关键指标有哪些,如何解读这些指标?
数据库
weixin_446260852 小时前
Django - 让开发变得简单高效的Web框架
前端·数据库·django
河南博为智能科技有限公司3 小时前
动力环境监控主机-全方位一体化监控解决方案
运维·服务器·人工智能·物联网·边缘计算
mpHH3 小时前
babelfish for postgresql 分析--todo
数据库·postgresql
zizisuo3 小时前
解决在使用Lombok时maven install 找不到符号的问题
java·数据库·maven