TDengine 集成 collectd:通过 taosAdapter 接入系统监控数据的完整指南
TDengine 集成 collectd通过 taosAdapter 接入系统监控数据的完整指南【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDenginecollectd 是一个广泛使用的系统性能采集守护进程通过插件机制可以将采集到的 CPU、内存、磁盘、网络等指标以多种协议输出。本文以 TDengine 开源仓库官方文档为主体完整讲解如何将 collectd 采集的数据写入 TDengine包括 write_tsdb 插件OpenTSDB 协议与二进制协议network 插件两种接入方式、taosAdapter 与 collectd 两侧的完整配置、参数语义、验证方法以及底层数据模型帮助你快速搭建collectd 采集 → taosAdapter 转发 → TDengine 存储查询的监控数据链路充分利用 TDengine 对时序数据的高效存储、查询性能和集群处理能力。collectd 写入 TDengine 的工作原理collectd 是一个用来收集系统性能的守护进程。它提供各种存储方式来存储不同值的机制会在系统运行和存储信息时周期性地统计系统的相关统计信息。利用这些信息有助于查找当前系统性能瓶颈和预测系统未来的负载。collectd 采用插件机制将采集到的监控数据以不同格式写入不同的数据存储软件。TDengine 支持写入两种来源的 collectd 数据对应的接入路径如下详见 taosAdapter 参考手册 中的相关章节collectd write_tsdb 插件这是 collectd 官方插件将监控数据转换为 OpenTSDB 协议格式并发送给后端存储系统。taosAdapter 通过opentsdb_telnet端口组中的对应端口默认 6047接收。collectd 二进制协议数据collectd 通过network插件以二进制协议直接发送原始数据taosAdapter 通过独立的[collectd]端口默认 6045接收。两种方式都不需要编写任何自定义代码——只需要将 collectd 的配置指向运行 taosAdapter 的服务器域名或 IP 地址和相应端口即可将 collectd 采集的数据写入 TDengine。整体架构如下collectd ──(write_tsdb 插件, OpenTSDB telnet 协议, 端口 6047)──▶ taosAdapter ──▶ TDengine 集群 collectd ──(network 插件, 二进制协议, 端口 6045)──────────────▶ taosAdapter ──▶ TDengine 集群前置条件要将 collectd 数据写入 TDengine需要以下几方面的准备工作TDengine 集群已经部署并正常运行。taosAdapter 已经安装并正常运行具体细节请参考 taosAdapter 的使用手册。taosAdapter 是 TDengine 的配套工具作为 TDengine 集群与应用之间的桥梁和适配器负责接收数据采集代理如 Telegraf、StatsD、collectd 等的数据并提供 InfluxDB/OpenTSDB 兼容的数据写入接口。collectd 已经安装安装 collectd 请参考其官方文档。在主流 Linux 发行版上通常可通过系统包管理器直接安装例如apt install collectd或yum install collectd。taosAdapter 作为 TDengine 服务端软件的一部分随服务器安装。安装完成后可以通过systemctl start taosadapter启动 taosAdapter 服务。方式一通过 write_tsdb 插件写入OpenTSDB telnet 协议配置 taosAdapter在 taosAdapter 配置文件默认位置为/etc/taos/taosadapter.toml中开启对应配置项使 taosAdapter 能够接收 collectd write_tsdb 插件的数据# 若设置为 true则使用 schemaless 特性写入数据时自动创建数据库 smlAutoCreateDB true [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你也可以修改配置文件中的dbs项来指定其他名称。上述dbs与ports数组按下标一一对应分别服务于 OpenTSDB telnet、collectd write_tsdb、icinga2、tcollector 四类兼容 OpenTSDB telnet 协议的采集端collectd write_tsdb 插件默认使用6047端口。user和password请填写实际的 TDengine 配置值。修改配置文件后需要重启 taosAdapter 使配置生效。配置 collectd修改 collectd 配置文件默认位置为/etc/collectd/collectd.conf加载write_tsdb插件并指向 taosAdapterLoadPlugin write_tsdb Plugin write_tsdb Node Host taosAdapters host Port port for collectd write_tsdb plugin ... /Node /PlugintaosAdapters 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 statusproduction StoreRates false AlwaysAppendDS false /Node /Plugin上述示例中还展示了几个常用可选配置HostTags用于为所有指标附加公共标签如statusproductionStoreRates控制是否以速率形式存储计数值AlwaysAppendDS控制是否始终追加数据源DS名称。方式二通过 collectd 二进制协议写入network 插件配置 taosAdapter在 taosAdapter 配置文件默认位置为/etc/taos/taosadapter.toml中开启[collectd]配置段... [collectd] enable true port 6045 db collectd user root password taosdata worker 10 ...默认情况下 taosAdapter 写入的数据库名为collectd你可以修改配置文件中的db项来指定其他名称。user和password请填写实际的 TDengine 配置值。修改配置文件后需要重启 taosAdapter 使配置生效。配置 collectd修改 collectd 配置文件默认位置为/etc/collectd/collectd.conf加载network插件LoadPlugin network Plugin network Server taosAdapters host port for collectd direct /PlugintaosAdapters host填写运行 taosAdapter 的服务器域名或 IP 地址。port for collectd direct填写 taosAdapter 用于接收 collectd 二进制数据的端口默认是6045。示例LoadPlugin network Plugin network Server 127.0.0.1 6045 /Plugin然后重启 collectdsystemctl restart collectd两种方式对比与选型建议对比维度write_tsdb 插件方式一network 插件二进制协议方式二collectd 侧插件write_tsdbnetwork数据格式OpenTSDB telnet 文本协议collectd 二进制协议taosAdapter 配置段[opentsdb_telnet][collectd]默认端口60476045默认数据库collectd由dbs数组指定collectd由db指定附加能力可配置 HostTags、StoreRates 等可配置 worker 线程数两种方式最终都通过 taosAdapter 内部的 schemaless 写入链路进入 TDengine实际选择取决于 collectd 实例中已启用的插件若已有 OpenTSDB 相关输出习惯或需要与其他 OpenTSDB 生态工具共用端口组可选择方式一若希望直接复用 collectd 二进制协议、配置最简可选择方式二。taosAdapter 相关配置参数详解除上面的示例配置外taosAdapter 参考手册 对相关配置参数给出了完整的默认值与语义理解这些参数有助于针对生产环境进行调优。collectd 二进制协议参数[collectd]段collectd.enable是否启用 collectd 协议支持默认false。collectd.portcollectd 服务监听端口默认6045。collectd.dbcollectd 数据的目标数据库默认collectd。collectd.user数据库用户名默认root。collectd.password数据库密码默认taosdata。collectd.token数据库令牌默认TDengine 企业版 3.4.0.0 及以上可用。collectd.ttl数据生存时间默认0表示永不过期。collectd.worker写入工作线程数默认10。OpenTSDB telnet 参数[opentsdb_telnet]段opentsdb_telnet.enable是否启用 OpenTSDB Telnet 协议默认false注意该协议本身不携带鉴权信息。opentsdb_telnet.ports监听端口数组默认[6046, 6047, 6048, 6049]依次对应 OpenTSDB telnet、collectd write_tsdb、icinga2、tcollector。opentsdb_telnet.dbs目标数据库数组与ports一一对应参考手册中给出的默认值为[opentsdb_telnet, collectd_tsdb, icinga2_tsdb, tcollector_tsdb]在 collectd 接入文档的示例配置中则将其中的 collectd 数据库显式指定为collectd二者按实际部署需求选用即可。opentsdb_telnet.user数据库用户名默认root。opentsdb_telnet.password数据库密码默认taosdata。opentsdb_telnet.ttl数据 TTL默认0。opentsdb_telnet.token数据库令牌默认TDengine 企业版 3.4.0.0 及以上可用。opentsdb_telnet.batchSize批量写入大小默认1。opentsdb_telnet.flushInterval刷新间隔默认0s。opentsdb_telnet.maxTCPConnections最大 TCP 连接数默认250。opentsdb_telnet.tcpKeepAlive是否启用 TCP KeepAlive默认false。公共参数smlAutoCreateDB从 3.0.4.0 版本起提供控制写入 schemaless 协议时是否自动创建数据库。当设置为true时如果目标数据库不存在taosAdapter 会在收到数据时自动创建当为false默认值时需要手动创建数据库否则写入失败。该参数同样作用于 collectd 数据写入等 schemaless 相关接口。连接池参数collectd 数据写入与 RESTful API、InfluxDB v1 写入、OpenTSDB 写入等接口共享同一个连接池可通过pool.maxConnect、pool.maxIdle、pool.idleTimeout、pool.waitTimeout、pool.maxWait等参数调节并发能力。此外taosAdapter 支持通过命令行参数、环境变量和配置文件三种方式配置优先级为命令行参数 环境变量 配置文件。命令行用法为argval形式例如taosadapter -p30000 --debugtrue。除了配置文件外也可以用 taosAdapter 命令行参数或设置环境变量来启动以开启接收 collectd 数据的能力更多细节可查阅 taosAdapter 参考手册。验证方法重启 collectdsudo systemctl restart collectd使用 TDengine CLI 验证数据写入使用taosshell 验证从 collectd 向 TDengine 写入数据并能够正确读出。首先确认数据库已创建taos show databases; name | information_schema | performance_schema | collectd | Query OK, 3 row(s) in set (0.003266s)切换到 collectd 数据库并查看超级表taos use collectd; Database changed. taos show stables; name | load_1 | memory_value | df_value | load_2 | load_0 | interface_1 | irq_value | 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)如果上述输出与预期一致说明 collectd → taosAdapter → TDengine 的整条链路已经打通数据可以正常写入和读出。数据模型超级表、子表与标签从上面的验证输出可以看出collectd 数据进入 TDengine 后被组织为一张张超级表STable表名与 collectd 的类型体系一一对应例如load_0、load_1、load_2对应 collectd 的 load 类型系统 1/5/15 分钟负载。memory_value内存指标。df_value磁盘文件系统空间指标。interface_0、interface_1网络接口流量指标。irq_value、entropy_value、swap_value中断、系统熵、交换分区等指标。每张超级表统一包含以下列以memory_value为例列名说明ts数据采集时间戳纳秒精度作为主时间戳列value采集到的指标值host采集主机标识标签来自 collectd 的 host 字段type_instance类型实例标签例如内存的buffered、free、slab_recl、used等细分项typecollectd 类型名称标签例如memory其中host、type_instance、type等作为标签TAG列用于过滤与聚合指标值作为普通列存储符合 TDengine 对时序数据时间戳 多标签 多指标的建模方式。需要注意的是TDengine 自动生成的子表名是按照规则生成的唯一 ID 值因此在show tables中看到的子表名并不是类似host-name的可读名称而是唯一的数字 ID。如果需要以可读的方式检索可以基于host等标签列进行查询。常见问题与注意事项数据库不存在导致写入失败如果smlAutoCreateDB为false默认需要提前手动创建数据库例如执行create database collectd;否则写入会失败也可以将smlAutoCreateDB设为true让 taosAdapter 自动建库。端口与协议对应关系6045 端口接收的是 collectd 二进制协议network 插件6047 端口接收的是 write_tsdb 插件转换后的 OpenTSDB telnet 协议配置时不要混淆。修改配置后必须重启服务无论是修改 taosAdapter 的/etc/taos/taosadapter.toml还是 collectd 的/etc/collectd/collectd.conf都需要重启对应服务systemctl restart taosadapter/sudo systemctl restart collectd才能生效。鉴权配置请将user、password以及企业版的token配置为实际的 TDengine 用户凭据避免使用默认口令暴露在生产环境。安全说明OpenTSDB telnet 协议本身不携带鉴权信息启用opentsdb_telnet时建议在受控网络内使用。更完整的 taosAdapter 功能如连接池、内存保护、日志配置等可继续参阅 taosAdapter 参考手册本文所依赖的 collectd 接入细节两种写入方式的标准配置收录于其 collectd 资源配置片段。至此你已可以在自己的环境中完成 collectd 与 TDengine 的对接并把系统性能监控数据沉淀到 TDengine 中做进一步分析与可视化。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Abaqus载荷位置批量提取:Python脚本自动化坐标导出

Abaqus载荷位置批量提取:Python脚本自动化坐标导出

简介:本资源是一套面向ABAQUS有限元分析用户的Python后处理工具集,专为工程仿真从业者及高校科研人员设计,解决内置后处理功能难以快速提取特定节点载荷与空间位置信息的痛点。压缩包共2个文件,均为轻量级Python脚本(总…

2026/9/13 18:35:41 阅读更多 →
VS Code搭建STM32开发环境:从Keil迁移到AI编程工作流实战

VS Code搭建STM32开发环境:从Keil迁移到AI编程工作流实战

我最早接触STM32开发,用的是ARM Keil,后来又切到STM32CubeIDE,直到这两年做嵌入式软件和AI编程的结合,才彻底把日常主力编辑器换成了VS Code。这篇是“嵌入式软件AI编程”系列里专门讲环境搭建的一篇,目标很明确&#…

2026/9/13 18:34:40 阅读更多 →
UnoCSS Rollup / Rolldown 插件详解:在 Vite 之外按需生成 CSS 资源

UnoCSS Rollup / Rolldown 插件详解:在 Vite 之外按需生成 CSS 资源

UnoCSS Rollup / Rolldown 插件详解:在 Vite 之外按需生成 CSS 资源 【免费下载链接】unocss The instant on-demand atomic CSS engine. 项目地址: https://gitcode.com/GitHub_Trending/un/unocss 本文围绕 UnoCSS 的 Rollup 集成文档 展开,讲解…

2026/9/13 18:34:40 阅读更多 →

最新新闻

解读 AI 生成实时聊天应用的评分报告:以 Claude Opus 4.5 的 PostgreSQL 聊天应用评测为例

解读 AI 生成实时聊天应用的评分报告:以 Claude Opus 4.5 的 PostgreSQL 聊天应用评测为例

解读 AI 生成实时聊天应用的评分报告:以 Claude Opus 4.5 的 PostgreSQL 聊天应用评测为例 【免费下载链接】SpacetimeDB Development at the speed of light 项目地址: https://gitcode.com/GitHub_Trending/sp/SpacetimeDB 本文基于 SpacetimeDB 仓库中 too…

2026/9/13 19:35:07 阅读更多 →
装好 nuclei-templates 模板库,三步跑通首次漏洞扫描

装好 nuclei-templates 模板库,三步跑通首次漏洞扫描

装好 nuclei-templates 模板库,三步跑通首次漏洞扫描 【免费下载链接】nuclei-templates Community curated list of templates for the nuclei engine to find security vulnerabilities. 项目地址: https://gitcode.com/GitHub_Trending/nu/nuclei-templates …

2026/9/13 19:35:07 阅读更多 →
FunASR 云端部署准备:阿里云 ECS 申请、安全组放通端口与 runtime-SDK 一键部署实操指南

FunASR 云端部署准备:阿里云 ECS 申请、安全组放通端口与 runtime-SDK 一键部署实操指南

FunASR 云端部署准备:阿里云 ECS 申请、安全组放通端口与 runtime-SDK 一键部署实操指南 【免费下载链接】FunASR Open-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-…

2026/9/13 19:35:07 阅读更多 →
.NET MCP 服务端 Sampling 权威指南:基于 ModelContextProtocol 2.x 通过客户端调用 LLM 的完整方案

.NET MCP 服务端 Sampling 权威指南:基于 ModelContextProtocol 2.x 通过客户端调用 LLM 的完整方案

.NET MCP 服务端 Sampling 权威指南:基于 ModelContextProtocol 2.x 通过客户端调用 LLM 的完整方案 【免费下载链接】awesome-copilot Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot. 项…

2026/9/13 19:35:07 阅读更多 →
24G 显卡能训自己的视频风格吗?CogVideoX LoRA 微调完整指南

24G 显卡能训自己的视频风格吗?CogVideoX LoRA 微调完整指南

24G 显卡能训自己的视频风格吗?CogVideoX LoRA 微调完整指南 【免费下载链接】CogVideo text and image to video generation: CogVideoX (2024) and CogVideo (ICLR 2023) 项目地址: https://gitcode.com/GitHub_Trending/co/CogVideo 想在自家电脑上固定一…

2026/9/13 19:35:07 阅读更多 →
fmt 如何用 as_identifiers 注解把枚举值格式化为枚举名称

fmt 如何用 as_identifiers 注解把枚举值格式化为枚举名称

fmt 如何用 as_identifiers 注解把枚举值格式化为枚举名称 【免费下载链接】fmt A modern formatting library 项目地址: https://gitcode.com/GitHub_Trending/fm/fmt 在 C 日志和调试输出里,直接打印一个 scoped enum 经常需要先强转成整型,得到…

2026/9/13 19:34:07 阅读更多 →

日新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/13 16:51:11 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/12 18:29:34 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/12 19:02:44 阅读更多 →