簡介:
? ? ??TDengine是一個高效的存儲唤殴、查詢、分析時序大數(shù)據(jù)的平臺到腥,專為物聯(lián)網(wǎng)朵逝、車聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)乡范、運維監(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)存和磁盤利用率如下圖:
注意事項:
TDengine官方文檔顯示:
目前涩哟,TDengine只支持在使用`systemd`做進程服務(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威鹿,進入數(shù)據(jù)庫
Telegraf部署:
? ? ??Telegraf 是收集和報告指標和數(shù)據(jù)的代理。Telegraf是TICK Stack的一部分轨香,是一個插件驅(qū)動的服務(wù)器代理忽你,用于收集和報告指標。
1臂容、進入官網(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,進入/etc/telegraf/telegraf.conf
在[agent]部分修改配置項:
hostname
: 區(qū)分不同采集設(shè)備的機器名稱糟秘,需確保其唯一性metric_batch_size
: 30简逮,允許Telegraf每批次寫入記錄最大數(shù)量,增大其數(shù)量可以降低Telegraf的請求發(fā)送頻率尿赚,但對于TDengine散庶,該數(shù)值不能超過50
在[[outputs.http]]修改配置項:
url:http://ip:6020/telegraf/udb,其中ip為TDengine集群的中任意一臺服務(wù)器的IP地址吼畏,6020為TDengine RESTful接口的端口號督赤,telegraf為固定關(guān)鍵字,udb為用于存儲采集數(shù)據(jù)的數(shù)據(jù)庫名稱泻蚊,可預(yù)先創(chuàng)建(一般默認生成)
method: "POST"
username: 登錄TDengine的用戶名躲舌,默認為root
password: 登錄TDengine的密碼,默認為taosdata
data_format: "json"
json_timestamp_units: "1ms" `注意這一行不能直接復(fù)制粘貼性雄,里面“:”要改成“=”`
4没卸、啟動Telegraf
systemctl start telegraf
5、進入taos數(shù)據(jù)庫秒旋,查看生成的庫和表
show databases; --顯示數(shù)據(jù)庫
use udb;--使用數(shù)據(jù)庫
show stables;--顯示超級表
show tables;--顯示普通表
Grafana部署:
? ? ??Grafana是一個跨平臺的開源的度量分析和可視化工具约计,可以通過將采集的數(shù)據(jù)查詢?nèi)缓罂梢暬恼故荆⒓皶r通知迁筛。
1煤蚌、進入官網(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實現(xiàn)數(shù)據(jù)可視化
注意事項
最近有朋友執(zhí)行我文檔中的SQL語句,發(fā)現(xiàn)顯示no data导披,原因是
新版的TDengine改變了各個參數(shù)在數(shù)據(jù)庫中的名稱
屈扎,請大家對照taos數(shù)據(jù)庫中的表名編寫SQL語句。
以上分為7個步驟撩匕,分別用1-7標明:
1助隧、點擊Queries圖標
2、選擇Query中的TDengine
3、在INPUT SQL中填入需要顯示的指標并村,以上為CPU利用率:
select avg(f_usage_user) from udb.cpu WHERE ts>=$from and ts<$to interval($interval)
4、為Panel形取一個別名:CPU
5滓技、點擊GENERATE SQL哩牍,生成圖形
6、選擇需要展示的時間段令漂,如Last 5 minutes
7膝昆、選擇圖形刷新的頻率,如5s
7叠必、配置Visualization參數(shù)
8荚孵、設(shè)置General參數(shù)
點擊General,為Panel修改名稱為:CPU利用率
9纬朝、配置Settings
10收叶、保存后得到下圖
11、進入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)控指標如下:
磁盤利用率
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)控更多指標并加上報警功能等澄峰。TDengine自開源以來便引起了巨大反響,使用過一段時間后辟犀,不得不說俏竞,TDengine的誕生確實為物聯(lián)網(wǎng)數(shù)據(jù)的存儲分析帶來了便利,我有以下幾個心得:
1堂竟、從部署來講魂毁,即使搭建過很多次Hadoop架構(gòu),我還是得仔細配置調(diào)參測試跃捣,至少得折騰一兩天漱牵,TDengine單機版部署確實是秒級,集群版部署流程不太清楚疚漆。
2酣胀、從存儲來講,我用的是snappy算法娶聘,官方給出的壓縮率是remaining 20%闻镶,在測試的時候感覺并沒有這么多,我們磁盤總共60T丸升,3月開始到現(xiàn)在用了差不多10T了铆农。TDengine的壓縮率是10%。
3狡耻、從數(shù)據(jù)分析來講墩剖,我們讀取Hbase數(shù)據(jù)猴凹,快的方法是Spark,我們的行健是車輛ID和時間戳的組合岭皂,相鄰時間的數(shù)據(jù)可能分散在各個region上郊霎,在不同的機器上,通過RPC連接爷绘,查詢時也比較慢书劝。而TDengine設(shè)計時一輛車對應(yīng)一張表,連續(xù)的數(shù)據(jù)在一個block上土至,查詢非彻憾裕快,我用python連接單機版taos數(shù)據(jù)庫陶因,讀取和分析整個超級表也是秒級的骡苞,集群版沒有測試過。
4坑赡、從運維上來講烙如,我安裝的每個組件是分開部署,不像Ambari那種集成了所有組件的毅否,集群出問題了就要一點點排查亚铁,不過好在Hadoop架構(gòu)相對比較成熟了,網(wǎng)上應(yīng)該總能找到解決辦法螟加。而TDengine就是把所有東西都封裝在一個小小的包里面徘溢,運維應(yīng)該會相對輕松。
? ? ??以上言論均為一家之言捆探,最后然爆,希望能盡快感受到集群版的魅力,也祝愿TDengine蓬勃發(fā)展黍图。