opentsdb官網(wǎng):http://opentsdb.net/overview.html
OpenTSDB是一個(gè)基于HBase的分布式碉碉、可伸縮的開源時(shí)序數(shù)據(jù)庫狱窘。OpenTSDB由TSD(Time Series Daemon)和一系列命令行工具組成。TSD用于接收用戶請(qǐng)求并將時(shí)序數(shù)據(jù)存儲(chǔ)在HBase中裁僧。TSD之間是相互獨(dú)立的个束,沒有master,也沒有共享狀態(tài)聊疲,因此可以根據(jù)系統(tǒng)的負(fù)載情況任意進(jìn)行擴(kuò)展茬底。下圖是一個(gè)基于OpenTSDB的監(jiān)控系統(tǒng)架構(gòu)圖(來自官方文檔)
由上圖可知,opentsdb是基于hbase的上層應(yīng)用获洲。所以在安裝opentsdb時(shí)先安裝hbase阱表。
一、Hbase安裝
(略...想不到吧)
二贡珊、OpenTSDB安裝
本文opentsdb安裝基于docker,需要了解更多docker安裝使用信息請(qǐng)教度娘吧最爬。這里假設(shè)已安裝好docker,進(jìn)入docker容器中操作了门岔。opentsdb默認(rèn)端口4242爱致。
官方也有提供了opentsdb-docker鏡像。但不是我想要的(不需要在docker啟動(dòng)hbase,只需hbase客戶端)寒随,我的hbase集群已安裝在宿主機(jī)上了糠悯,不想修改已有的鏡像,自己造妻往。
實(shí)踐過程中遇到如下錯(cuò)誤:
Failed to get D-Bus connection: Operation not permitted
解決辦法就是在docker run 的時(shí)候運(yùn)行/usr/sbin/init 互艾。比如:
[root@localhost /]# docker run -tid --name hadoopbase centos/hadoopbase:v001 /usr/sbin/init
1、安裝jdk環(huán)境
#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客戶端安裝
重宿主機(jī)拷貝一份hbase過即可忘朝,在宿主機(jī)上執(zhí)行
docker cp /opt/apps/hbase-1.1.1 [容器ID]:/opt/
3、安裝GnuPlot
GnuPlot是一個(gè)命令行的交互式繪圖工具判帮,OpenTSDB使用GnuPlot繪圖局嘁。
yum install -y gnuplot
4溉箕、下載安裝opentsdb
可先到opentsdb官網(wǎng)找到自己想要的版本復(fù)制鏈接
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
若報(bào)/etc/rc.d/init.d/functions: No such file or directory 錯(cuò)誤,解決:yum install initscripts
5悦昵、檢測(cè)安裝
#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肴茄、修改配置
至少修改以下兩項(xiàng),其他配置根據(jù)需要修改(提示:記得配置主機(jī)名映射)
#vi /etc/opentsdb/opentsdb.conf
tsd.core.auto_create_metrics = true
tsd.storage.hbase.zk_quorum = hdc-data1,hdc-data2,hdc-data3
7但指、創(chuàng)建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
執(zhí)行之后拦坠,會(huì)在HBase中創(chuàng)建出tsdb、tsdb-uid剩岳、tsdb-tree和tsdb-meta四個(gè)表贞滨。
8、啟動(dòng)及驗(yàn)證
tsdb tsd &
ss -lnt | grep 4242
ps aux|grep opentsdb
9拍棕、opentsdb使用
創(chuàng)建metric
使用如下命令
tsdb mkmetric sys.cpu.user
寫入數(shù)據(jù)
作為測(cè)試晓铆,我們可以使用telnet接口寫入兩條數(shù)據(jù):
# 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
讀取數(shù)據(jù)
可以使用命令行讀取剛才寫入的兩條數(shù)據(jù):
# 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}
使用python通過http操作,https://github.com/liangriyu/opentsdb-py
10绰播、web-ui繪圖
經(jīng)驗(yàn)證docker中骄噪,opentsdb的繪圖有誤,仔細(xì)觀察圖一和圖二的時(shí)間軸,正確如圖二蠢箩。
圖一(docker中的opentsdb)
圖二(直接在宿主機(jī)上的opentsdb)
有沒有發(fā)現(xiàn)链蕊,opentsdb可以安裝很多個(gè),他們共用hbase表忙芒。若想考慮負(fù)載均衡可結(jié)合第三方組件實(shí)現(xiàn)示弓。但一般情況足夠了讳侨。而且opentsdb自帶的圖形界面一個(gè)字呵萨,丑。所以采用更美觀一點(diǎn)的Grafana監(jiān)控平臺(tái)跨跨。
三潮峦、安裝Grafana
好文檔都在官網(wǎng):https://grafana.com/grafana/download
重新建一個(gè)docker容器,若需要勇婴。grafana默認(rèn)端口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、啟動(dòng)
service grafana-server start
3耕渴、webUI使用
默認(rèn)用戶名:admin拘悦,密碼:admin
創(chuàng)建數(shù)據(jù)源
點(diǎn)擊保存后如提示則數(shù)據(jù)源正常
創(chuàng)建儀表盤