Prometheus是指標監控領域的領軍軟體,其提供的遠程儲存介面可將InfluxDB作為時序資料的儲存,解鎖本機存放區的限制,提供更穩定可靠的使用者體驗。本文將介紹如何使用阿里雲的TSDB For InfluxDB®服務來對接Prometheus,構建監控資料的高效儲存方案。
背景資訊
Prometheus是一套監控和警示系統,最初由SoundCloud公司開發,2016年加入CNCF,成為流行的開源專案。Prometheus支援多維資料模型,使用metric和label來表示時序資料,同時提供了PromQL查詢語言來支援多維查詢。儲存方面,Prometheus內建一個基於本機存放區的時序資料庫,這個單節點的資料庫在擴充性和可靠性方面都有所限制,功能也不夠強大;Prometheus沒有在儲存系統深入造輪子,而是通過提供介面的方式來整合其他儲存系統,建立了靈活多樣的生態。Prometheus的遠端儲存(remote storage)原理如下圖所示:

Prometheus定義了同遠端儲存的讀寫介面,互動協議使用protocol buffer定義,傳輸基於HTTP;一個儲存系統如果要支援Prometheus,僅需要實現一個adapter層,將Prometheus的讀寫請求轉換為其內部的格式來處理。TSDB For InfluxDB®時序資料庫提供高效能資料儲存功能,支援資料保留原則等特性,是Prometheus遠端儲存很好的選擇TSDB For InfluxDB®內建了對Prometheus協議的支援,整合了adapter的功能,直接提供了兩個HTTP API來處理Prometheus讀寫請求。關於TSDB For InfluxDB®時序資料庫詳細說明,請參見InfluxDB®️介紹。
/api/v1/prom/read
/api/v1/prom/write
前提條件
已購買TSDB For InfluxDB®執行個體,請參見購買流程。
已建立資料庫與使用者,請參見系統管理使用者帳號和資料庫。
已安裝Prometheus,請參見官方文檔。
配置 Prometheus
Prometheus支援多個平台,本文以Linux系統為例來介紹。
Linux平台的Prometheus下載解壓後,包含了一個設定檔,我們僅需要在設定檔中增加InfluxDB遠端儲存的配置。
$ ls
console_libraries consoles data LICENSE NOTICE prometheus prometheus.yml promtool使用文字編輯器(比如vim)修改prometheus.yml, 在檔案末尾增加下面幾行:
其中URL地址替換為真實的TSDB For InfluxDB®執行個體的公網地址,u值請替換為已建立的使用者,p值請替換為使用者密碼。
remote_write:
- url: "https://ts-1234abcd.influxdata.rds.aliyuncs.com:3242/api/v1/prom/write?db=prometheus&u=prom&p=mypassword"
remote_read:
- url: "https://ts-1234abcd.influxdata.rds.aliyuncs.com:3242/api/v1/prom/read?db=prometheus&u=prom&p=mypassword"修改完成後儲存該設定檔,然後啟動Prometheus:
$./prometheus --config.file=prometheus.yml啟動成功後,就可以通過瀏覽器來訪問prometheus服務,其預設連接埠為9090。
參考文檔
阿里雲TSDB For InfluxDB®InfluxDB®️介紹