使用 collected 向 TDengine 写入数据

发布于:2025-07-02 ⋅ 阅读:(45) ⋅ 点赞:(0)

在这里插入图片描述

collectd 是一个用来收集系统性能的守护进程。collectd 提供各种存储方式来存储不同值的机制。它会在系统运行和存储信息时周期性的统计系统的相关统计信息。利用这些信息有助于查找当前系统性能瓶颈和预测系统未来的负载等。

只需要将 collectd 的配置指向运行 taosAdapter 的服务器域名(或 IP 地址)和相应端口即可将 collectd 采集的数据写入到 TDengine,可以充分利用 TDengine 对时序数据的高效存储查询性能和集群处理能力。

前置条件

要将 collectd 数据写入 TDengine,需要几方面的准备工作。

  • TDengine 集群已经部署并正常运行
  • taosAdapter 已经安装并正常运行,具体细节请参考 taosAdapter 的使用手册
  • collectd 已经安装。安装 collectd 请参考 官方文档

配置步骤

配置 taosAdapter

配置 taosAdapter 接收 collectd 数据的方法:

  • 在 taosAdapter 配置文件(默认位置为 /etc/taos/taosadapter.toml)中使能配置项

    ...
    [opentsdb_telnet]
    enable = true
    maxTCPConnections = 250
    tcpKeepAlive = false
    dbs = ["opentsdb_telnet", "collectd", "icinga2", "tcollector"]
    ports = [6046, 6047, 6048, 6049]
    user = "root"
    password = "taosdata"
    ...
    

    其中 taosAdapter 默认写入的数据库名称为 collectd,也可以修改 taosAdapter 配置文件 dbs 项来指定不同的名称。user 和 password 填写实际 TDengine 配置的值。修改过配置文件 taosAdapter 需重新启动。

  • 使用 taosAdapter 命令行参数或设置环境变量启动的方式,使能 taosAdapter 接收 collectd 数据功能,具体细节请参考 taosAdapter 的参考手册。

配置 collectd

collectd 使用插件机制可以以多种形式将采集到的监控数据写入到不同的数据存储软件。TDengine 支持直接采集插件和 write_tsdb 插件。

  1. 配置直接采集插件

    修改 collectd 配置文件(默认位置 /etc/collectd/collectd.conf)相关配置项。

    LoadPlugin network
    <Plugin network>
             Server "<taosAdapter's host>" "<port for collectd direct>"
    </Plugin>
    

    其中 <taosAdapter’s host> 填写运行 taosAdapter 的服务器域名或 IP 地址。<port for collectd direct> 填写 taosAdapter 用于接收 collectd 数据的端口(默认为 6045)。

    示例如下:

    LoadPlugin network
    <Plugin network>
             Server "127.0.0.1" "6045"
    </Plugin>
    
  2. 配置 write_tsdb 插件

    修改 collectd 配置文件(默认位置 /etc/collectd/collectd.conf)相关配置项。

    LoadPlugin write_tsdb
    <Plugin write_tsdb>
            <Node>
                    Host "<taosAdapter's host>"
                    Port "<port for collectd write_tsdb plugin>"
                    ...
            </Node>
    </Plugin>
    

    其中 <taosAdapter’s host> 填写运行 taosAdapter 的服务器域名或 IP 地址。<port for collectd write_tsdb plugin> 填写 taosAdapter 用于接收 collectd write_tsdb 插件的数据(默认为 6047)。

    LoadPlugin write_tsdb
    <Plugin write_tsdb>
            <Node>
                    Host "127.0.0.1"
                    Port "6047"
                    HostTags "status=production"
                    StoreRates false
                    AlwaysAppendDS false
            </Node>
    </Plugin>
    

    然后重启 collectd:

    systemctl restart collectd
    

验证方法

重启 collectd

sudo systemctl restart collectd

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

taos> show databases;
              name              |
=================================
 information_schema             |
 performance_schema             |
 collectd                       |
Query OK, 3 row(s) in set (0.003266s)

taos> use collectd;
Database changed.

taos> show stables;
              name              |
=================================
 load_1                         |
 memory_value                   |
 df_value                       |
 load_2                         |
 load_0                         |
 interface_1                    |
 irq_value                      |
 interface_0                    |
 entropy_value                  |
 swap_value                     |
Query OK, 10 row(s) in set (0.002236s)

taos> select * from collectd.memory_value limit 10;
              ts               |           value           |              host              |         type_instance          |           type           |
=========================================================================================================================================================
 2022-04-20 09:27:45.459653462 |        54689792.000000000 | shuduo-1804                    | buffered                       | memory                   |
 2022-04-20 09:27:55.453168283 |        57212928.000000000 | shuduo-1804                    | buffered                       | memory                   |
 2022-04-20 09:28:05.453004291 |        57942016.000000000 | shuduo-1804                    | buffered                       | memory                   |
 2022-04-20 09:27:45.459653462 |      6381330432.000000000 | shuduo-1804                    | free                           | memory                   |
 2022-04-20 09:27:55.453168283 |      6357643264.000000000 | shuduo-1804                    | free                           | memory                   |
 2022-04-20 09:28:05.453004291 |      6349987840.000000000 | shuduo-1804                    | free                           | memory                   |
 2022-04-20 09:27:45.459653462 |       107040768.000000000 | shuduo-1804                    | slab_recl                      | memory                   |
 2022-04-20 09:27:55.453168283 |       107536384.000000000 | shuduo-1804                    | slab_recl                      | memory                   |
 2022-04-20 09:28:05.453004291 |       107634688.000000000 | shuduo-1804                    | slab_recl                      | memory                   |
 2022-04-20 09:27:45.459653462 |       309137408.000000000 | shuduo-1804                    | used                           | memory                   |
Query OK, 10 row(s) in set (0.010348s)

提示:

  • TDengine 默认生成的子表名是根据规则生成的唯一 ID 值。

关于 TDengine

TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。它能安全高效地将大量设备每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,并提供 AI 智能体对数据进行预测与异常检测,提供实时的商业洞察。


网站公告

今日签到

点亮在社区的每一天
去签到