前言
本文主要介紹如何使用Grafana和Prometheus以及node_exporter對Linux服務器性能進行監控。
1.安裝Node_Exporter
Node Exporter采用Golang編寫,並且不存在任何的第三方依賴,只需要下載,解壓即可運行。可以從https://prometheus.io/download/獲取最新的node exporter版本的二進制包。
tar –xzf node_exporter-0.18.1.linux-amd64.tar.gz
cd node_exporter-0.18.1.linux-amd64
運行node exporter:
./node_exporter
啟動成功后,可以看到以下輸出:
INFO[0000] Listening on :9100 source="node_exporter.go:76"
訪問http://localhost:9100/可以看到以下頁面:
2.Node Exporter監控指標
訪問http://localhost:9100/metrics,可以看到當前node exporter獲取到的當前主機的所有監控數據,如下所示:
每一個監控指標之前都會有一段類似於如下形式的信息:
# HELP node_cpu Seconds the cpus spent in each mode. # TYPE node_cpu counter node_cpu{cpu="cpu0",mode="idle"} 362812.7890625 # HELP node_load1 1m load average. # TYPE node_load1 gauge node_load1 3.0703125
其中HELP用於解釋當前指標的含義,TYPE則說明當前指標的數據類型。在上面的例子中node_cpu的注釋表明當前指標是cpu0上idle進程占用CPU的總時間,CPU占用時間是一個只增不減的度量指標,從類型中也可以看出node_cpu的數據類型是計數器(counter),與該指標的實際含義一致。又例如node_load1該指標反映了當前主機在最近一分鍾以內的負載情況,系統的負載情況會隨系統資源的使用而變化,因此node_load1反映的是當前狀態,數據可能增加也可能減少,從注釋中可以看出當前指標類型為儀表盤(gauge),與指標反映的實際含義一致。
除了這些以外,在當前頁面中根據物理主機系統的不同,你還可能看到如下監控指標:
-
node_boot_time:系統啟動時間
-
node_cpu:系統CPU使用量
-
nodedisk*:磁盤IO
-
nodefilesystem*:文件系統用量
-
node_load1:系統負載
-
nodememeory*:內存使用量
-
nodenetwork*:網絡帶寬
-
node_time:當前系統時間
-
go_*:node exporter中go相關指標
- process_*:node exporter自身進程相關運行指標
3.Node Exporter收集監控數據
為了能夠讓Prometheus Server能夠從當前node exporter獲取到監控數據,這里需要修改Prometheus配置文件。編輯prometheus.yml並在scrape_configs節點下添加以下內容:
scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] # 采集node exporter監控數據 - job_name: 'node' static_configs: - targets: ['localhost:9100']
重新啟動Prometheus Server
訪問http://localhost:9090,進入到Prometheus Server。如果輸入“up”並且點擊執行按鈕以后,可以看到如下結果:
如果Prometheus能夠正常從node exporter獲取數據,則會看到以下結果:
up{instance="localhost:9090",job="prometheus"} 1 up{instance="localhost:9100",job="node"} 1
其中“1”表示正常,反之“0”則為異常。
4.可視化監控數據
Prometheus UI提供了快速驗證PromQL以及臨時可視化支持的能力,而在大多數場景下引入監控系統通常還需要構建可以長期使用的監控數據可視化面板(Dashboard)。
這時用戶可以考慮使用第三方的可視化工具如Grafana,Grafana是一個開源的可視化平台,並且提供了對Prometheus的完整支持。
訪問http://localhost:3000就可以進入到Grafana的界面中,默認情況下使用賬戶admin/admin進行登錄。在Grafana首頁中顯示默認的使用向導,包括:安裝、添加數據源、創建Dashboard、邀請成員、以及安裝應用和插件等主要流程:
這里將添加Prometheus作為默認的數據源,如下圖所示,指定數據源類型為Prometheus並且設置Prometheus的訪問地址即可,在配置正確的情況下點擊“Add”按鈕,會提示連接成功的信息:
在完成數據源的添加之后就可以在Grafana中創建我們可視化Dashboard了。Grafana提供了對PromQL的完整支持,如下所示,通過Grafana添加Dashboard並且為該Dashboard添加一個類型為“Graph”的面板。
並在該面板的“Metrics”選項下通過PromQL查詢需要可視化的數據:
點擊界面中的保存選項,就創建了我們的第一個可視化Dashboard了。 當然作為開源軟件,Grafana社區鼓勵用戶分享Dashboard通過https://grafana.com/dashboards網站,可以找到大量可直接使用的Dashboard:
Grafana中所有的Dashboard通過JSON進行共享,下載並且導入這些JSON文件,就可以直接使用這些已經定義好的Dashboard:
注:以上是我導入后進行修改過的