大家看到的,我是小飛,前面已經講過了 Prometheus 的基本構造和資料採集今天,我們將詳細解釋獲取資料、優化查詢和優化資料展示的細節。
當主機通過自動檔案發現方式獲取資料時,資料將被簡單處理和標記。 如下圖所示:
308 host up,表示資料已經通過檔案自動發現方式獲取,但是我們可以通過promql和資料格式查詢資料。
因為資料需要在大屏上展示,所以需要將資料合併到Grafana的圖紙中,才能在大螢幕上展示資料,其中308臺主機都是Linux節點,所以可以直接在每台主機上安裝節點匯出器。 並且 grafana 已經安裝好了,開啟 grafana 介面,在官方模板庫中找到符合你需求的模板,這裡我用的是模板 ID:16098。
開啟 grafana 面板:
1. 配置資料來源
填寫你的 Prometheus 資料來源,即 Prometheus 服務的位址和埠。
輸入模板ID,點選載入,即可,如下圖所示
以上是 Grafana 的模板資料,Grafana 查詢變數也完整,資料已經過重新處理。
未處理的例項示例如下圖所示: IP+埠,例如:192168.10.1:9100
通過 promql 查詢資料:node uname info
查詢顯示 localhost 例項下有乙個主機,例項為 17217.40.25:9100,並且有 300 多個主機像這樣顯示例項內建標籤,而在 grafana 中,查詢變數是以例項作為查詢變數,但總是後面跟著埠,強迫症不喜歡,我只需要在 grafana 中顯示 ip 位址即可。
您需要重寫標籤,並使用 Prometheus 的 relabel 配置來重寫標籤。
relabel_configs: -source_labels: -"__address__" regex: "(.*9100" target_label: "instance" action: replace replacement: "$1"
將上述覆蓋配置寫入 prometheus 配置檔案中對應的作業,例如:
- job_name: "vmware-host" metrics_path: /metrics scheme: http scrape_interval: 5s file_sd_configs: -files: -/root/monitor/prometheus/targets/node-*.yml refresh_interval: 2m relabel_configs: -source_labels: -"__address__" regex: "(.*9100" target_label: "instance" action: replace replacement: "$1"
如上圖所示,重寫例項的所有標籤值,刪除9100埠,並顯示所有IP位址。
標籤的操作是google,主要是看重新標籤配置。
Grafana 的變數查詢也應遵循相應的語法。 如果選擇 Prometheus 的資料來源,那麼就需要按照 PromQL 的語法自己 Google 一下,因為模板都是官方庫中其他人共享的。
Prometheus 可以通過 HTTP API 介面對 TSDB 進行資料操作,以下是刪除資料的幾種方式
啟用 HTTP API:
prometheus 的 tsdb admin api 預設關閉,需要新增啟動引數 --web。enable-admin-api 將啟動。
啟動引數如下: 示例 --webenable-admin-api
[unit]description=prometheus serverwants=network-online.targetafter=network.target[service]type=***user=rootexecstart=/root/monitor/prometheus/current/prometheus --config.file=/root/monitor/prometheus/conf/prometheus.yml --web.listen-address=:9090 --storage.tsdb.path=/root/monitor/prometheus/data/ --storage.tsdb.retention=90d --web.enable-lifecycle --web.enable-admin-apiexecreload=/bin/kill -hup $mainpidkillmode=processrestart=on-failure[install]wantedby=multi-user.target
開啟TSDB admin API後,您可以使用以下介面刪除指標資料:
刪除資料介面:
curl -x put -g ''
按時間刪除:
curl -x put -g 'up&start=2022-11-07t00:00:00.000z'
此介面具有以下三個 URL 查詢引數:
match=:metricsstart=:開始結束的時間戳=:Google更多api操作結束的時間戳。