opentsdb部署与安装
来源:互联网 发布:python 捕捉ctrl c 编辑:程序博客网 时间:2024/06/06 14:14
OpenTSDB部署与使用
OpenTSDB 是基于 HBase 存储时间序列数据的一个开源数据库,对于存储监控系统采集的数据来说非常合适,不仅在写入查询上有很高的效率,而且节省存储空间。
安装 HBase
因为 OpenTSDB 的后端存储使用的是 HBase,所以我们需要先安装 HBase。
参考文档: Quick Start - Standalone HBase
这里简单搭建了一个单机的 HBase 环境:
- 安装 JDK 环境,centos 上可以直接通过 yum 安装。
- 下载 HBase,http://apache.fayea.com/hbase/stable,这里我们选择下载 stable 的 1.1.3 版本,文件名为
hbase-1.1.3-bin.tar.gz
,解压到任意目录。 - 修改
conf/hbase-env.sh
,设置JAVA_HOME=/usr
,这个是/bin/java
所在的目录,通过which java
查看。 - 修改
conf/hbase-site.xml
, 设置 hbase 的数据存储目录以及 zookeeper 的数据存储目录,默认会放到/tmp
目录下,这个目录机器重启后会清空,所以需要更改目录。 - 执行
bin/start-hbase.sh
启动 HBase,之后可以通过jps
命令来查看 HMaster 进程是否启动成功。bin/stop-hbase.sh
用于关闭 HBase。
conf/hbase-site.xml
的配置示例如下
<configuration> <property> <name>hbase.rootdir</name> <value>file:///home/testuser/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/testuser/zookeeper</value> </property></configuration>
通过命令行操作 HBase
这里可以稍微熟悉一下 HBase 的操作,非必须。
连接到 HBase
./bin/hbase shell
创建一张表
create 'test', 'cf'
查看表信息
list 'test'
向表中插入数据
put 'test', 'row1', 'cf:a', 'value1'put 'test', 'row2', 'cf:b', 'value2'put 'test', 'row3', 'cf:c', 'value3'
查看表中所有数据
scan 'test'
查看指定行的数据
get 'test', 'row1'
禁用指定表(删除表或修改表设置前需要先禁用该表)
disable 'test'
恢复指定表
enable 'test'
删除表
drop 'test'
安装OpenTSDB
参考文章
http://debugo.com/opentsdb/
http://opentsdb.net/docs/build/html/installation.html#runtime-requirements
直接从 github 上下载 OpenTSDB 的 release 版本的 RPM 包。安装
yum localinstall opentsdb-2.2.0.noarch.rpm
。配置完成后,我们通过下面命令在 HBase 中建立 opentsdb 所需的表。默认情况下 opentsdb 建立的 HBase 表启用了 lzo 压缩。需要开启 Hadoop 中的 lzo 压缩支持, 这里我们直接在下面脚本中把 COMPRESSION 的支持关闭。修改
/usr/share/opentsdb/tools/create_table.sh
,设置COMPRESSION=NONE
,并且在文件开始处设置 HBase 所在目录,HBASE_HOME=/home/xxx/hbase-1.1.3
。之后执行该脚本,在 HBase 中创建相应的表。修改 OpenTSDB 的配置文件,
/etc/opentsdb/opentsdb.conf
,例如绑定的端口号等。这里需要注意的是 tsd.core.auto_create_metrics 从 false 改为 true。这样上传数据时会自动创建 metric,否则会提示 Unknown metric 的错误。也可以设置为 false,但是使用tsdb mkmetric proc.loadavg.1m
来手动添加 metric。启动 OpenTSDB,
service opentsdb start
或者nohup tsdb tsd &
。通过浏览器访问 http://x.x.x.x:4242 查看是否安装成功。
HTTP API
插入数据
/api/put
根据 url 参数的不同,可以选择是否获取详细的信息。
/api/put?summary // 返回失败和成功的个数
{ "failed": 0, "success": 1}
/api/put?details // 返回详细信息
{ "errors": [], "failed": 0, "success": 1}
通过POST方式插入数据,JSON格式,例如
{ "metric":"self.test", "timestamp":1456123787, "value":20, "tags":{ "host":"web1" }}
查询数据
/api/query
可以选择 Get 或者 Post 两种方式,推荐使用 Post 方式,JSON 格式。
{ "start": 1456123705, "end": 1456124985, "queries": [ { "aggregator": "sum", "metric": "self.test", "tags": { "host": "web1" } }, { "aggregator": "sum", "metric": "self.test", "tags": { "host": "web2" } } ]}
start 和 end 为指定的查询时间段。
queries 为一个数组,可以指定多个查询。
metric 和 tags 是用于过滤的查询条件。
返回字符串也为json格式
[ { "metric": "self.test", "tags": {}, "aggregateTags": [ "host" ], "dps": { "1456123785": 10, "1456123786": 10 } }, { "metric": "self.test", "tags": { "host": "web1" }, "aggregateTags": [], "dps": { "1456123784": 10, "1456123786": 15 } }]
聚合
aggregator 是用于对查询结果进行聚合,将同一 unix 时间戳内的数据进行聚合计算后返回结果,例如如果 tags 不填,1456123705 有两条数据,一条 host=web1
,另外一条 host=web2
,值都为10,那么返回的该时间点的值为 sum 后的 20。
条件过滤
可以针对 tag 进行一些条件的过滤,返回 tag 中 host 的值以 web 开头的数据。
"queries": [ { "aggregator": "sum", "metric": "self.test", "filters": [ { "type": "wildcard", "tagk": "host", "filter": "web*" } ] }]
downsample
简单来说就是对指定时间段内的数据进行聚合后返回,例如需要返回每分钟的平均值数据
"queries": [ { "aggregator": "sum", "metric": "self.test", "downsample": "1m-avg", "tags": { "host": "web1" } }]
作者:fatedier
本文出处:http://test.fatedier.com/2016/03/12/install-and-use-opentsdb/
- opentsdb部署与安装
- openTSDB安装,部署
- OPENTSDB 安装与运行
- OpenTSDB安装与使用
- OpenTSDB部署
- opentsdb安装
- OpenTsdb的eclipse配置与 linux安装
- 分布式部署opentsdb
- 【Hadoop】OpenTSDB部署
- OpenTSDB配置安装
- OpenTSDB安装HBase
- opentsdb+grafana安装配置
- OpenTSDB研究---安装过程
- opentsdb研究--安装tcollector
- opentsdb 编译和安装
- openTSDB安装步骤
- Ubuntu安装OpenTSDB
- OpenTSDB-2.0.0安装布署
- Select模型设计200人服务器
- 指针函数与函数指针的指导
- SCI论文发表心得
- [book]《智能时代》
- Mac安装nltk后在python 3的IDLE中import nltk报错
- opentsdb部署与安装
- 学习mysql数据库
- 纯js实现拖拽功能
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- js运动之一(匀速,折返,缓冲,加速)
- Javascript讲解系列之一 Prototype原型链详解
- Spring依赖注入DI
- 【Java利器之】IntelliJ IDEA For Mac 快捷键
- 电压跟随器自激振荡问题产生与解决办法