Centos7下OpenTSDB环境部署搭建&入门使用一、


开头是一些概念介绍,如果只是想搭建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/<!--<appender-ref ref="FILE"\/>-->/<appender-ref ref="FILE"\/>/' /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
复制代码