TDengine 在IT运维监控领域的应用
目錄
- 前言
- 一、TD 特點
- 二、安裝部署
- 2.1 部署
- 2.2 驗證
- 三、應用領域
- 3.1 運維監控
- 3.2 遠端擴展
- 總結
前言
TDengine 由北京濤思數據科技有限公司(TAOS Data)自主研發,而且不依賴于任何開源或第三方軟件,擁有自主的知識產權。其應用領域涉及到物聯網、車聯網、工業互聯網、IT運維等。接下來聊一下 TDengine 在IT運維監控領域的應用。
一、TD 特點
TDengine 是一個時序數據庫,所謂時序數據,就是以時間軸為維度至上而下的一系列序列(樣本),尤其是在 IT 基礎設施、運維監控系統和物聯網中應用得最為廣泛。當然時序數據庫來說還有很多,比如 InfluxDB、Prometheus、Graphite等。而對于 TDengine,它有以下幾個特點:
- 高性能;
- 高可靠;
- 可伸縮;
- 零管理。
至于這些特點所代表的是什么意思,我認為只有你親自實踐和應用之后才能有所體會。而我們為什么不選擇傳統的關系型數據庫呢?盡管傳統的關系型數據庫也能夠處理這些數據,但在面對物聯網大數據時就會顯得心有余而力不足。
二、安裝部署
接下來就是我們的安裝部署環節,為了節省時間,我這里選擇使用 Docker 方式進行部署。而對于 Docker 的安裝,我之前的博客有做過詳細介紹《Docker + Jenkins + Gitlab 自動化構建部署》,這里就不再過多贅述。想要了解更多 Docker 相關內容,可去其 Docker官方,里面介紹都非常詳細。廢話不多說,接下來直接進行安裝部署。
2.1 部署
1、pull 鏡像
2、運行容器
-itd # -i:標準輸入輸出 -t:分配一個終端或控制臺 -d:后臺啟動 -u root # 以root身份執行 --privileged=true # 擁有root權限 --name tdengine # 容器實例名 --restart=always # 容器隨docker自啟動,因為重啟docker時,默認容器都會被關閉 -p # 映射端口 -v # 映射目錄 -e # 指定時區啟動容器時,我映射了多個端口,關于這些端口,大家可以查看TDengine 官方端口說明。而我們用 Docker 啟動的容器時,其時間和宿主機時間可能不一致,關于如何實現兩者時間的一致性,大家可以參考我之前的博文《Docker容器與宿主機設置時間同步》。
3、安裝 TDengine 客戶端
注:這里很奇怪,在我沒安裝 TDengine 客戶端之前,TDengine 容器的目錄卷/etc/taos總是映射(掛載)不到宿主機上,其實也不是映射不了,就是映射后宿主機的/etc/taos是一個空文件夾,配置文件居然不見了,然后我就docker exec進入容器后,找出配置文件所在路徑xxx(具體路徑忘了),不應該啊,不是在/etc/taos嗎。既然這樣我就重新把這個目錄xxx掛載到/etc/taos,這次總該沒錯了吧,結果宿主機目錄依然為空。盡管容器是可正常運行的,但是外部根本訪問不了 TDengine,那這將毫無意義啊,還占用我那么多端口。
還得出殺手锏啊,運行的容器總該要有客戶端來登錄吧,要不然每次都docker exec進入,真麻煩。然后我就去 TDengine 官網下載客戶端的源碼包(下載地址傳送門),安裝很簡單,直接運行壓縮包里的可執行腳本文件即可(安裝成功可看到successful字樣)。然后你會發現宿主機的/etc/taos居然出現了配置文件,當然這一切都回歸正常了,外部也可正常訪問了。不知道用 Docker 方式部署的小伙伴們有沒有出現這個問題。
2.2 驗證
通過 TDengineGUI 看看是否可連接上部署好的數據庫,配置完成后可看到連接成功。TDengineGUI 是由天大某團隊開發的一款開源工具,該工具通過 TDengine RESTful 連接數據庫,可對相關的表做簡單的查詢,還是挺方便的,大家可以體驗一下,下載渠道為:GitHub、碼云。
至此,TDengine 就已經部署完成!!
三、應用領域
3.1 運維監控
1、監控方案
在實際生產中,我制定了多套監控方案(告警這里先忽略,后續會講到),分別為:
-
Exporter + prometheus + Grafana;
-
Telegraf + prometheus + Grafana;
-
Telegraf + TDengine + Grafana;
-
Telegraf + InfluxDB + Grafana。
我個人認為相對于 Exporter 來說,Telegraf 更容易管理和維護。首先 Exporter 是各種獨立的資源包,盡管它是開箱即用,但是你并不能保證每個 Exporter 都是存活的。而對于 Telegraf 來說,它更集中。在說 Telegraf 之前先說一聲 Telegraf 是什么?
2、Telegraf 介紹
Telegraf 是TICK Stack的一部分,是一個輕量級插件驅動的服務器代理,用于收集和報告各種指標,包括從第三方 API 提取指標 , 它還具有輸出插件,可將指標發送到各種其他數據存儲、服務和消息隊列,包括 InfluxDB、Graphite、OpenTSDB、Datadog、Librato、Kafka、MQTT、NSQ 等。 Telegraf 下載地址傳送門,Telegraf 官方文檔傳送門。
3、相關部署文檔
以上監控方案的部署文檔在我之前的博客中有詳細部署步驟(除了 InfluxDB,不過部署方法都大同小異),還沒部署過得小伙伴可以去參考參考哦。
《Prometheus + Grafana 監控平臺》
《Telegraf + Promethue + Grafana 監控平臺》
《Telegraf + TDengine + Grafana 監控平臺》
其實部署都很簡單,重點在于監控指標,指標查詢方法,用過 TDengine 的小伙伴應該都知道,其查詢方式基本上和 mysql 的查詢方式一致。
4、其他說明
相對于 Prometheus、InfluxDB 來說,其在 grafana web 展示中沒有更多的模板,也就是說每個圖表都需要手動創建,以及相應的指標查詢(計算)sql 語句,因此要熟悉基本的 sql 查詢語句、相關的 sql 函數、聚合等。不過相對于 Prometheus 來說,學習成本更低,因為 Prometheus 也有一套查詢語言。關于如何選擇時序數據庫,這得根據你的應用場景,后續會繼續對比分析各時序的優缺點、性能等。在者就是,TDengine 支持集群,而且是免費的,InfluxDB 也支持集群,但是其集群版是收費,而 Prometheus 卻只支持單節點部署,因此接下來我會介紹使用 Prometheus 作為數據存儲時,如何對其做遠端擴展。
3.2 遠端擴展
這里我采用 Prometheus 作為數據存儲,同樣跳過部署過程,由于 Prometheus 是單節點部署,沒有集群或高可用,因此我們可以采用其他時序數據庫作為遠端存儲,從而實現 Prometheus 僅收集數據,不存儲數據,其數據可存儲到其他時序數據庫,如 InfluxDB、TimescaleDB、 PostgreSQL、TDengine 等。本次選擇 TDengine 作為遠端數據存儲,關于 Prometheus 寫入 TDengine,可參考 TD 官方文檔,其實就是通過 Bailongma API 接口寫入。
1、Bailongma 注意事項
Bailongma 源碼包提供了 telegraf API 和 Prometheus API 的編譯,針對 telegraf API 的編譯方法我前面的博文也有具體步驟,Prometheus API 方式與其一致,但編譯時可能會提示缺少相關依賴,根據提示執行即可,具體實例操作如下圖:下圖是在編譯 Prometheus API 出現的小問題,根據提示執行即可。
當生成blm_prometheus可執行文件時,表明編譯成功。具體參數說明,可通過 ./blm_prometheus -h進行查看。
2、Prometheus 寫入配置
remote_write:- url: "http://10.20.10.69:6666/receive" remote_read:- url: "http://10.20.10.69:6666/pull"這樣做的好處有什么呢?由于 Prometheus 是單節點的,不支持集群,因此存儲就成為它的瓶頸,這時通過寫入遠端時序數據庫就可解決集群這個瓶頸,最關鍵的是 TDengine 的集群版是免費的,而且性能也是非常好的,為 TDengine 官方的開源精神點贊。
3、監控告警
其實,以上僅僅是實現了數據的采集與存儲,還差最后的告警。如果僅僅是采集數據,那在監控的領域中將是毫無意義的,因此我們還得配合 AlertManager 進行相應的告警閾值設置和告警操作(郵件、短信等),這個告警部分后面單獨分享。
總結
通過上面的簡單介紹,其實 TDengine 還是挺人性化的,其有著我們熟悉的 sql 查詢語句,而且還支持連續查詢、數據訂閱、緩存、報警監測等高級功能。再就是關于 TDengine 在監控領域的應用,重點不在于如何安裝部署,而是在于其數據存儲的性能,因為監控無非是做一個數據的存儲。后續會繼續分享各時序數據庫的性能對比、應用場景以及告警操作等。
本文正在參與 擁抱開源 │ 濤思數據 TDengine 有獎征稿
活動鏈接:https://marketing.csdn.net/p/0ada836ca30caa924b9baae0fd33857c
<點擊跳轉至開頭>
總結
以上是生活随笔為你收集整理的TDengine 在IT运维监控领域的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔记 - Front End - 新知识
- 下一篇: Auto.js逆向分析-提取脚本文件(附