1、介紹
openTSDB(見圖)使用hbase作為存儲中心,它無須采樣,可以完整的收集和存儲上億的數據點,支持秒級別的數據監控,得益於hbase的分布式列式存儲,hbase可以靈活的支持metrics的增加,可以支持上萬機器和上億數據點的采集。在openTSDB中,TSD是hbase對外通信的daemon程序,沒有master/slave之分,也沒有共享狀態,因此利用這點和hbase集群的特點就可以消除單點。用戶可以通過telnet或者http協議直接訪問TSD接口,也可以通過rpc訪問TSD。每一個需要獲取metrics的Servers都需要設置一個Collector用來收集時間序列數據。這個Collector就是你收集數據的腳本。
2、安裝好JDK並配置JAVA_HOME
JAVA_HOME=/usr/java/latest
3、安裝單節點的hbase
a、下載hbase-0.94.7.tar.gz並解壓縮
tar -zxf hbase-0.94.7.tar.gz
cd hbase-0.94.7/conf
vim hbase-site.xml
b、配置HBASE_HOME
export HBASE_HOME=/root/OpenTSDB/hbase-0.94.7
c、啟動hbase
/bin/start-hbase.sh
d、查看hbase進程
jps查看是否有HMaster
ps aux| grep hbase
4、安裝openTSDB所需的一些軟件
yum install gnuplot autoconf git -y
5、安裝openTSDB
a、下載opentsdb-1.1.0.tar.gz
tar -zxf opentsdb-1.1.0.tar.gz
cd opentsdb-1.1.0
./build.sh
6、運行opneTSDB
配置環境變量並建hbase表
env COMPRESSION=none HBASE_HOME=/root/OpenTSDB/hbase-0.94.7 /root/OpenTSDB/opentsdb-1.1.0/src/create_table.sh
./build/tsdb tsd --port=4242--staticroot=staticroot --cachedir=/tmp/tsdtmp &
以下是tsdb可運行的命令
usage: tsdb
Valid commands: fsck, import, mkmetric, query, tsd, scan, uid
7、測試
收集系統負載:
cat >loadavg-collector.sh <<\EOF
!/bin/bash
set -e whiletrue;
doawk -v now=date +%s
-v host=hostname
\ '{ print "put proc.loadavg.1m "now " "$1" host="host;
print "put proc.loadavg.5m "now " "$2" host="host }'
/proc/loadavg sleep 15done | nc -w 30192.168.0.754242
EOF
chmod +x loadavg-collector.sh
nohup ./loadavg-collector.sh &
然后可以在終端看見:
put proc.loadavg.1m 12889469270.36host=desktop30
put proc.loadavg.5m 12889469270.62host=desktop30
put proc.loadavg.1m 12889469420.43host=desktop30
put proc.loadavg.5m 12889469420.62host=desktop30
此時,在OpenTSDB服務器上,添加metric
/root/OpenTSDB/opentsdb-1.1.0/build/tsdb mkmetric proc.loadavg.1m proc.loadavg.5m
也可在啟動時添加自動創建參數,--auto-metric,如下:
./build/tsdb tsd --port=4242--staticroot=staticroot --cachedir=/tmp/tsdtmp --auto-metric &
然后通過瀏覽器訪問:http://192.168.0.75:4242,如下圖