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 官網