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存储的核心概念
- Metric: 监控项,比如CPU、MEMORY等
- Tags: 标签,Tags由一系列的Tag组成,是一种K/V格式的数据。 标签是用来描述Metric,往往用来多维数据的展现(比如Prometheus中的数据格式)
- Value: Value表示的一个Metric的实际值
- Timestamp: 时间戳,用来描述Value是什么时候产生的。
- Data Point: 某个Metric在某个时间点的数值
- 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界面