OpenTSDB介绍

OpenTSDB 2.0, the scalable, distributed time series database可扩展、分布式时间序列数据库

1、背景

一些老的监控系统,它常常会出现这样的问题:

1)中心化数据存储进而导致单点故障。

2)有限的存储空间。

3)数据会因为时间问题而变得不准确。

4)不易于定制图形。

5)不能扩展采集数据点到100亿级别。

6)不能扩展metrics到K级别。

7)不支持秒级别的数据。

OpenTSDB解决上面的问题:

1、它用hbase存储所有的时序(无须采样)来构建一个分布式、可伸缩的时间序列数据库。

2、它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系统里。

3、OpenTSDB可以从大规模的集群(包括集群中的网络设备、操作系统、应用程序)中获取相应的metrics并进行存储、索引以及服务

从而使得这些数据更容易让人理解,如web化,图形化等。

对于运维工程师而言,OpenTSDB可以获取基础设施和服务的实时状态信息,展示集群的各种软硬件错误,性能变化以及性能瓶颈。

对于管理者而言,OpenTSDB可以衡量系统的SLA,理解复杂系统间的相互作用,展示资源消耗情况。集群的整体作业情况,可以用以辅助预算和集群资源协调。

对于开发者而言,OpenTSDB可以展示集群的主要性能瓶颈,经常出现的错误,从而可以着力重点解决重要问题。

2、架构Review

openTSDB使用hbase作为存储中心,它无须采样,可以完整的收集和存储上亿的数据点,支持秒级别的数据监控,得益于hbase的分布式列式存储,hbase可以灵活的支持metrics的增加,可以支持上万机器和上亿数据点的采集。

在openTSDB中,TSD是hbase对外通信的daemon程序,没有master/slave之分,也没有共享状态,因此利用这点和hbase集群的特点就可以消除单点。用户可以通过telnet或者http协议直接访问TSD接口,也可以通过rpc访问TSD。每一个需要获取metrics的Servers都需要设置一个Collector用来收集时间序列数据。这个Collector就是你收集数据的脚本。

图1、openTSDB的数据流图

如果想快速地展示mysql中在一段时间内执行delete子句的数量,慢查询的数量,创建的临时文件数量以及99%的延迟数量等等。OpenTSDB则可以非常容易存储和处理百万级别以上的数据点,并能实时动态的生成对应的图,如图2.

图2、OpenTSDB用例图

3、在hbase中存储时间序列

OpenTSDB使用async hbase ,这是个完全异步、非阻塞、线程安全、HBase api,使用更少的线程、锁以及内存可以提供更高的吞吐量,特别对于大量的写操作。

图3为读写流程

黑色的线表示写入,红色的线表示读取,通过get请求,绿色的呢,Gnuplot是画图吗??

在hbase中,表结构的设计对性能具有很大的影响,其中tsdb-uid表和tsdb表见表一和表二

tsdb-uid表

tsdb表

4、一淘的实例

OpenTSDB,一个数据点可以表示为:1)一个指标名称。2)UNIX时间戳。3)一个值(64位整数或双精度浮点值)。4)标识这个数据点的一组标记tags(键-值对)。

如tcollector中的dfstat.py脚本的输出:

df.bytes.total 1413306095 4159016960 mount=/ fstype=ext3

一淘的例子:

下面四个数据点都是采集的metrics为index.full_count,代表引擎索引doc数;标记tags为来自哪个domain(代表机房),area和app代表应用,cluster代表索引表,partition代表列。Metrics和tags加起来就是一个时间序列。

index.full_count 1341069600 156866750 domain=domain_E area=1 app=jqb cluster=epid partition=partition_16384_32767

index.full_count 1341069600 155819640 domain=domain_E area=1 app=jqb cluster=epid partition=partition_32768_49151

index.full_size 1341069000 18561 domain=domain_D area=1 app=jqb cluster=b2c partition=partition_0_16383

index.full_size 1341069000 18554 domain=domain_D area=1 app=jqb cluster=b2c partition=partition_16384_32767

index.full_count 1341069200 11421051 domain=domain_G area=1 app=jqb cluster=b2c partition=partition_16384_32767

那如何收集这些数据呢,Etao在tcollector开源收集器的基础上,做第二次开发,见图5。

tcollector可以完成:

1)可以任意添加你的收集脚本程序,并收集所有数据。

2)完成发送数据到TSD的所有连接管理。

3)初始化一些状态,执行一些公共的部分,比如定时管理执行1min文件夹下面的脚本。

4)删除重复的数据。

5)支持很多种数据交换协议,提供良好的扩展性。

将etao-tcollector部署在所有机器上(可采用集中运维脚本进行远程部署,并可通过该系统远程控制收集器的启停)。etao-tcollector会将带时间和metrics的时间序列数据发送到tsd,之后的处理见第三节的图3,最后我们在Opentsdb提供的web UI上通过指定查询条件进行查询获取相应的图形用来对应用进行监控

该etao-tcollector在一淘引擎中用来收集索引相关信息,引擎服务状态如延迟,日志等。

openTSDB采用hbase作为时序数据的存储中心,具有高扩展性,metrics添加相当灵活,且对数据可以无损的存储。可以很灵活的支持数据分析,图形显示以及一系列定制化操作,非常方便运维人员做运维监控。

5、参考资料

1、http://www.searchtb.com/2012/07/opentsdb-monitoring-system.html

2、http://opentsdb.net/docs/build/html/index.html

3、https://github.com/stumbleupon/asynchbase

4、https://github.com/stumbleupon/tcollector

时间: 2024-12-25 21:12:58

OpenTSDB介绍的相关文章

OpenTSDB介绍——基于Hbase的分布式的,可伸缩的时间序列数据库,而Hbase本质是列存储

原文链接:http://www.jianshu.com/p/0bafd0168647 OpenTSDB介绍 1.1.OpenTSDB是什么?主要用途是什么? 官方文档这样描述:OpenTSDB is a distributed, scalable Time Series Database (TSDB) written on top of HBase: 翻译过来就是,基于Hbase的分布式的,可伸缩的时间序列数据库. 主要用途,就是做监控系统:譬如收集大规模集群(包括网络设备.操作系统.应用程序)

转:openTSDB 2.0 安装

OpenTSDB-2.0.0安装布署 2014-02-27 11:07:49|  分类: 大数据 |  标签:hadoop  |举报|字号 订阅 1.介绍OpenTSDB是一个架构在Hbase系统之上的实时监控信息收集和展示平台.它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系统里.OpenTSDB可以从大规模的集群(包括集群中的网络设备.操作系统.应用程序)中获取相应的metrics并进行存储.索引以及服务,从而使得这些数据更容易让人理解,如we

opentsdb+grafana监控系按使用总结

一.OpenTSDB简介 开源监控系统OpenTSDB,用hbase存储所有的时序(无须 采样)来构建一个分布式.可伸缩的时间序列数据库.它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系 统里.OpenTSDB可以从大规模的集群(包括集群中的网络设备.操作系统.应用程序)中获取相应的metrics并进行存储.索引以及服务,从而使得这些数据更容易让人理解,如web化,图形化等. 对于运维工程师而言,OpenTSDB可以获取基础设施和服务的实时状态信息

Apache顶级项目介绍7 - HBase

今天我们来继续介绍Apache顶级项目大数据三巨头之一的HBase.恰逢今天(5.24)是HBase Con2016旧金山盛会,比较应景,而且还有朋友@Luke Han去演讲Kylin. 1. 官网简介: 老样子,HBase官网的介绍, "HBase is the Hadoop database, a distributed, scalable, big data store.",所以HBase   =  Hadoop Database,并且提供了分布式可扩展的数据存储.(HBase的

时序列数据库武斗大会之 OpenTSDB 篇

在前面的<时序列数据库武斗大会之 TSDB 名录 Part 1>和<时序列数据库武斗大会之TSDB名录 Part 2>中,我们介绍了一些常见的TSDB,并在<时间序列数据库武斗大会之 KairosDB 篇>深入了解了KairosDB.本文将详细介绍TSDB中的OpenTSDB. OpenTSDB ,可以认为是一个时系列数据(库),它基于HBase存储数据,充分发挥了HBase的分布式列存储特性,支持数百万每秒的读写,它的特点就是容易扩展,灵活的tag机制. 架构简介 这

#研发解决方案介绍#基于StatsD+Graphite的智能监控解决方案

郑昀 基于李丹和刘奎的文档 创建于2014/12/5 关键词:监控.dashboard.PHP.graphite.statsd.whisper.carbon.grafana.influxdb.Python 本文档适用人员:研发和运维员工 提纲: 监控平台要做到什么程度?为什么要自己做? 几个通用技术问题 绘图所依赖的数据如何收集?如何加工?如何存储? 图形如何绘制,各种指标如何叠加? 拓扑关系如何绘制? 技术选型哲学 最终选了statsd+graphite 数据的采集 数据存储的粒度 天机的技术

如何将OpenTSDB源码导入eclipse

OpenTSDB的官网上介绍了如何将OpenTSDB源码导入eclipse,官方链接,但步骤超级繁琐,还有一个简便方法,下面以导入OpenTSDB2.0.0为例. 1. 下载OpenTSDB2.0.0代码 wget https://codeload.github.com/OpenTSDB/opentsdb/tar.gz/v2.0.0 2. 解压并进入源码目录 tar zxf v2.0.0 cd opentsdb-2.0.0/ 3. 生成pom.xml文件 ./build.sh pom.xml 4

Grafana是一个可视化面板-安装配置介绍

Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite.zabbix.InfluxDB.Prometheus和OpenTSDB作为数据源 最新版本:Version 5.4.2 December 13, 2018  https://grafana.com/grafana/download Grafana添加Zabbix为数据源 一.Grafana介绍 Grafana是一个可视化面板(Dashboard),有着非常漂

【开源监控】Grafana介绍与安装

Grafana介绍与安装 Grafana介绍 场景:由于业务场景,有多个组织机构.需要在某个组织结构下,完成对本机构下的系统的实时监控以及可视化展示.底层已经用zabbix对监控指标做了数据的采集. 因此,通过使用Grafana开源工具.保证数据的可视化展示. Grafana是一个跨平台的开源的分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知. 其特点: 丰富的可视化显示插件,包括热图.折线图.饼图,表格等等. 多数据源,支持多数据源Graphite,InfluxDB,Op