本文為富文本格式谍珊,排版較差切平,為了更好的瀏覽效果头谜,我已將本文編輯為Markdown格式私爷,您可前往此處閱讀:http://www.reibang.com/p/daf80042433e
簡介:
??????TDengine是一個高效的存儲、查詢斗躏、分析時序大數(shù)據(jù)的平臺逝慧,專為物聯(lián)網(wǎng)、車聯(lián)網(wǎng)啄糙、工業(yè)互聯(lián)網(wǎng)笛臣、運(yùn)維監(jiān)測等優(yōu)化而設(shè)計。而作為服務(wù)于一家車聯(lián)網(wǎng)公司且有著鉆研精神的大數(shù)據(jù)工程師迈套,自然會摸索一番捐祠。
? ? ? ?在安裝好TDengine后碱鳞,根據(jù)官方給出的TDengine+Telegraf+Grafana組合桑李,搭建監(jiān)控平臺。
Telegraf--數(shù)據(jù)采集
TDengine--數(shù)據(jù)存儲
Grafana--數(shù)據(jù)展示
利用官方博客給出的c程序向TDengine插入數(shù)據(jù)窿给,并通過監(jiān)控平臺觀測CPU贵白、內(nèi)存和磁盤利用率如下圖:
注意事項(xiàng):?
TDengine官方文檔顯示:?
目前,TDengine只支持在使用systemd做進(jìn)程服務(wù)管理的linux系統(tǒng)上安裝崩泡。其他linux系統(tǒng)的支持正在開發(fā)中禁荒。用which命令來檢測系統(tǒng)中是否存在systemd。?
因此角撞,Linux系統(tǒng)需要是Centos7和Ubuntu16.04及以上系統(tǒng)呛伴。?
Linux環(huán)境:
1、系統(tǒng):Centos7.2
2谒所、內(nèi)存:8G
3热康、磁盤:1T
4、CPU:Intel(R) Pentium(R) CPU G3250 @ 3.20GHz
5劣领、核數(shù):2核
TDengine部署:
1姐军、從官網(wǎng)https://www.taosdata.com/cn/getting-started/下載RPM包(tdengine-1.6.0.0-3.el7.x86_64.rpm)
2、安裝:rpm -ivh tdengine-1.6.0.0-3.el7.x86_64.rpm
3、啟動taos:systemctl start taosd
4奕锌、輸入taos著觉,進(jìn)入數(shù)據(jù)庫
Telegraf部署:
? ? ? ?Telegraf 是收集和報告指標(biāo)和數(shù)據(jù)的代理。Telegraf是TICK Stack的一部分惊暴,是一個插件驅(qū)動的服務(wù)器代理饼丘,用于收集和報告指標(biāo)。
1辽话、進(jìn)入官網(wǎng)https://portal.influxdata.com/downloads/下載
2葬毫、選擇對應(yīng)版本安裝
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.11.3-1.x86_64.rpm
sudo yum localinstall telegraf-1.11.3-1.x86_64.rpm
3、配置Telegraf屡穗,進(jìn)入/etc/telegraf/telegraf.conf
在[agent]部分修改配置項(xiàng):
hostname: 區(qū)分不同采集設(shè)備的機(jī)器名稱贴捡,需確保其唯一性
metric_batch_size: 30,允許Telegraf每批次寫入記錄最大數(shù)量村砂,增大其數(shù)量可以降低Telegraf的請求發(fā)送頻率烂斋,但對于TDengine,該數(shù)值不能超過50
在[[outputs.http]]修改配置項(xiàng):
url:http://ip:6020/telegraf/udb础废,其中ip為TDengine集群的中任意一臺服務(wù)器的IP地址汛骂,6020為TDengine RESTful接口的端口號,telegraf為固定關(guān)鍵字评腺,udb為用于存儲采集數(shù)據(jù)的數(shù)據(jù)庫名稱帘瞭,可預(yù)先創(chuàng)建(一般默認(rèn)生成)
method: "POST"
username: 登錄TDengine的用戶名,默認(rèn)為root
password: 登錄TDengine的密碼蒿讥,默認(rèn)為taosdata
data_format: "json"
json_timestamp_units: "1ms" 注意這一行不能直接復(fù)制粘貼蝶念,里面“:”要改成“=”
4、啟動Telegraf?
systemctl start telegraf
5芋绸、進(jìn)入taos數(shù)據(jù)庫媒殉,查看生成的庫和表
show databases; --顯示數(shù)據(jù)庫
use udb;--使用數(shù)據(jù)庫
show stables;--顯示超級表
show tables;--顯示普通表
Grafana部署:
Grafana是一個跨平臺的開源的度量分析和可視化工具,可以通過將采集的數(shù)據(jù)查詢?nèi)缓罂梢暬恼故舅ち玻⒓皶r通知廷蓉。
1、進(jìn)入官網(wǎng)https://grafana.com/grafana/download下載并安裝:
wget?https://dl.grafana.com/oss/release/grafana-6.2.5-1.x86_64.rpm?
sudo yum?localinstall?grafana-6.2.5-1.x86_64.rpm?
2桃犬、TDengine的Grafana插件在安裝包的/usr/local/taos/connector/grafana目錄下。
以CentOS 7.2系統(tǒng)為例行楞,將tdengine目錄拷貝到/var/lib/grafana/plugins目錄下
scp -r /usr/local/taos/connector/grafana/tdengine/ /var/lib/grafana/plugins
3、啟動Grafana
systemctl start grafana-server
4、在瀏覽器中通過host:3000登錄Grafana服務(wù)器(用戶名/密碼:admin/admin)
5、添加數(shù)據(jù)源為TDengine
用戶名/密碼為連接TDengine的root/taosdata垂涯,而不是Grafana的admin/admin。
6、創(chuàng)建dashboard實(shí)現(xiàn)數(shù)據(jù)可視化
注意事項(xiàng)
最近有朋友執(zhí)行我文檔中的SQL語句扔嵌,發(fā)現(xiàn)顯示no data限府,原因是新版的TDengine改變了各個參數(shù)在數(shù)據(jù)庫中的名稱,請大家對照taos數(shù)據(jù)庫中的表名編寫SQL語句痢缎。
以上分為7個步驟胁勺,分別用1-7標(biāo)明:
1、點(diǎn)擊Queries圖標(biāo)
2独旷、選擇Query中的TDengine
3姻几、在INPUT SQL中填入需要顯示的指標(biāo),以上為CPU利用率
select avg(f_usage_user) from udb.cpu WHERE ts>=$from and ts<$to interval($interval)
4势告、為Panel形取一個別名:CPU
5蛇捌、點(diǎn)擊GENERATE SQL,生成圖形
6咱台、選擇需要展示的時間段嗤练,如Last 5 minutes
7、選擇圖形刷新的頻率翘悉,如5s
7唯欣、配置Visualization參數(shù)
8、設(shè)置General參數(shù)
點(diǎn)擊General遗遵,為Panel修改名稱為:CPU利用率
9萍恕、配置Settings
10、保存后得到下圖
11车要、進(jìn)入Grafana官網(wǎng)https://grafana.com/grafana/plugins?type=panel還可以安裝一些插件允粤,如時鐘等
grafana-cli plugins install grafana-clock-panel
systemctl restart grafana-server
重啟Grafana后,刷新dashboard便會出現(xiàn)Clock
12翼岁、其他監(jiān)控指標(biāo)如下:
磁盤利用率
select avg(f_used_percent) from udb.disk WHERE ts>=$from and ts<$to interval($interval);
總內(nèi)存
select avg(f_total) from udb.mem WHERE ts>=$from and ts<$to interval($interval);
內(nèi)存利用率
select avg(f_used_percent) from udb.mem WHERE ts>=$from and ts<$to interval($interval);
可用內(nèi)存
select avg(f_available) from udb.mem WHERE ts>=$from and ts<$to interval($interval);
總結(jié):
? ? ? ? 基于TDengine+Telegraf+Grafana的簡易監(jiān)控平臺搭建完成类垫,感興趣的朋友可以監(jiān)控更多指標(biāo)并加上報警功能等。TDengine自開源以來便引起了巨大反響琅坡,使用過一段時間后悉患,不得不說,TDengine的誕生確實(shí)為物聯(lián)網(wǎng)數(shù)據(jù)的存儲分析帶來了便利榆俺,我有以下幾個心得:
1售躁、從部署來講坞淮,即使搭建過很多次Hadoop架構(gòu),我還是得仔細(xì)配置調(diào)參測試陪捷,至少得折騰一兩天碾盐,TDengine單機(jī)版部署確實(shí)是秒級,集群版部署流程不太清楚揩局。
2毫玖、從存儲來講,我用的是snappy算法凌盯,官方給出的壓縮率是remaining 20%付枫,在測試的時候感覺并沒有這么多,我們磁盤總共60T驰怎,3月開始到現(xiàn)在用了差不多10T了阐滩。TDengine的壓縮率是10%。
3县忌、從數(shù)據(jù)分析來講掂榔,我們讀取Hbase數(shù)據(jù),快的方法是Spark症杏,我們的行健是車輛ID和時間戳的組合装获,相鄰時間的數(shù)據(jù)可能分散在各個region上,在不同的機(jī)器上厉颤,通過RPC連接穴豫,查詢時也比較慢。而TDengine設(shè)計時一輛車對應(yīng)一張表逼友,連續(xù)的數(shù)據(jù)在一個block上精肃,查詢非常快帜乞,我用python連接單機(jī)版taos數(shù)據(jù)庫司抱,讀取和分析整個超級表也是秒級的,集群版沒有測試過黎烈。
4习柠、從運(yùn)維上來講,我安裝的每個組件是分開部署怨喘,不像Ambari那種集成了所有組件的津畸,集群出問題了就要一點(diǎn)點(diǎn)排查,不過好在Hadoop架構(gòu)相對比較成熟了必怜,網(wǎng)上應(yīng)該總能找到解決辦法。而TDengine就是把所有東西都封裝在一個小小的包里面后频,運(yùn)維應(yīng)該會相對輕松梳庆。
? ? ? ? 以上言論均為一家之言暖途,最后,希望能盡快感受到集群版的魅力膏执,也祝愿TDengine蓬勃發(fā)展驻售。