OpenTSDB 部署

转自:http://www.ttlsa.com/opentsdb/opentsdb-setup/

有关 OpenTSDB 介绍可以参见之前的文章。

OpenTSDB架构

OpenTSDB三大块,收集,加载/存储和查询数据。这种架构的主要目的是写入和读取数据点到HBase的。 有很多种方法来收集数据。我们可以使用tcollector,也可以自定义客户端程序收集。架构图如下:

HBase

所需条件

  • A Linux system
  • Java Development Kit 1.6 or later
  • GnuPlot 4.2 or later
  • Autotools
  • Make
  • Python
  • Git
  • An Internet connection

安装jdk

为了处理大量的数据使用的HBase作为底层数据库。在安装OpenTSDB前,需要先安装并运行HBase。本文将部署简单单一的HBase环境,如果你需要可扩展高可用性,就需要部署完全的HBase集群。

Oracle下载jdk安装包。

设置环境变量

# vim /etc/profile
export JAVA_HOME=/usr/local/java
CLASSPATH=/usr/local/java/lib/dt.jar:/usr/local/java/lib/tools.jar
PATH=/usr/local/java/bin:$PATH
export PATH JAVA_HOME CLASSPATH
# source /etc/profile

部署单一的HBase实例

# http://www.apache.org/dist/hbase/hbase-0.98.5/hbase-0.98.5-hadoop2-bin.tar.gz
# tar zxvf hbase-0.98.5-hadoop2-bin.tar.gz
# ln -s hbase-0.98.5-hadoop2 hbase

配置HBase

# vim /usr/local/hbase/conf/hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
 <property>
 <name>hbase.rootdir</name>
 <value>file:///data/hbase</value>
 </property>
 <property>
 <name>hbase.zookeeper.property.dataDir</name>
 <value>/data/zookeeper</value>
 </property>
</configuration>

启动HBase实例

# cd /usr/local/hbase
# ./bin/start-hbase.sh

安装Gnuplot

# yum install gnuplot

安装OpenTSDB

下载地址:https://github.com/OpenTSDB/opentsdb/releases

可以下载RPM包安装或通过源码安装。通过源码编译安装需要连接到Google code下载jar包。

# wget https://github.com/OpenTSDB/opentsdb/releases/download/v2.0.0/opentsdb-2.0.0.tar.gz
# tar zxvf opentsdb-2.0.0.tar.gz
# cd opentsdb-2.0.0
# ./build.sh
# make install

创建表

# env COMPRESSION=NONE HBASE_HOME=/usr/local/hbase ./src/create_table.sh

COMPRESSION可以有NONE/LZO/GZIP/SNAPPY。 推荐使用LZO,压缩率高,会节省空间。 将创建4张表:tsdb、tsdb-uid、tsdb-tree、tsdb-meta。

配置OpenTSDB

要能正常启动tsdb服务,需要配置以下四个参数:

  • Port: 监听的端口,默认 4242
  • Staticroot: 指定web静态文件根目录
  • Cachedir: 创建一个临时目录来存储缓
  • Zkquorum: 指定Zookeeper服务器ip和端口
# vim ./opentsdb.conf
tsd.network.port = 4242
tsd.http.staticroot =build/staticroot
tsd.http.cachedir = /tmp/tsd
tsd.core.auto_create_metrics = true

Cachedir目录会缓存大量的临时过期文件,需要定期清理。源码目录下有提供一个脚本来定期清理该目录。可以设置为cron任务。

# crontab -e
* * * * 0 /usr/local/opentsdb2/tools/clean_cache.sh

启动tsdb服务:

# nohup ./build/tsdb tsd --config=./src/opentsdb.conf 2>&1 > /dev/null  &

采集数据

#!/bin/bash
INTERVAL=15
while :;
    do echo stats || exit;
    sleep $INTERVAL;
done | nc -w 30 127.0.0.1 4242 | sed 's/^/put /' | nc -w 30 127.0.0.1 4242

收集的数据格式如下:

put tsd.hbase.latency_90pct 1408958117 18 method=scan host=tsdb class=TsdbQuery
put tsd.hbase.latency_95pct 1408958117 18 method=scan host=tsdb class=TsdbQuery
put tsd.hbase.root_lookups 1408958117 0 host=tsdb
put tsd.hbase.meta_lookups 1408958117 2 type=uncontended host=tsdb
put tsd.hbase.meta_lookups 1408958117 0 type=contended host=tsdb
put tsd.hbase.rpcs 1408958117 0 type=increment host=tsdb
put tsd.hbase.rpcs 1408958117 312 type=delete host=tsdb
put tsd.hbase.rpcs 1408958117 601 type=get host=tsdb
put tsd.hbase.rpcs 1408958117 14543 type=put host=tsdb
put tsd.hbase.rpcs 1408958117 0 type=rowLock host=tsdb
put tsd.hbase.rpcs 1408958117 102 type=openScanner host=tsdb
put tsd.hbase.rpcs 1408958117 102 type=scan host=tsdb
put tsd.hbase.rpcs.batched 1408958117 739 host=tsdb
put tsd.hbase.flushes 1408958117 0 host=tsdb
put tsd.hbase.connections.created 1408958117 1 host=tsdb
put tsd.hbase.nsre 1408958117 0 host=tsdb
put tsd.hbase.nsre.rpcs_delayed 1408958117 0 host=tsdb
put tsd.compaction.count 1408958117 379 type=trivial host=tsdb
put tsd.compaction.count 1408958117 32 type=complex host=tsdb

这个这是简单的测试。收集OpenTSDB的信息的。 可以使用Tcollector来收集数据。有关Tcollector内容参见之前的文章。

OpenTSDB内置的可视化界面

通过http://IP:4242来访问

 

HBase

发表评论

电子邮件地址不会被公开。