Telegraf 写入
Telegraf 是一款十分流行的指标采集开源软件。在数据采集和平台监控系统中,Telegraf 可以采集多种组件的运行信息,而不需要自己手写脚本定时采集,降低数据获取的难度。
只需要将 Telegraf 的输出配置增加指向 taosAdapter 对应的 url 并修改若干配置项即可将 Telegraf 的数据写入到 TDengine 中。将 Telegraf 的数据存在到 TDengine 中可以充分利用 TDengine 对时序数据的高效存储查询性能和集群处理能力。
前置条件
要将 Telegraf 数据写入 TDengine Cloud,需要首先手动创建一个数据库。登录到 TDengine Cloud,在左边的菜单点击”数据浏览器“,然后再点击”数据库“标签旁边的” + “按钮添加一个名称是”telegraf“使用默认参数的数据库。
安装 Telegraf
假设您使用的是 Ubuntu 操作系统:
wget -q https://repos.influxdata.com/influxdb.key
echo '23a1c8836f0afc5ed24e0486339d7cc8f6790b83886c4c96995b88a061c5bb5d influxdb.key' | sha256sum -c && cat influxdb.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdb.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
sudo apt-get update && sudo apt-get install telegraf
安装结束以后,Telegraf 服务应该已经启动。请先停止它:
sudo systemctl stop telegraf
配置环境变量
在您的终端命令行里面执行下面的命令来保存 TDengine Cloud 的令牌和 URL 为环境变量:
export TDENGINE_CLOUD_URL="<url>"
export TDENGINE_CLOUD_TOKEN="<token>"
您可以使用真实的 TDengine Cloud 的 URL 和令牌来替换上面的<url>和<token>。可以通过访问TDengine Cloud来获取真实的值。
然后运行下面的命令来生成 telegraf.conf 文件。
telegraf --sample-config --input-filter cpu:mem --output-filter http > telegraf.conf
编辑”outputs.http“部分。
[[outputs.http]]
url = "${TDENGINE_CLOUD_URL}/influxdb/v1/write?db=telegraf&token=${TDENGINE_CLOUD_TOKEN}"
method = "POST"
timeout = "5s"
data_format = "influx"
influx_max_line_bytes = 250
配置完成后 Telegraf 会开始收集 CPU 和内容的数据并发送到 TDengine 的数据库”telegraf“。”telegraf“数据库必须先通过 TDengine Cloud 创建。
启动 Telegraf
使用新生的 telegraf.conf 文件启动 Telegraf。
telegraf --config telegraf.conf
验证
- 通过下面命令检查
weather数据库telegraf被创建出来:
show databases;

检查 weather 超级表 cpu 和 mem 被创建出来:
show telegraf.stables;

- TDengine 接收 influxdb 格式数据默认生成的子表名是根据规则生成的唯一 ID 值。 用户如需指定生成的表名,可以通过在 taos.cfg 里配置 smlChildTableName 参数来指定。如果通过控制输入数据格式,即可利用 TDengine 这个功能指定生成的表名。 举例如下:配置 smlChildTableName=tname 插入数据为 st,tname=cpu1,t1=4 c1=3 1626006833639000000 则创建的表名为 cpu1。如果多行数据 tname 相同,但是后面的 tag_set 不同,则使用第一行自动建表时指定的 tag_set,其他的行会忽略)。TDengine 无模式写入参考指南







