OpenTSDB实现原理与安装

2022-04-18 18:39:46 浏览数 (1)

OpenTSDB是一种基于Hbase的分布式的,可伸缩的时间序列数据库

特别适合用来做监控类别的数据存储,它的底层是基于HBase,是一种以Metirc为单元的存储结果,可以实现大数据量下的毫秒级别的查询

  • OpenTSDB介绍

opentsdb是基于Hbase的时序数据库[时间序列数据库]。不具备通用性,主要针对具有时间特性和需求的数据,如监控数据、温度变化数据等,比较适合存储具有时间特性的数据,同时提供特定的工具进行查询等操作

  • OpenTSDB工作原理

OpenTSDB是一个时间序列数据库,由一个 Time Series Daemon (TSD) 和一系列命令行实用程序组成。

与OpenTSDB交互主要通过运行一个或者多个 TSD 来实现。每个 TSD 是独立的。没有master,没有共享状态,

可以运行尽可能多的 TSD 来处理工作负载。

每个 TSD 使用开源数据库 HBase 或托管Google Bigtable服务来存储和检索时间序列数据。数据模式针对类似时间序列的快速聚合进行了高度优化,以最大限度的减少存储空间。

TSD 的用户不需要直接访问底层仓库。直接通过telnet协议,HTTP API 或者简单的内置 GUI 与 TSD 进行通信,所有的通信都发生在同一个端口上(TSD 通过查看接收到的前几个字节来计算出客户端的协议)

  • OpenTSDB存储的核心概念
  1. Metric: 监控项,比如CPU、MEMORY等
  2. Tags: 标签,Tags由一系列的Tag组成,是一种K/V格式的数据。 标签是用来描述Metric,往往用来多维数据的展现(比如Prometheus中的数据格式)
  3. Value: Value表示的一个Metric的实际值
  4. Timestamp: 时间戳,用来描述Value是什么时候产生的。
  5. Data Point: 某个Metric在某个时间点的数值
  6. DataPoint包括以下几个部分: Metric、Tags、Value、Timestamp

可以理解为一个监控项就是一个DataPoint,最终保存到OpenTSDB的 就是由很多的DataPoint组成!

  • OpenTSDB安装

OpenTSDB是依赖于HBase进行数据存储的,所以在安装OpenTSDB组件之前,需要已经部署了HBase组件,在这里我是直接在大数据集群进行安装的,已经部署了HBase。

  • OpenTSDB下载:

https://github.com/OpenTSDB/opentsdb/releases

可以选择:

https://github.com/OpenTSDB/opentsdb/releases/download/v2.4.0/opentsdb-2.4.0.noarch.rpm

https://github.com/OpenTSDB/opentsdb/releases/download/v2.4.0/opentsdb-2.4.0.tar.gz

进行安装。

代码语言:javascript复制
yum localinstall opentsdb-2.4.0.noarch.rpm

我这里选择的是通过rpm包方式进行安装

OpenTSDB安装之后的目录介绍:

  • /etc/opentsdb —— 配置文件目录
  • /usr/share/opentsdb —— 应用程序目录
  • /usr/share/opentsdb/bin —— "tsdb"启动脚本目录
  • /usr/share/opentsdb/lib —— Java JAR library
  • /usr/share/opentsdb/plugins —— 插件和依赖
  • /usr/share/opentsdb/static —— GUI 静态文件
  • /usr/share/opentsdb/tools —— 脚本和其他工具
  • /var/log/opentsdb —— 日志存放目录

安装包安装后OpenTSDB自动将启动/停止脚本加入了系统service中,可以直接通过service opentsdb start/stop 来操作。

具体的脚本存放位置:/etc/init.d/opentsdb

  • OpenTSDB配置

打开 /etc/opentsdb/opentsdb.conf 文件,配置HBase的地址和ZK地址

代码语言:javascript复制
tsd.storage.hbase.zk_basedir = /hbase-unsecure
tsd.storage.hbase.zk_quorum = zk_url // 配置你的ZK地址

HBase创建对应表

第一次运行OpenTSDB实例的话,需要先创建HBase表,OpenTSDB已经给准备好了创建脚本,可以到

代码语言:javascript复制
env COMPRESSION=NONE HBASE_HOME=/usr/hdp/2.6.1.0-129/hbase /usr/share/opentsdb/tools/create_table.sh

可以在Hbase 中看到表已经创建成功

启动opentsdb

代码语言:javascript复制
service opentsdb start

启动报错,提示bash: servie: 未找到命令…

可以使用:

代码语言:javascript复制
/usr/share/opentsdb/etc/init.d/opentsdb start 

再次进行启动。

启动之后,可以通过http://xx.xx.xx.xx:4242 访问 TSD 的web界面

0 人点赞