1. 簡(jiǎn)介
本文以一個(gè)數(shù)據(jù)中心的服務(wù)器監(jiān)控為例,詳細(xì)介紹通過(guò)開(kāi)源的輕量級(jí)的工具 Telegraf ,輕松采集系統(tǒng) CPU、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)等系統(tǒng)監(jiān)控指標(biāo),將數(shù)據(jù)寫(xiě)入 TDengine TSDB 時(shí)序數(shù)據(jù)庫(kù),然后通過(guò) TDengine IDMP,利用 AI 自動(dòng)生成可視化面板和實(shí)時(shí)分析,幫助您幾分鐘就構(gòu)建一套穩(wěn)定、高效的服務(wù)器監(jiān)控解決方案。
在這個(gè)方案中,TDengine TSDB + TDengine IDMP 的組合能夠?yàn)槟鷰?lái)四大好處:
- 輕松完成數(shù)據(jù)導(dǎo)入:TDengine IDMP 與 TDengine TSDB 無(wú)縫集成,當(dāng)監(jiān)控?cái)?shù)據(jù)寫(xiě)入 TSDB 后,能夠快速導(dǎo)入 IDMP 并以樹(shù)形結(jié)構(gòu)的方式展現(xiàn)被監(jiān)控的物理機(jī)和虛擬機(jī),IT 資產(chǎn)一目了然。
- 無(wú)問(wèn)智推,數(shù)據(jù)自己說(shuō)話:不用在 TDengine 側(cè)做任何配置,不用腳本,不用提問(wèn),IDMP 會(huì)基于采集的數(shù)據(jù),自動(dòng)判斷為 IT 監(jiān)測(cè)場(chǎng)景,自動(dòng)為您推薦面板和實(shí)時(shí)預(yù)警,服務(wù)器的運(yùn)行狀態(tài)盡在掌控之中。
- 智能問(wèn)數(shù),隨問(wèn)隨答:不用 SQL,不用任何腳本語(yǔ)言,你只要用自然語(yǔ)言說(shuō)出感興趣的數(shù)據(jù)分析或監(jiān)測(cè)面板,IDMP 將會(huì)自動(dòng)幫您創(chuàng)建,把數(shù)據(jù)可視化與分析的使用門(mén)檻降為 0;
- 如果添加新的被監(jiān)測(cè)的服務(wù)器,只要配置好 Telegraf, 在 TDengine 側(cè)不用做任何設(shè)置和操作,服務(wù)器就被自動(dòng)的加入到監(jiān)測(cè)的對(duì)象中,最大程度節(jié)省人力。
2. 前提條件
- TDengine 云服務(wù)實(shí)例,如果您沒(méi)有可用的 TDengine 云服務(wù)實(shí)例,可以免費(fèi)注冊(cè)
- 一個(gè)被監(jiān)控的服務(wù)器,假設(shè)其具如下物理信息:
- 所在位置:IDC01
- 機(jī)架號(hào):RACK02
- 機(jī)架上的槽位號(hào):SLOT03
- IP 地址:192.168.1.123
3. 配置指南
3.1 創(chuàng)建 IDMP 云服務(wù)實(shí)例
- 使用您的賬號(hào),登錄 TDengine Cloud,在彈出的 TDengine 實(shí)例選擇框中,選擇“IDMP(工業(yè)數(shù)據(jù)管理平臺(tái))”。
- 在實(shí)例配置頁(yè)面,分別配置 IDMP 實(shí)例和 TSDB 實(shí)例的信息和計(jì)費(fèi)方案:
- IDMP(工業(yè)數(shù)據(jù)管理平臺(tái)):
- 實(shí)例名稱(chēng):telegraf-idmp
- 計(jì)費(fèi)方案:IDMP-入門(mén)版
- TSDB(時(shí)序數(shù)據(jù)庫(kù))
- 實(shí)例名稱(chēng):telegraf-tsdb
- 計(jì)費(fèi)方案:入門(mén)版
- IDMP(工業(yè)數(shù)據(jù)管理平臺(tái)):
- 等待 IDMP 實(shí)例啟動(dòng)后,選擇加載一個(gè)場(chǎng)景的示例數(shù)據(jù),即可進(jìn)入 IDMP 云服務(wù)的主頁(yè)面。
說(shuō)明:TDengine IDMP 服務(wù)默認(rèn)使用 TDengine TSDB 作為其數(shù)據(jù)源,在 IDMP 云服務(wù)實(shí)例創(chuàng)建過(guò)程中,會(huì)自動(dòng)創(chuàng)建到上述 TSDB 的連接。
3.2 在 TSDB 云服務(wù)實(shí)例創(chuàng)建 DB
- 進(jìn)入 IDMP 云服務(wù)實(shí)例的主頁(yè)面后,點(diǎn)擊右上角下拉菜單中的【管理后臺(tái)】。
- 在管理后臺(tái)頁(yè)面點(diǎn)擊【云資源管理】,進(jìn)入云資源管理頁(yè)面。
- 在實(shí)例列表中,請(qǐng)記錄訪問(wèn) TDengine TSDB 實(shí)例的 Gateway URL 和令牌 (token),以備稍后配置 Telegraf 時(shí)使用。
- 在實(shí)例列表中找到
telegraf-tsdb實(shí)例,點(diǎn)擊【TSDB 云服務(wù)】,進(jìn)入 TSDB 云服務(wù)頁(yè)面。 - 在左側(cè)點(diǎn)擊【數(shù)據(jù)瀏覽器】,在數(shù)據(jù)瀏覽器頁(yè)面點(diǎn)擊【創(chuàng)建數(shù)據(jù)庫(kù)】。
- 設(shè)置數(shù)據(jù)庫(kù)名稱(chēng)為 telegraf,完成 DB 創(chuàng)建。
3.3 在被監(jiān)控服務(wù)器上安裝 Telegraf
在被監(jiān)控的服務(wù)其上,通過(guò)以下命令,即可安裝 Telegraf:
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo "deb https://repos.influxdata.com/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update
sudo apt-get install telegraf
3.4 配置 Telegraf
執(zhí)行以下命令,生成 Telegraf 的配置文件:
cat << EOF | sudo tee /etc/telegraf/telegraf.conf
[global_tags]
location = "IDC01"
rack_num = "RACK02"
slot_num = "SLOT03"
ip_address = "192_168_1_123"
servers = "IDC01.RACK02"
[agent]
# 所有輸入的默認(rèn)數(shù)據(jù)收集間隔
interval = "10s"
# Telegraf將指標(biāo)發(fā)送到大多數(shù)metric_batch_size指標(biāo)的批量輸出
metric_batch_size = 1000
# Telegraf將緩存metric_buffer_limit每個(gè)輸出的指標(biāo),并在成功寫(xiě)入時(shí)刷新此緩沖區(qū)。這應(yīng)該是倍數(shù) metric_batch_size不能少于2倍metric_batch_size
metric_buffer_limit = 10000
# 集合抖動(dòng)用于隨機(jī)抖動(dòng)集合。插件在收集之前將在抖動(dòng)內(nèi)隨機(jī)休眠一段時(shí)間??梢杂脕?lái)避免許多插件同時(shí)查詢(xún)sysfs之類(lèi)的東西,這會(huì)對(duì)系統(tǒng)產(chǎn)生可測(cè)量的影響。
collection_jitter = "0s"
# 所有輸出的默認(rèn)數(shù)據(jù)刷新間隔。您不應(yīng)將此設(shè)置為以下間隔。最大值flush_interval為flush_interval+flush_jitter
flush_interval = "10s"
# 將刷新間隔抖動(dòng)一個(gè)隨機(jī)量。主要是為了避免運(yùn)行大量Telegraf實(shí)例的用戶(hù)出現(xiàn)大量寫(xiě)入峰值。
flush_jitter = "0s"
[[inputs.cpu]]
name_override = "server_cpu"
percpu = false
totalcpu = true
[inputs.cpu.tags]
metric_tag = "SLOT03_cpu"
[[inputs.mem]]
name_override = "server_memory"
fieldpass = ["used_percent", "available", "total", "used", "cached", "free"]
[inputs.mem.tags]
metric_tag = "SLOT03_memory"
[[inputs.disk]]
name_override = "server_disk"
fieldpass = ["used_percent", "available", "total", "used", "cached", "free"]
[inputs.disk.tags]
metric_tag = "SLOT03_disk"
[[inputs.nstat]]
name_override = "server_network"
fieldpass = ["TcpInSegs", "TcpOutSegs", "TcpRetransSegs", "UdpInDatagrams", "UdpOutDatagrams"]
[inputs.nstat.tags]
metric_tag = "SLOT03_network"
[[inputs.processes]]
name_override = "server_processes"
fieldpass = ["total", "running", "sleeping", "stopped", "zombies"]
[inputs.processes.tags]
metric_tag = "SLOT03_processes"
[[inputs.system]]
name_override = "server_system"
fieldpass = ["load1", "load5", "load15", "uptime", "n_cpus", "n_users"]
[inputs.system.tags]
metric_tag = "SLOT03_system"
[[outputs.http]]
url = "https://<gateway-url>/influxdb/v1/write?db=telegraf&token=<gateway-token>&table_name_key=metric_tag"
method = "POST"
timeout = "5s"
data_format = "influx"
[outputs.http.headers]
Content-Type = "application/x-www-form-urlencoded"
EOF
說(shuō)明:
- 在 global_tags 小節(jié),配置了服務(wù)器的基本信息,其中 path 標(biāo)簽用來(lái)標(biāo)識(shí)元素的路徑,例如這里設(shè)置的
IDC01.RACK02,導(dǎo)入 TDengine IDMP 后,在元素瀏覽器中,將以樹(shù)形結(jié)構(gòu)展開(kāi)為IDC01 -> RACK02。 - 在 agent 小節(jié),配置了 Telegraf 的采集頻率等信息。
- 在輸入插件小節(jié),開(kāi)啟了對(duì) CPU, 內(nèi)存,磁盤(pán)等的監(jiān)控,每個(gè)指標(biāo)均配置了 metric_tag 標(biāo)簽,其應(yīng)具有唯一性,這里選用了 slot number + metric name 的形式,結(jié)合 global_tags 小節(jié)的 path, 即可唯一確定某個(gè)服務(wù)器的一個(gè)監(jiān)控指標(biāo);
- 在輸出插件小節(jié),配置將監(jiān)控指標(biāo)通過(guò) taosadapter 寫(xiě)入 TDengine TSDB
- 每種類(lèi)型的輸入指標(biāo),在寫(xiě)入 TSDB 時(shí),都會(huì)寫(xiě)入一個(gè)超級(jí)表 (stable)
- url 中的 db 為在 3.2 小節(jié)創(chuàng)建的 DB 的 telegraf
- url 中的 <gateway-url> 和 <gateway-token> 為訪問(wèn) TDengine TSDB 實(shí)例時(shí)所需的 Gateway 信息,請(qǐng)?zhí)鎿Q為 3.2 小節(jié)記錄的 TDengine TSDB 實(shí)例 Gateway 的 URL 和 Token
- 參數(shù)
table_name_key=metric_tag將把 metric_tag 作為子表名,寫(xiě)入 TSDB 時(shí)將不再包含這個(gè)標(biāo)簽
3.5 啟動(dòng) Telegraf
完成配置后,使用以下命令啟動(dòng) Telegraf:
sudo systemctl start telegraf
使用以下命令,查看 Telegraf 服務(wù)狀態(tài):
sudo systemctl status telegraf
如果服務(wù)的狀態(tài)為 active (running), 則說(shuō)明 Telegraf 服務(wù)已啟動(dòng)成功。
如果期望監(jiān)控多個(gè)物理機(jī)或虛擬機(jī),僅需重復(fù)以上步驟即可。
3.6 在 IDMP 中加載 Metrics 數(shù)據(jù)
通過(guò)以下步驟,將 TDengine TSDB 的數(shù)據(jù)加載至 TDengine IDMP 以創(chuàng)建面板和分析:
- 登錄 IDMP 實(shí)例,在管理后臺(tái)找到 telegraf-tsdb 連接。
- 在 telegraf-tsdb 連接頁(yè)面上方的導(dǎo)航欄中,選擇【數(shù)據(jù)導(dǎo)入】。
- 在數(shù)據(jù)導(dǎo)入配置頁(yè)面,選擇 telegraf 數(shù)據(jù)庫(kù)。
- 檢查所有超級(jí)表的 Tags 配置項(xiàng),選擇 path 列做為每個(gè)超級(jí)表的 Tree。
- 點(diǎn)擊【完成】,等待數(shù)據(jù)導(dǎo)入任務(wù)完成。
3.7 查看元素信息
導(dǎo)入至 TDengine IDMP 的服務(wù)器監(jiān)控指標(biāo),會(huì)以樹(shù)形結(jié)構(gòu)的方式展示,可以根據(jù)其物理信息一層層展開(kāi),便于查看:
- 看到導(dǎo)入完成的提示后,點(diǎn)擊主菜單【元素瀏覽器】,跳轉(zhuǎn)至元素瀏覽器頁(yè)面。
- 在左側(cè)資源瀏覽器中,IDMP 會(huì)自動(dòng)根據(jù)服務(wù)器的物理信息,以樹(shù)形結(jié)構(gòu)的方式展示服務(wù)器的監(jiān)控指標(biāo)。在這里,依次展開(kāi) path -> IDC01 -> RACK02 -> SLOT03_cpu,通過(guò)上方路徑導(dǎo)航菜單選擇【屬性】,查看 TDengine TSDB 中存儲(chǔ)的 SLOT03 物理機(jī) CPU 資源指標(biāo)。
3.8 體驗(yàn) AI 生成面板
- 在左側(cè)資源瀏覽器中,點(diǎn)擊 path -> IDC01 -> RACK02 -> SLOT03_cpu 元素,跳轉(zhuǎn)至該元素的 AI 推薦面板頁(yè)面。
- 等待 AI 生成面板推薦后,您可根據(jù)需求進(jìn)行選擇,例如:“過(guò)去一小時(shí) CPU 空閑利用率(usage_idle)每分鐘的變化趨勢(shì),折線圖”,在您感興趣的面板右上方的菜單中,點(diǎn)擊【生成】按鈕。
- 等待面板生成后,在面板右下角點(diǎn)擊【保存】,即可在下方面板列表中查看 SLOT03_cpu 元素下對(duì)應(yīng)的面板。
- 面板生成后,您還可以在該面板的詳情頁(yè)面中,查看 AI 創(chuàng)建面板時(shí),使用的 SQL 語(yǔ)句:
SELECT _wstart,AVG(`usage_idle`) AS `usage_idle`
FROM `idmp`.`vt_SLOT03_cpu_573105`
WHERE _c0 >= now-1h and _c0 <= now INTERVAL(1m) SLIDING(1m)
3.9 體驗(yàn) AI 分析
- 在左側(cè)資源瀏覽器中,點(diǎn)擊 path -> IDC01 -> RACK02 -> SLOT03_cpu 元素,通過(guò)上方路徑導(dǎo)航菜單選擇【分析】,跳轉(zhuǎn)至該元素的 AI 推薦分析頁(yè)面。
- 等待 AI 生成分析問(wèn)題推薦后,您可以根據(jù)需求進(jìn)行選擇,例如:“physical_cpu:SLOT03_cpu 的實(shí)時(shí) usage_system 超過(guò) 80%持續(xù)超過(guò) 10 分鐘時(shí),常規(guī)告警,計(jì)算平均 usage_system,事件窗口”,點(diǎn)擊您感興趣的問(wèn)題鏈接,以進(jìn)入分析編輯頁(yè)面,點(diǎn)擊頁(yè)面最下方的【保存】。
- 退回到分析列表中,即可查看對(duì)應(yīng)的分析。
4. 更多
除了使用云服務(wù)以外,TDengine 還支持以私有化部署。為了簡(jiǎn)化部署,我們提供了 Ansible, Docker/Dcoker Compose, Helm 等多種部署方式,詳見(jiàn):https://github.com/taosdata/tdengine-idmp-deployment
5. 配置 Telegraf 小技巧
- 與正常配置 Telegraf 不一樣的是,需要把給監(jiān)測(cè)的對(duì)象(服務(wù)器、虛擬機(jī)、應(yīng)用等) 配置一個(gè)路徑標(biāo)簽 (path),把資源的層次結(jié)構(gòu)在標(biāo)簽里描述出來(lái),中間用 “.” 進(jìn)行分割,比如 “IDC01.RACK02.SLOT01″, 這樣就可以對(duì)每一級(jí)的資源進(jìn)行統(tǒng)計(jì)監(jiān)測(cè)。而且還可以配置多個(gè)層次結(jié)構(gòu)標(biāo)簽,便于從不同維度進(jìn)行管理,比如”OS.Linux.Ubuntu”, 從 OS 維度進(jìn)行統(tǒng)計(jì)監(jiān)測(cè)。
- 在 Telegraf 的配置里,還需要配置好參數(shù) metric_tag, 建議用一個(gè)有可讀性并具有唯一性的名字,它是被監(jiān)測(cè)對(duì)象的名字。
6. 小結(jié)
本文以 Step by Step 的方式,介紹了如何使用 Telegraf + TDengine TSDB + TDengine IDMP 快速搭建一個(gè) IT 監(jiān)控系統(tǒng)。以往需要幾個(gè)小時(shí)、甚至幾天,并進(jìn)行繁瑣的配置、調(diào)試才能搭建起來(lái)的系統(tǒng),使用 TDengine IDMP 后,僅需要幾分鐘即可搞定。日后,如果有新的物理機(jī)、虛擬機(jī)需要被納入到監(jiān)控系統(tǒng)中,只需在被監(jiān)控系統(tǒng)部署 Telegraf 即可。
搭建整個(gè)監(jiān)測(cè)系統(tǒng)的工作全部在 Telegraf 的配置上了,無(wú)需編寫(xiě)復(fù)雜的 SQL 語(yǔ)句,無(wú)需腳本和其他配置,無(wú)需學(xué)習(xí) Grafana, 無(wú)需了解多少 IT 運(yùn)維知識(shí),即可輕松掌握 IT 系統(tǒng)的運(yùn)行狀態(tài),成為 IT 系統(tǒng)監(jiān)測(cè)專(zhuān)家。



互聯(lián)網(wǎng).png)



-1.png)




.png)


證.png)


伙伴.png)
伙伴.png)
伙伴.png)



