用户需要从github下载的源码,使用Golang语言编译器编译生成可执行文件。在开始编译前,需要准备好以下条件:

    • Linux操作系统的服务器
    • 安装好Golang, 1.10版本以上
    • 对应的TDengine版本。因为用到了TDengine的客户端动态链接库,因此需要安装好和服务端相同版本的TDengine程序;比如服务端版本是TDengine 2.0.0, 则在bailongma所在的linux服务器(可以与TDengine在同一台服务器,或者不同服务器)

    Bailongma项目中有一个文件夹blm_telegraf,存放了Telegraf的写入API程序。编译过程如下:

    一切正常的情况下,就会在对应的目录下生成一个blm_telegraf的可执行程序。

    安装Telegraf

    目前TDengine支持Telegraf 1.7.4以上的版本。用户可以根据当前的操作系统,到Telegraf官网下载安装包,并执行安装。下载地址如下:https://portal.influxdata.com/downloads

    在output plugins部分,增加[[outputs.http]]配置项:

    • url: bailongma API服务提供的URL, 参考下面的启动示例章节
    • json_timestamp_units: “1ms”

    在agent部分:

    • hostname: 区分不同采集设备的机器名称,需确保其唯一性
    • metric_batch_size: 100,允许Telegraf每批次写入记录最大数量,增大其数量可以降低Telegraf的请求发送频率。

    关于如何使用Telegraf采集数据以及更多有关使用Telegraf的信息,请参考Telegraf官方的。

    启动blm_telegraf程序

    blm_telegraf程序有以下选项,在启动blm_telegraf程序时可以通过设定这些选项来设定blm_telegraf的配置。

    1. TDengine服务端的IP地址,缺省值为空
    2. --batch-size
    3. blm_telegraf会将收到的telegraf的数据拼装成TDengine的写入请求,这个参数控制一次发给TDengine的写入请求中携带的数据条数。
    4. --dbuser
    5. 设置访问TDengine的用户名,缺省值是'root'
    6. 设置访问TDengine的密码,缺省值是'taosdata'
    7. --port
    8. blm_telegraftelegraf提供服务的端口号。

    假设blm_telegraf所在服务器的IP地址为”10.1.2.3”,则在telegraf的配置文件中, 在output plugins部分,增加[[outputs.http]]配置项:

    1. url = "http://10.1.2.3:8089/telegraf"

    查询telegraf写入数据

    telegraf产生的数据格式如下:

    其中,name字段为telegraf采集的时序数据的名称,tags字段为该时序数据的标签。blm_telegraf会以时序数据的名称在TDengine中自动创建一个超级表,并将tags字段中的标签转换成TDengine的tag值,Timestamp作为时间戳,fields字段中的值作为该时序数据的值。因此在TDengine的客户端中,可以通过以下指令查到这个数据是否成功写入。

    1. select * from cpu;

    MQTT是一流行的物联网数据传输协议,TDengine 可以很方便的接入 MQTT Broker 接受的数据并写入到 TDengine。