本文详细叙述搭建opentsdb过程。 简介 本文简介opentsdb搭建流程。opentsdb的搭建依赖链: opentsdb->hbase->java。下文逐个展开。
推荐用oracle java而不是openjdk。所以需要去官网下载java。当前下载的版本为:jdk-8u131-linux-x64.tar.gz。一般解压会得到带有版本信息的文件夹。
tar xvf ~/Downloads/jdk-8u131-linux-x64.tar.gz
mv jdk1.8.0_131 /usr/local/java
设置环境变量,将下面的环境变量添加到 $HOME/.bashrc
中
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
更新完环境变量检测:
java –version
hbase记得要用stable版本,否则会搭建失败。 当前的hbase版本: hbase-1.2.5-bin.tar.gz,还是解压更新文件夹名称,配合环境变量如下:
export HBASE_HOME=/usr/local/hbase
export HBASE_HOME
需要修改的文件: /usr/local/hbase/conf/hbase-site.xml. 内容如下:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///root/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/root/zookeeper</value>
</property>
</configuration>
需要修改的文件: /usr/local/hbase/conf/hbase-env.sh 修改JAVA_HOME参数
export JAVA_HOME=/usr/local/java
启动hbase
cd /usr/local/hbase/bin && ./start-hbase.sh
检测
echo $?
jps
网页访问: http://localhost:16010
tsdb通过github网站release页面下载: https://github.com/OpenTSDB/opentsdb/releases 。 当前的版本为: opentsdb-2.3.0_all.deb。
Ubuntu:
dpkg –i ~/Downloads/ opentsdb-2.3.0_all.deb
Centos:
rpm –ivh opentsdb-2.3.0_all.rpm
安装后的步骤:
- /etc/opentsdb/opentsdb.conf
tsd.network.port = 11242 tsd.http.staticroot = usr/share/opentsdb/static tsd.http.cachedir = /tmp/opentsdb tsd.core.plugin_path = /usr/share/opentsdb/plugins
- 增加两个变量执行创建表的脚本,或者env传入或者写到脚本里面:
HABASE_HOME=/usr/local/hbase
COMPRESSION=NONE
脚本文件: /usr/share/opentsdb/tools/create_table.sh
带这两个变量执行脚本。
HABASE_HOME=/usr/local/hbase COMPRESSION=NONE /usr/share/opentsdb/tools/create_table.sh
# 看$?返回值,看输出。
- 启动
cd /usr/share/opentsdb/bin/ && nohup ./tsdb tsd &
- 创建测试metric
cd /usr/share/opentsdb/bin/ ./tsdb mkmetric proc.loadavg.1m
- 写脚本put数据:
#!/bin/bash set -e while true; do awk -v now=`date +%s` -v host=`hostname` '{ print "put proc.loadavg.1m " now " " $1" host=" host;}' /proc/loadavg | nc -w 30 localhost 4242 #awk -v now=`date +%s` -v host=`hostname` '{ print "put proc.loadavg.1m " now " " $1" host=" host;}' /proc/loadavg sleep 3 echo "put metric done" done