Prometheus是一款開源的監控告警工具,由於其強大的查詢能力和靈活的配置方式,成為了越來越多企業的首選。本文將介紹Prometheus的安裝、配置和查詢實戰,幫助大家更好地了解和使用Prometheus。
一、安裝Prometheus
Prometheus可以在官網 https://prometheus.io/download/ 下載最新版本的二進制包。
# 下載Prometheus的tar包
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
# 解壓
tar -zxvf prometheus-2.30.3.linux-amd64.tar.gz
解壓後,我們可以看到如下文件:
prometheus-2.30.3.linux-amd64/
|- prometheus
|- promtool
|- console_libraries/
| |- ...
|- consoles/
| |- ...
其中,prometheus為Prometheus的可執行文件,console_libraries和consoles為Web頁面所需的靜態文件。
最後,我們可以通過以下命令啟動Prometheus:
./prometheus
默認的情況下,Prometheus會監聽在9090端口上。因此,我們可以通過在瀏覽器中訪問 http://localhost:9090 來訪問Web管理界面。
二、配置Prometheus
Prometheus的配置文件為prometheus.yml,其默認在啟動時會從當前工作目錄下加載該文件。配置文件中,可以定義Prometheus需要監控的targets、抓取頻率等。
以下是一個prometheus.yml的示例:
global:
scrape_interval: 5s
evaluation_interval: 5s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
其中,global塊下定義了全局的抓取頻率和查詢頻率;scrape_configs塊定義了Prometheus需要監控的targets。在此示例中,我們僅監控localhost上的node_exporter,其監聽在自定義的端口9100上。
配置文件中,我們可以通過多個targets來實現對多個節點的監控。除此之外,Prometheus還支持通過service discovery自動發現targets,具體請參考官方文檔。
三、PromQL查詢實戰
Prometheus提供了強大的PromQL查詢語法,可以非常方便地對採集到的監控指標進行查詢和分析。
以下是一些常用的PromQL查詢實例:
1、獲取指定時間範圍內的CPU平均使用率:
avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100
該查詢通過使用irate函數獲取CPU空閑時間的變化率,然後將變化率取平均值並乘以100,得到CPU在指定時間內的平均使用率。
2、獲取最近一小時內網卡流量的五分鐘平均值:
avg(rate(node_network_receive_bytes_total[5m])) by (device)
該查詢通過使用rate函數獲取每個網卡的接收流量變化率,然後將變化率取平均值,並按照網卡進行分組,得到最近一小時內每個網卡的五分鐘平均接收流量。
3、獲取指定時間段內CPU使用率大於80%的節點IP:
topk(10, 100 - avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) if above(100 - 80, by = {instance})
該查詢通過使用irate函數獲取每個節點的CPU使用率變化率,然後將其反轉並平均值,得到CPU使用率。然後篩選出CPU使用率大於80%的節點,最後按照CPU使用率排序並取前10個節點IP。
四、總結
本文對Prometheus的安裝、配置和查詢實戰進行了介紹。希望本文能夠幫助讀者更好地理解和使用Prometheus。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/192435.html