OpenTSDB2.3.0安装部署
来源:互联网 发布:淘宝美工薪资待遇 编辑:程序博客网 时间:2024/05/29 10:17
转载请注明出处:http://blog.csdn.net/u012842205/article/details/72817966
一、简介
OpenTSDB是基于HBase存储时间序列数据的一个开源数据库,但只是一个HBase的应用而已。也即是在HBase之上加了一层外壳,用于更好的处理时序数据库,真实的数据存储还是在HBase。
时序数据是基于时间的一系列的数据。在有时间的坐标中将这些数据点连成线,往过去看可以做成多纬度报表,揭示其趋势性、规律性、异常性;往未来看可以做大数据分析,机器学习,实现预测和预警。时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多纬度的聚合查询等基本功能。
OpenTSDB实现的时间序列Schema主要有两个表:tsdb-uid和tsdb. 前者描述指标(metrics)相关的元数据,后者存储时间序列数据。首先我们来了解一下“指标”(metrics)的概念,简单讲一个指标就是一个需要收集的数据项,但是只有指标是不能全面地描述出一条数据产生的相关背景信息的,比如:如果我们要统计cpu的使用率,我们可以建立一下名为proc.stat.cpu的metrics,如果我们从不同的机器和用户下收集了大量的cpu信息,如果没有对一条信息进行一定地标识,我们是无法区分出哪些数据来自哪台机器的哪个用户,所以我们还需要建立一些“标签”(Tag)来标识一条数据。严格地说,指标和标签之间并没有必然的从属关系,就像两个不同的指标的数据可能都有指示其来自哪台主机的host标签一样,但是有一点是确定的,即:对于一条数据来说,应该至少含有一个指标和一个标签,这样的数据才是有意义的,因此,在OpenTSDB的表设计上,就把“指标”(metrics)和“标签”(Tag)统一放在了tsdb-uid表中存储,格式为:RowKey(自增ID,3字节数组):name:metrics,name:tagk,name:tagv,同时对它们之间的反向关联关系也作了展开存储。
二、安装
1、安装环境
操作系统:CentOS Linux release 7.2.1511 (Core)
OpenTSDB版本:2.3.0
JDK版本:1.8.1_101
Apache HBase版本:1.2.2
以上组件的安装步骤本文不再赘述。
2、安装
OpenTSDB属于HBase上层应用,其底层是与HBase交互,而Schema的逻辑都是OpenTSDB控制。这里需要提一点,OpenTSDB一般不用集群安装,但可以有集群部署的方案,这些方案大多使用第三方组件完成。具体参看官方文档。本文只记录单节点安装部署。下面的操作都针对安装节点完成。
除了上面提到的依赖组件,Opentsdb还依赖Gnuplot,它是一个命令行的交互式绘图工具,一般使用Linux发行版的源即可安装:
yum install gnuplot
注意:OpenTSDB依赖Gnu Make。
安装OpenTSDB,进入OpenTSDB官网,下载到tar.gz。并解压:
tar -xzvf /home/opentsdb/opentsdb-2.3.0.tar.gz -C /home/opentsdb/注意:这里我已经在服务器上创建了一个opentsdb系统用户,用于运行opentsdb服务。
我们下载到的是github托管的源码,这里需要编译出jar。切换到解压后的目录,运行脚本文件configuration。这个脚本文件检查安装环境的组件依赖,调整一些参数,并最后生成Makefile。运行命令`make`进行编译。
当编译正常结束后,将在当前目录产生tsdb-2.3.0.jar文件。这个jar依赖的所有jar文件都在当前目录的./third_party下。这时候还会有一个tsdb的脚本,这个脚本将用于启动OpenTSDB服务。这个脚本也是运行其他tools的入口调用脚本,非常简单。
如此安装完成。接下来是配置。
三、配置
安装完成后,第一步是创建schema所需要的表:
env COMPRESSION=NONE HBASE_HOME=/home/hadoop/hbase ./src/create_table.sh这条命令同样在根目录下运行。
其他配置
使用配置文件opentsdb.conf,在部署根目录创建配置文件即可,可以从./src得到这个文件,复制过来。更改如下配置项:
# 接受请求的端口tsd.network.port = 4399# 接受请求的网卡tsd.network.bind = 0.0.0.0# HTTP客户端的GUI静态页面,这个使用默认值即可。tsd.http.staticroot = ./staticroot# cache 路径,最好提前创建好,保证读写权限。tsd.http.cachedir = /home/opentsdb/tsdb_cache# 是否能自动创建统计指标tsd.core.auto_create_metrics = true# HBase表名称tsd.storage.hbase.data_table = tsdb# HBase访问相关tsd.storage.hbase.zk_basedir = /hbasetsd.storage.hbase.zk_quorum = master1,master2,slave1,slave2tsd.storage.fix_duplicates = true
四、运行使用
1、上面有提到,运行OpenTSDB的服务使用tsdb这个脚本完成,这里我编写了一个脚本,专用于启动服务:
#!/bin/bash# Author: ez# Date: 2017/3/13# Discription: Start Opentsdb server.ROOT=`dirname $0`LOG_DIR=$ROOT/logsOUT_FILE=server.lognohup $ROOT/tsdb tsd >> $LOG_DIR/server.log 2>&1 &
逻辑很简单,只是配置了一个log目录,用于接收打印到stdout的日志。并用nohup将session终端与进程分离,挂到init上。
测试时也可以直接使用如下命令:
./tsdb tsd
2、简单使用
启动起来后,可以使用浏览器查看GUI,配置的端口为4399。由于OpenTSDB使用的都是HTTP请求,所以这里我们同样使用HTTP请求来测试读写数据。我们使用curl工具做请求。
写入统计指标mytest.cpu,host=master1
curl -i -X POST -d '{"metric":"mytest.cpu","timestamp":1496219345,"value":1.3,"tags":{"host":"master1"}}' http://master1:4399/api/put?details
接下来通过浏览器访问GUI,输入指标(matrix)mytest.cpu,host为master1则可以得到曲线图。
- OpenTSDB2.3.0安装部署
- OpenTSDB2.3.0安装部署
- codis 3.0安装部署
- zabbix 3.0安装部署
- zabbix-3.0.4安装部署
- 安装部署
- 安装部署
- 部署安装
- Drools6.3.0部署(MyEclipse安装与tomcat部署)
- OpenCV 3.0 安装与VS2012的部署
- Azkaban 3.0 分布式安装部署文档
- .Net安装部署(Copy部署/功能部署/预编译部署)
- mysql的安装部署
- VS.NET安装部署
- sql安装部署
- 安装和部署
- 水晶报表 - 安装&部署
- 水晶报表 - 安装&部署
- 【RabbitMQ】安装
- Python利用{}.fromkeys来创建空字典的时候要注意附默认值时其他键会同时变化
- Kotlin
- Java虚拟机学习笔记(二)
- Vue路由详解
- OpenTSDB2.3.0安装部署
- Date对象及函数
- linux下离线安装tesseract-ocr
- vue-router 2.0 常用基础知识点之router-link
- App无法转让,您必须为想要转让的App关闭TestFlight Beta版测试解决方案
- vue-router 2.0 常用基础知识点之router.push()
- PRD产品需求文档丨我的生态工坊
- 修改tomcat访问到默认的路径中
- 你又可以大幅提升项目性能啦!