weigl348 / opentsdb-py

基于开源时序数据库opentsdb的http api使用

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

opentsdb官网:http://opentsdb.net/overview.html
欢迎关注我的简书
OpenTSDB是一个基于HBase的分布式、可伸缩的开源时序数据库。OpenTSDB由TSD(Time Series Daemon)和一系列命令行工具组成。TSD用于接收用户请求并将时序数据存储在HBase中。TSD之间是相互独立的,没有master,也没有共享状态,因此可以根据系统的负载情况任意进行扩展。下图是一个基于OpenTSDB的监控系统架构图(来自官方文档)

image.png

由上图可知,opentsdb是基于hbase的上层应用。所以在安装opentsdb时先安装hbase。

一、Hbase安装

(略...想不到吧)

二、OpenTSDB安装

本文opentsdb安装基于docker,需要了解更多docker安装使用信息请教度娘吧。这里假设已安装好docker,进入docker容器中操作了。opentsdb默认端口4242。 官方也有提供了opentsdb-docker镜像。但不是我想要的(不需要在docker启动hbase,只需hbase客户端),我的hbase集群已安装在宿主机上了,不想修改已有的镜像,自己造。 实践过程中遇到如下错误: Failed to get D-Bus connection: Operation not permitted 解决办法就是在docker run 的时候运行/usr/sbin/init 。比如: [root@localhost /]# docker run -tid --name hadoopbase centos/hadoopbase:v001 /usr/sbin/init

1、安装jdk环境


#tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/java/
#vi /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_181
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin

2、hbase客户端安装

重宿主机拷贝一份hbase过即可,在宿主机上执行
docker cp /opt/apps/hbase-1.1.1 [容器ID]:/opt/

3、安装GnuPlot

GnuPlot是一个命令行的交互式绘图工具,OpenTSDB使用GnuPlot绘图。
yum install -y gnuplot

4、下载安装opentsdb

可先到opentsdb官网找到自己想要的版本复制链接
wget https://github.com/OpenTSDB/opentsdb/releases/download/v2.3.1/opentsdb-2.3.1.noarch.rpm
rpm -ivh opentsdb-2.3.1.noarch.rpm
若报/etc/rc.d/init.d/functions: No such file or directory 错误,解决:yum install initscripts

5、检测安装


#tsdb version
打印如下 net.opentsdb.tools 2.3.1 built at revision (MODIFIED) Built on 2018/05/22 17:08:21 +0000 by root@centos.localhost:/root/rpmbuild/BUILD/opentsdb-2.3.1

6、修改配置

至少修改以下两项,其他配置根据需要修改(提示:记得配置主机名映射)
#vi /etc/opentsdb/opentsdb.conf
tsd.core.auto_create_metrics = true
tsd.storage.hbase.zk_quorum = hdc-data1,hdc-data2,hdc-data3

7、创建hbase表

COMPRESSION=SNAPPY采用snappy压缩算法,若没安装该算法需自行安装。若不想使用压缩COMPRESSION=NONE 。HBASE_HOME为hbase客户端路径
env COMPRESSION=SNAPPY HBASE_HOME=/opt/hbase-1.1.1 /usr/share/opentsdb/tools/create_table.sh
执行之后,会在HBase中创建出tsdb、tsdb-uid、tsdb-tree和tsdb-meta四个表。

8、启动及验证


tsdb tsd &

ss -lnt | grep 4242

ps aux|grep opentsdb

9、opentsdb使用

创建metric 使用如下命令
tsdb mkmetric sys.cpu.user
写入数据 作为测试,我们可以使用telnet接口写入两条数据:
# telnet localhost 4242
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
put sys.cpu.user 1356998400 42.5 host=webserver01 cpu=0
put sys.cpu.user 1356999400 42.7 host=webserver01 cpu=0
读取数据 可以使用命令行读取刚才写入的两条数据:
# tsdb query 1356998400 1356999400 sum sys.cpu.user
sys.cpu.user 1356998400000 42.500000 {host=webserver01, cpu=0}
sys.cpu.user 1356999400000 42.700001 {host=webserver01, cpu=0}

10、web-ui绘图

图一(docker中的opentsdb) image.png

opentsdb可以安装很多个,他们共用hbase表。若想考虑负载均衡可结合第三方组件实现。但一般情况足够了。而且opentsdb自带的图形界面一个字,丑。所以采用更美观一点的Grafana监控平台。

三、安装Grafana

好文档都在官网:https://grafana.com/grafana/download 重新建一个docker容器,若需要。grafana默认端口3000

1、下载安装


wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.3.2-1.x86_64.rpm
sudo yum localinstall grafana-5.3.2-1.x86_64.rpm

2、启动


service grafana-server start

3、webUI使用

默认用户名:admin,密码:admin image.png

创建数据源 image.png 点击保存后如提示则数据源正常 image.png

创建仪表盘 image.png

image.png

About

基于开源时序数据库opentsdb的http api使用


Languages

Language:Python 100.0%