- 一、OpenTSDB是什么?
- 二、How does OpenTSDB work?
- 三,OpenTSDB基础概念
- 四、环境搭建部署
- 1.Hbase环境搭建
- 2.OpenTSDB环境搭建
- 五、其他
- 1.gnuplot安装
- 2.http接口测试
开头是一些概念介绍,如果只是想搭建OpenTSDB环境,可直接跳转至环境部署搭建内容部分,点击即会跳转
一、OpenTSDB是什么?OpenTSDB is a distributed, scalable Time Series Database (TSDB) written on top of Hbase
基于Hbase的分布式的,可伸缩的时间序列数据库。
OpenTSDB支持数据永久存储,保存的数据不会主动删除;并且原始数据会一直保存(有些监控系统会将较久之前的数据聚合之后保存)
二、How does OpenTSDB work?
Servers:数据的采集服务器,用来做数据的收集,并推送数据到OpenTSDB.
TSD:TSD是hbase对外通信的后台程序,没有状态,Servers可以通过simple telnet-style protocol, an HTTP API or a simple built-in GUTSD推送监控数据.
Hbase:TSD收到监控数据后,通过AsyncHbase将数据写入到Hbase;AsyncHbase是完全异步、非阻塞、线程安全的Hbase客户端,使用更少的线程、锁以及内存,可以提供更高的吞吐量,特别对于大量的写操作。
三,OpenTSDB基础概念比如现在我们要记录一台服务器A的Cpu使用率数据
Metric:监控项,这里就是指的Cpu使用率。
Tags:就是一些标签,在OpenTSDB里面,Tags由tagk和tagv组成,即tagk=takv(键值对),假如这上面的服务器A,我们需要用ip来区分,这里tagk为ip,tagv即为192.168.56.101。Tags可以有多个
Value:一个value就是一个metric对应的实际值,比如Cpu使用率80%。
Timestamp:时间戳(时间序列),用以表示这条数据是什么时间的。
DataPoint:即某个Metric在某个时间点的数值。DataPoint包括以下部分:Metric、Tags、Value、Timestamp,在OpenTSDB里面存储的就是多个DataPoint。
四、环境搭建部署 1.Hbase环境搭建OpenTSDB依赖Hbase,因此先搭建好Hbase环境,可参考先搭建Hbase单机版,生产环境可考虑Hbase集群,Hadoop系统,但OpenTSDB底层用Hbase单机还是集群的步骤一样,因此这里不细描述。
这里查看Hbase的单机版搭建过程
2.OpenTSDB环境搭建####下载:https://github.com/OpenTSDB/opentsdb/releases 我使用的版本是opentsdb-2.4.0.tar.gz ####解压 tar zxvf opentsdb-2.4.0.tar.gz -C /home/testuser/ ####日志配置修改,src下的logback.xml,将logs都配置输出在/home/testuser/opentsdb-2.4.0/build/logs目录下. sed -i 's//var/log//home/testuser/opentsdb-2.4.0/build/logs/' /home/testuser/opentsdb-2.4.0/src/logback.xml sed -i 's///' /home/testuser/opentsdb-2.4.0/src/logback.xml ####./build.sh cd /home/testuser/opentsdb-2.4.0 ./build.sh ####执行./build.sh报错,这个报错是因为找不到某个jar包。但是另外一种解决方法,使用如下命令: mkdir build -p cp -r third_party ./build ./build.sh ####建表,接着执行脚本,创建openTSDB所需要的表,这些命令均已写好,只需要执行相应脚本即可 env COMPRESSION=NONE Hbase_HOME=/home/testuser/hbase ./src/create_table.sh ####新建opentsdb.conf文件,并配置一些信息 cat > /home/testuser/opentsdb-2.4.0/build/opentsdb.conf << EOF tsd.network.port = 4242 tsd.network.keep_alive = true tsd.http.staticroot = /home/testuser/opentsdb-2.4.0/build/staticroot tsd.http.cachedir = /home/testuser/opentsdb-2.4.0/build/cache tsd.core.auto_create_metrics = true tsd.storage.hbase.data_table = tsdb tsd.storage.hbase.zk_basedir = /hbase tsd.storage.hbase.zk_quorum = 192.168.56.101:2181 EOF ####启动opentsdb /home/testuser/opentsdb-2.4.0/build/tsdb tsd --config=/home/testuser/opentsdb-2.4.0/build/opentsdb.conf & ####WEB ui访问: http://192.168.56.101:4242/五、其他 1.gnuplot安装
通过http://192.168.56.101:4242进行可视化操作时,如果报空指针异常,查看后面日志报错gnuplot相关时,需要安装gnuplot组件,安装完后要重启opentsdb进程。
yum install gnuplot -y 安装完后要重启opentsdb进程2.http接口测试
####Opentsdb Api Http:
http://opentsdb.net/docs/build/html/api_http/query/last.html
####插入数据
curl -i -X POST -d '{"metric":"mytest.cpu","timestamp":1634627698,"value":6.3,"tags":{"host":"master1"}}' http://192.168.56.101:4242/api/put?details
####查询最新的数据
curl -i -X POST -d '{"queries":[{"metric":"mytest.cpu","tags":{"host":"master1"}}],"resolveNames":true,"backScan":24}' http://192.168.56.101:4242/api/query/last
#### /api/query
http://opentsdb.net/docs/build/html/api_http/query/index.html
curl -i -X POST -d '{"start": "6h-ago","queries": [{"aggregator": "sum","metric": "mytest.cpu","tags": {"host": "*"}}]}' http://192.168.56.101:4242/api/query
###downsample,降低精度,即按时间汇总,细粒度汇总成粗粒度
http://opentsdb.net/docs/build/html/api_http/query/index.html#downsampling
curl -i -X POST -d '{"start": "6h-ago","queries": [{"aggregator": "zimsum","metric": "mytest.cpu","downsample":"5m-avg"}]}' http://192.168.56.101:4242/api/query
####删除数据,查询的过程中删除,加上delete:true的参数即可
curl -i -X POST -d '{"start": "6h-ago","queries": [{"aggregator": "sum","metric": "mytest.cpu","tags": {"host": "*"}}],"delete":true}' http://192.168.56.101:4242/api/query



