簡介
為了確保集群穩定運行,TDengine 集成了多種監控指標收集機制,并通過 taosKeeper 進行匯總。taosKeeper 負責接收這些數據,并將其寫入一個獨立的 TDengine 實例中,該實例可以與被監控的 TDengine 集群保持獨立。TDengine 中的兩個核心組件 taosd(數據庫引擎)和 taosX(數據接入平臺)都通過相同的監控架構來實現對其運行時的監控,但各自的監控指標設計有所不同。
至于如何獲取和使用這些監控數據,用戶可以使用第三方的監測工具比如 Zabbix 來獲取這些保存的系統監測數據,進而將 TDengine 的運行狀況無縫集成到現有的 IT 監控系統中。也可以使用 TDengine 提供的 TDinsight 插件,使用該插件用戶可以通過 Grafana 平臺直觀地展示和管理這些監控信息,如下圖所示。這為用戶提供了靈活的監控選項,以滿足不同場景下的運維需求。
配置 taosKeeper
因為 TDengine 的監控數據都通過 taosKeeper 上報并存儲,所以本節先介紹 taosKeeper 的配置。
taosKeeper 的配置文件默認位于 /etc/taos/taoskeeper.toml
。詳細配置見 參考手冊。其中最為關鍵的一個配置項是 database
,它決定了收集到的監控數據存儲在目標系統的哪個數據庫中。
監控 taosd
基于 TDinsight 監控 taosd
為了簡化用戶在 TDengine 監控方面的配置工作,TDengine 提供了一個名為 TDinsight 的 Grafana 插件。該插件與 taosKeeper 協同工作,能夠實時監控 TDengine 的各項性能指標。
通過集成 Grafana 和 TDengine 數據源插件,TDinsight 能夠讀取 taosKeeper 收集的監控數據。這使得用戶可以在 Grafana 平臺上直觀地查看 TDengine 集群的狀態、節點信息、讀寫請求以及資源使用情況等關鍵指標,實現數據的可視化展示。
以下是 TDinsight 的詳細使用說明,以幫助你充分利用這一強大工具。
前置條件
若要順利使用 TDinsight,應滿足如下條件。
- TDengine 已安裝并正常運行。
- taosAdapter 已經安裝并正常運行。
- taosKeeper 已經安裝并正常運行。
- Grafana 已安裝并正常運行,以下介紹以 Grafna 11.0.0 為例。
同時記錄以下信息。
- taosAdapter 的 RESTful 接口地址,如
http://www.example.com:6041
。 - TDengine 集群的認證信息,包括用戶名及密碼。
導入儀表盤
TDengine 數據源插件已提交至 Grafana 官網,如何安裝 TDengine 數據源插件和配置數據源請參考 安裝 Grafana Plugin 并配置數據源。完成插件的安裝和數據源的創建后,可以進行 TDinsight 儀表盤的導入。
在 Grafana 的“Home” -> “Dashboards”頁面,點擊位于右上角的“New” -> “import”按鈕,即可進入 Dashboard 的導入頁面,它支持以下兩種導入方式。
- Dashboard ID:18180。
- Dashboard URL:https://grafana.com/grafana/dashboards/18180-tdinsight-for-3-x/
填寫以上 Dashboard ID 或 Dashboard URL 以后,點擊“Load”按鈕,按照向導操作,即可完成導入。導入成功后,Dashboards 列表頁面會出現“TDinsight for 3.x”儀表盤,點擊進入后,就可以看到 TDinsight 中已創建的各個指標的面板,如下圖所示:
注意 在 TDinsight 界面左上角的“Log from”下拉列表中可以選擇 log
數據庫。
TDengine V3 監控數據
TDinsight dashboard 數據來源于 log
庫(存放監控數據的默認數據庫,可以在 taoskeeper 配置文件中修改)。“TDinsight for 3.x”儀表盤查詢了 taosd 和 TaosAdapter 的監控指標。
- taosd 的監控指標請參考 taosd 監控指標
- taosAdapter 的監控指標請參考 taosAdapter 監控指標
監控 taosX
taosX 是 TDengine 中提供零代碼數據接入能力的核心組件,對它的監控也十分重要。taosX 監控與 TDengine 監控類似,都是通過 taosKeeper 將服務搜集的 metrics 寫入指定數據庫,然后借助 Grafana 面板做可視化和報警。這個功能可監控的對象包括:
- taosX 進程
- 所有運行中的 taosx-agent 進程
- 運行在 taosX 端或 taosx-agent 端的各個連接器子進程
- 運行中的各類數據寫入任務
前置條件
- taosd,taosAdapter 和 taosKeeper 都已經部署完成并啟動成功。
- taosX 服務監控配置正確,如何配置可以參考下文“配置 taosX 監控”,服務啟動成功。
注意:TDengine 企業版本 3.2.3.0 或以上版本包含的 taosX 才包含此功能。如果單獨安裝 taosX,需要 taosX 1.5.0 或以上版本。 - 部署 Grafana,安裝 TDengine Datasource 插件,配置好數據源。可以參考:安裝 Grafana Plugin 并配置數據源。
注意:需要安裝 Grafana 插件 TDengie Datasource v3.5.0 或以上版本。
配置 taosX 監控
toasX 的配置文件 (默認 /etc/taos/taosx.toml) 中與 monitor 相關的配置如下:
[monitor]
# FQDN of taosKeeper service, no default value
# fqdn = "localhost"
# port of taosKeeper service, default 6043
# port = 6043
# how often to send metrics to taosKeeper, default every 10 seconds. Only value from 1 to 10 is valid.
# interval = 10
每個配置也有對應的命令行選項和環境變量。通過以下表格說明:
配置文件配置項 | 命令行選項 | 環境變量 | 含義 | 取值范圍 | 默認值 |
---|---|---|---|---|---|
fqdn | –monitor-fqdn | MONITOR_FQDN | taosKeeper 服務的 FQDN | 無默認值,配置 fqdn 就等于開啟了監控功能 | |
port | –monitor-port | MONITOR_PORT | taosKeeper 服務的端口 | 6043 | |
interval | –monitor-interval | MONITTOR_INTERVAL | taosX 發送 metrics 數據到 taosKeeper 的時間間隔,單位秒 | 1-10 | 10 |
基于 TDinsight 監控 tasoX
“TDinsight for taosX”是專門為 taosX 監控創建的 Grafana 面板。使用前需要先導入這個面板。
進入面板
-
在 Grafana 界面菜單中點擊“Data sources”,然后選擇已經配置好的 TDengine 數據源。
-
在數據源配置界面選擇“Dashboard”Tab, 然后導入“TDinsight for taosX”面板(第一次使用需要先導入)。下面是一個示例圖:
該面板每一行代表一個或一類監控對象。最上面是 taosX 監控行,然后是 Agent 監控行,最后是各類數據寫入任務的監控。
:::note- 如果打開這個面板后看不到任何數據,你很可能需要點擊左上角的數據庫列表(即“Log from”下拉菜單),切換到監控數據所在的數據庫。
- 數據庫包含多少個 Agent 的數據就會自動創建多少個 Agent 行。(如上圖)
:::
監控示例
-
taosX 監控示例圖
-
Agent 監控示例圖
-
TDengine2 數據源監控示例圖
:::info
監控面板只展示了數據寫入任務的部分監控指標,在 Explorer 頁面上有更全面的監控指標,且有每個指標的具體說明。:::
-
TDengine3 數據源監控示例圖
-
其它數據源監控示例圖
限制
只有在以 server 模式運行 taosX 時,與監控相關的配置才生效。
explorer 集成監控面板
explorer 支持集成已有的 grafana dashboard。
配置 grafana
編輯 grafana.ini, 修改以下配置項。配置 root_url, 可能對現有的 grafana 使用習慣有所影響,為了集成到 explorer 是需要如此配置的,方便通過 explorer 做服務代理。
[server]
# If you use reverse proxy and sub path specify full url (with sub path)
root_url = http://ip:3000/grafana
# Serve Grafana from subpath specified in `root_url` setting. By default it is set to `false` for compatibility reasons.
serve_from_sub_path = true[security]
# set to true if you want to allow browsers to render Grafana in a <frame>, <iframe>, <embed> or <object>. default is false.
allow_embedding = true
配置 Explorer
修改 explorer.toml, 其中 dashboard 配置的 url 中的 ip, 應該配置為可以通過 explorer 服務器能夠訪問到的 grafana 服務的內網地址。
[grafana]
# The token of the Grafana server, which is used to access the Grafana server.
token = ""# The URL of the Grafana dashboard, which is used to display the monitoring data of the TDengine cluster.
# You can configure multiple Grafana dashboards.
[grafana.dashboards]
TDengine3 = "http://ip:3000/d/000000001/tdengine3?theme=light&kiosk=tv"
taosX = "http://ip:3000/d/000000002/taosx?theme=light&kiosk=tv"
如下圖 (grafana V-8.5.27),獲取 api key, 請注意添加只讀權限的 apikey, 否則有安全風險。
如下圖 (grafana V-8.5.27),獲取 dashboard url, 獲取的 url 請額外加上參數:theme=light&kiosk=tv.