TDengine 接入 icinga2 监控指标:通过 taosAdapter OpenTSDB Telnet 接口实现监控数据入库

发布时间:2026/9/14 20:25:27

TDengine 接入 icinga2 监控指标:通过 taosAdapter OpenTSDB Telnet 接口实现监控数据入库 TDengine 接入 icinga2 监控指标通过 taosAdapter OpenTSDB Telnet 接口实现监控数据入库【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine本文讲解如何把开源监控软件 icinga2 采集到的主机与服务监控指标检查结果、性能数据无缝写入 TDengine。核心方案是在 taosAdapter 中启用 OpenTSDB Telnet 协议监听并让 icinga2 的opentsdb-writer特性将数据发往 taosAdapter 对应的端口默认为 6048。读完全文你将掌握完整的 taosAdapter 与 icinga2 两侧配置步骤、opentsdb_telnet各参数的取值与端口/数据库映射关系以及入库结果的验证方法。方案背景icinga2 为什么可以直接对接 TDengineicinga2 是一款开源主机、网络监控软件最初由 Nagios 网络监控应用发展而来目前遵从 GNU GPL v2 许可协议发行。它内置了opentsdb-writer特性可以在监控检查结果产生后将指标和性能数据以 OpenTSDB 的 telnet 协议put语义推送到远端接收端。taosAdapter 是 TDengine 集群和应用程序之间的桥梁除 WebSocket、InfluxDB v1、Prometheus 等接口外还提供兼容 OpenTSDB JSON 和 telnet 格式的数据写入能力并明确支持 icinga2 OpenTSDB writer 数据写入见 taosAdapter 参考手册 的功能列表。因此只需把 icinga2 的 OpenTSDB writer 指向 taosAdapter 的服务器和相应端口即可利用 TDengine 对时序数据的高效存储查询性能和集群处理能力来长期保存 icinga2 的监控数据整体数据链路为icinga2 (opentsdb-writer, telnet 协议) │ put icinga.xxx timestamp value tag... ▼ taosAdapter [opentsdb_telnet] 监听 6046~6049 │ 按端口区分来源schemaless 无模式写入 ▼ TDengine 数据库 icinga2自动创建超级表 规则生成的子表前置条件要将 icinga2 数据写入 TDengine需要完成以下几方面准备工作TDengine 集群已经部署并正常运行taosAdapter 已经安装并正常运行taosAdapter 随 TDengine server 一同安装安装完成后可用systemctl start taosadapter启动具体细节请参考 taosAdapter 参考手册icinga2 已经安装安装方式请参考 icinga2 官方安装文档。配置步骤一配置 taosAdapter 接收 icinga2 数据在 taosAdapter 配置文件默认位置/etc/taos/taosadapter.toml中使能opentsdb_telnet相关配置# 写入 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 参考手册 中 OpenTSDB 配置参数一节一致enable启用 OpenTSDB Telnet 协议支持默认值为false此处必须显式打开。注意该接口本身没有认证机制生产环境建议通过网络层控制访问来源portsOpenTSDB Telnet 监听端口默认值为[6046, 6047, 6048, 6049]。四个端口分别对应不同的数据来源6046 对应 OpenTSDB 客户端、6047 对应 collectd、6048 对应 icinga2、6049 对应 tcollectordbs指定各端口写入的目标数据库与ports按位置一一对应6046 → opentsdb_telnet、6047 → collectd、6048 → icinga2、6049 → tcollector。也就是说icinga2 数据默认写入名为icinga2的数据库如果希望改用其他库名例如手册中另一套默认命名icinga2_tsdb只需修改dbs中第 3 个元素即可。user 和 password 需填写实际 TDengine 配置的用户名密码maxTCPConnections最大 TCP 连接数默认值250tcpKeepAlive是否启用 TCP KeepAlive默认值falsesmlAutoCreateDB这是全局配置项用于控制在 schemaless无模式协议写入时是否自动创建数据库。设置为true时taosAdapter 会在接收到数据时自动创建对应的数据库如果不存在如果保持默认false则必须手动创建icinga2数据库否则写入会失败。配置完成后需要重启 taosAdapter 使配置生效sudo systemctl restart taosadapter配置步骤二配置 icinga2 的 OpenTSDB writer使能 icinga2 的opentsdb-writer特性例如执行icinga2 feature enable opentsdb特性启用后会在features-enabled目录下生成对应配置文件修改配置文件/etc/icinga2/features-enabled/opentsdb.conf填写 taosAdapter 所在服务器的域名或 IP 地址以及 taosAdapter 接收 icinga2 数据的端口默认为 6048object OpenTsdbWriter opentsdb { host taosAdapters host port port for icinga2 }本机部署 taosAdapter 与 icinga2 时的完整示例object OpenTsdbWriter opentsdb { host 127.0.0.1 port 6048 }修改后重启 icinga2 使配置生效sudo systemctl restart icinga2验证方法等待 10 秒左右后使用taos客户端 shell 查询 TDengine验证是否创建了相应数据库并写入数据taos show databases; name | information_schema | performance_schema | icinga2 | Query OK, 3 row(s) in set (0.001867s) taos use icinga2; Database changed. taos show stables; name | icinga.service.users.state_... | icinga.service.users.acknow... | icinga.service.procs.downti... | icinga.service.users.users | icinga.service.procs.procs_min | icinga.service.users.users_min | icinga.check.max_check_atte... | icinga.service.procs.state_... | icinga.service.procs.procs_... | icinga.service.users.users_... | icinga.check.latency | icinga.service.procs.procs_... | icinga.service.users.downti... | icinga.service.users.users_... | icinga.service.users.reachable | icinga.service.procs.procs | icinga.service.procs.acknow... | icinga.service.procs.state | icinga.service.procs.reachable | icinga.check.current_attempt | icinga.check.execution_time | icinga.service.users.state | Query OK, 22 row(s) in set (0.002317s)从查询结果可以看到taosAdapter 按照 icinga2 指标的命名把不同指标自动组织成了超级表stables例如icinga.check.latency、icinga.check.current_attempt、icinga.check.execution_time、icinga.check.max_check_attempt检查check流程相关的性能指标icinga.service.users.*、icinga.service.procs.*icinga2 服务自身的运行状态指标users、procs 状态以及_min、downtime、acknowledgement、reachable等派生序列。注意TDengine 中默认生成的子表名是根据规则生成的唯一 ID 值而不是人为可读的名称这是 schemaless 写入的默认行为。仓库中的实现佐证自动化测试如何复刻这条链路本仓库的稳定性测试框架内置了一个专门用于验证该链路的 icinga2 容器环境与上文的手动配置一一对应可以当作一份可参考的部署样板容器构建脚本 icinga2/Dockerfile基于 Ubuntu 20.04 安装icinga2、monitoring-plugins与systemctl执行icinga2 feature enable opentsdb启用 opentsdb 特性然后通过环境变量TaosadapterIp默认127.0.0.1、TaosadapterPort默认6048声明 taosAdapter 的地址与端口并用Icinga2Interval默认10s控制检查模板的间隔特性配置文件模板 opentsdb.confobject OpenTsdbWriter opentsdb { host TaosadapterIp port TaosadapterPort }与官方文档中的配置结构完全一致仅把地址与端口留作占位符容器入口脚本 entrypoint.sh在容器启动时用sed将占位符替换为实际注入的TaosadapterIp/TaosadapterPort值随后执行systemctl restart icinga2——这与本文修改配置后重启 icinga2的步骤一致测试框架的工具脚本 taosadapter.py 中维护了 taosAdapter 的默认 TOML 配置字典其中包含opentsdb_telnet: {enable: True}即测试环境同样通过开启opentsdb_telnet监听来接收 telnet 协议的 OpenTSDB 数据印证了 taosAdapter 侧的使能方式是opentsdb_telnet.enable true。常见问题与注意事项端口与库名的映射dbs与ports是按顺序对应的icinga2 固定使用第 3 个端口默认 6048对应的库名是dbs数组第 3 个元素。若要调整库名只改dbs不改ports即可无需改动 icinga2 侧配置自动建库保持smlAutoCreateDB true可以让 taosAdapter 在首条数据到达时自动创建icinga2数据库省去手工CREATE DATABASE若关闭该选项写入前必须先建库接口无认证OpenTSDB Telnet 接口没有认证机制user/password是 taosAdapter 与 TDengine 之间的连接凭据而不是 icinga2 侧的登录信息。生产环境建议在防火墙或安全组层面限制 6046~6049 端口的访问来源生效方式taosAdapter 与 icinga2 两侧配置修改后都需要重启对应服务systemctl restart taosadapter/systemctl restart icinga2命名说明入库后的子表名为 TDengine 按规则生成的唯一 ID查询时建议以超级表show stables中列出的指标名为入口聚合查询。完整步骤与验证结果参见 icinga2 写入taosAdapter 侧参数详解参见 taosAdapter 参考手册。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/14 20:25:27

磷酸化蛋白WB实验失败原因与优化方案

1. 磷酸化蛋白WB实验失败原因深度解析Western Blot(WB)作为蛋白质研究中最常用的技术手段之一,在磷酸化蛋白检测领域却让无数科研人员屡屡碰壁。为什么常规蛋白WB能做出来,一到磷酸化蛋白就频频失败?根据我十年蛋白实验…

2026/9/14 20:25:27

Python基础作业解析:从语法到实战应用

1. Python作业解析:从基础语法到实战应用作为一门广泛应用于各个领域的编程语言,Python以其简洁的语法和强大的功能深受开发者喜爱。这次我们将深入探讨Python基础作业中的三个核心题目,通过实际案例帮助初学者掌握关键编程概念。提示&#x…

2026/9/14 20:30:28

2026年甲醇市场供需博弈与价格走势分析

1. 甲醇市场供需博弈全景解析 2026年3月初的甲醇市场正处于典型的供需博弈阶段。作为基础化工原料,甲醇价格波动直接影响着下游甲醛、醋酸、MTBE等数十种化工产品的生产成本。这个时间节点特别值得关注,因为春季往往是能化行业传统需求启动期&#xff0c…

2026/9/14 20:30:28

安卓自动化测试设备方案:从真机模拟器到云端真机实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/14 20:25:27

用FastAPI-MCP搭起分布式MCP网关:从单进程到多节点

用FastAPI-MCP搭起分布式MCP网关:从单进程到多节点 【免费下载链接】fastapi_mcp Expose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth! 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi_mcp 假设业务团队要求把一套…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码