写点什么

运维监控场景下,如何从 OpenTSDB 迁移到 TDengine

作者:TDengine
  • 2021 年 12 月 02 日
  • 本文字数:2119 字

    阅读完需:约 7 分钟

运维监控场景下,如何从OpenTSDB迁移到TDengine


OpenTSDB是一个经典的时序数据库系统,它没有开发自己的存储引擎,而是基于HBase,对于已经有 HBase 基础服务的企业而言,降低了门槛。而且得益于其先发优势,OpenTSDB 在运维监控领域有不少应用。不过也因为要依赖 HBase,系统的性能、压缩效率逐渐成为瓶颈。随着业务系统规模的扩大,部署成本、运行效率等方面的问题日益严重。此外,OpenTSDB 的功能升级也比较缓慢。 与之相比,TDengine有着明显的优势:


  • 数据写入和查询的性能远超 OpenTSDB;

  • 针对时序数据的高效压缩机制,压缩后在磁盘上的存储空间不到 OpenTSDB 的 1/5;

  • 安装部署非常简单,单一安装包完成安装部署,除了 taosAdapter 需要依赖 Go 运行环境外,不依赖其他第三方软件,整个安装部署非常迅速;

  • 提供的内建函数覆盖 OpenTSDB 支持的全部查询函数,还支持更多的时序数据查询函数、标量函数及聚合函数,支持多种时间窗口聚合、连接查询、表达式运算、多种分组聚合、用户定义排序、以及用户定义函数等高级查询功能。采用类 SQL 的语法规则,更加简单易学,基本上没有学习成本。

  • 支持多达 128 个标签,标签总长度可达到 16KB;

  • 除 HTTP 之外,还提供 Java、Python、C、Rust、Go 等多种语言的接口。


如果我们将原本运行在 OpenTSDB 上的应用迁移到 TDengine 上,不仅可以有效降低计算和存储资源的占用、减少部署服务器的规模,还能够极大减少运行维护成本,让运维管理工作更简单、更轻松,大幅降低总拥有成本。


本文将以“使用最典型并广泛应用的运维监控场景”来说明,不用编写一行代码,如何将基于 OpenTSDB 的应用快速、安全、可靠地迁移到 TDengine 之上。


1、典型运维监控应用场景


一个典型的运维监控应用场景的系统整体的架构如下图(图 1) 所示。


图 1. 运维监控场景典型架构


在该应用场景中,包含了部署在应用环境中负责收集机器度量(Metrics)、网络度量(Metrics)以及应用度量(Metrics)的 Agent 工具,汇聚 Agent 所收集信息的数据收集器,负责数据持久化存储和管理的系统以及监控数据可视化工具(例如:Grafana 等)。


其中,部署在应用节点的 Agent 负责向 collectd/Statsd 提供不同来源的运行指标,collectd/StatsD 则负责将汇聚的数据推送到 OpenTSDB 集群系统,然后使用 Grafana 将数据以可视化的方式呈现出来。


2、迁移服务


  • TDengine 安装部署

首先是 TDengine 的安装,从官网上下载 TDengine 最新稳定版,解压缩后运行 install.sh 进行安装。各种安装包的使用帮助可参考《TDengine多种安装包的安装和卸载》。 注意,安装完成以后,不要立即启动 taosd 服务,在正确配置完成参数以后再启动。


  • 调整数据收集器配置

在 TDengine 2.3 版本中,在后台服务 taosd 启动后,一个叫 taosAdapter 的 HTTP 的服务也会自动启用。利用 taosAdapter,能够兼容 Influxdb 的 Line Protocol 和 OpenTSDB 的 telnet/Json 写入协议,所以我们可以将 collectd 和 StatsD 收集的数据直接推送到 TDengine。


如果使用 collectd,修改其默认位置在/etc/collectd/collectd.conf的配置文件,使其指向 taosAdapter 部署的节点 IP 地址和端口。假设 taosAdapter 的 IP 地址为 192.168.1.130,端口为 6046,配置如下:

LoadPlugin write_tsdb<Plugin write_tsdb>    <Node>        Host "192.168.1.130"        Port "6046"        HostTags "status=production"        StoreRates false        AlwaysAppendDS false    </Node></Plugin>
复制代码


这样 collectd 就可以通过 taosAdapter 将数据写入 TDengine 了。如果使用的是 StatsD,可以相应地调整配置文件。


  • 调整看板(Dashborad)系统

在数据能够正常写入 TDengine 后,可以调整适配 Grafana,将写入 TDengine 的数据可视化呈现出来。在 TDengine 的安装目录下有为 Grafana 提供的连接插件(connector/grafanaplugin)。使用很简单:

首先将 grafanaplugin 目录下的 dist 目录整体拷贝到 Grafana 的插件目录(默认地址为 /var/lib/grafana/plugins/),然后重启 Grafana,即可在 Add Data Source 菜单下看见 TDengine 数据源。


此外,TDengine 还提供了两套默认的 Dashboard 模板,供用户快速查看保存到 TDengine 库里的信息。只需要其导入到 Grafana 中并激活。


图 2. 导入 Grafana 模板 


至此,我们就完成了将 OpenTSDB 替换成为 TDengine 的迁移工作。可以看到整个流程非常简单,不需要写代码,只需要调整某个配置文件。


3、迁移后架构


完成迁移以后,此时的系统整体的架构如下图(图 3)所示,而整个过程中采集端、数据写入端、以及监控呈现端均保持了稳定,除了极少的配置调整外,不涉及任何重要的更改和变动。


图 3. 迁移完成后的系统架构 


OpenTSDB 的主要应用场景就是运维监控,这种情况下我们可以轻松完成向 TDengine 的迁移,从而用上 TDengine 更加强大的处理能力和查询性能。


在绝大多数运维监控场景中,如果拥有一个小规模的 OpenTSDB 集群(3 台及以下的节点)作为监控数据的存储端,依赖 OpenTSDB 所提供的数据存储和查询功能,那么可以安全地将其替换为 TDengine,并节约更多的计算和存储资源。在同等计算资源配置情况下,单台 TDengine 即可实现 3 ~ 5 台 OpenTSDB 节点提供的服务能力。如果规模比较大,那便需要采用 TDengine 集群。


如果应用特别复杂,或者应用领域并不是运维监控场景,你可以继续阅读下一篇文章,更加全面深入地了解将 OpenTSDB 应用迁移到 TDengine 的高级话题。



🌟点击探索taosAdapter

发布于: 3 小时前阅读数: 17
用户头像

TDengine

关注

开源、高效的物联网大数据平台 2021.11.04 加入

官网:http://www.taosdata.com GitHub:https://github.com/taosdata/TDengine

评论

发布
暂无评论
运维监控场景下,如何从OpenTSDB迁移到TDengine