Grafana快速入門指南下篇

尹正杰發表於2024-11-10

                                              作者:尹正傑

版權宣告:原創作品,謝絕轉載!否則將追究法律責任。

目錄
  • 一.tables(表格)展示資料
    • 1.環境準備
    • 2.配置Query(查詢)
    • 3.配置Transform(轉換)
    • 4.新增Overrides(覆蓋)屬性
    • 5.配置多指標監控展示
      • 5.1 統計系統負載
      • 5.2 統計CPU核數
      • 5.3 統計CPU使用率
      • 5.4 統計記憶體總量
      • 5.5 統計記憶體使用率
      • 5.6 統計網路卡出流量
    • 6.配置閾值和背景色
      • 6.1 配置指定的表格顏色
      • 6.2 壓力測試觀察Thresholds(閾值)顏色變化
      • 6.3 Cell options(單元選項)
  • 二.grafana變數定義
    • 1.grafna變數的型別
    • 2.Custom變數型別定義
    • 3.Query變數型別定義
    • 4.實戰案例
      • 4.1 查詢叢集的總記憶體
      • 4.2 統計記憶體的使用率
    • 5.變數的巢狀
  • 三.匯入dashboard模板
    • 1.匯出當前dashboard(模擬備份)
    • 2.匯入dashboard(模擬恢復)
    • 3.匯入官方的模板

一.tables(表格)展示資料

1.環境準備

如上圖所示,我們配置了4個node_exporter被Prometheus監控了,本實驗就是在此基礎上執行的。

2.配置Query(查詢)

如上圖所示,依次配置一個Table的查詢就可以看到顯示的資訊。

3.配置Transform(轉換)

如上圖所示,點選"Transform",而後選擇"Filter by name",只勾選"instance","nodename","release",我們就可以將不需要的欄位過濾掉。

4.新增Overrides(覆蓋)屬性

如上圖所示,依次點選"Overrides","Add field override","Fields with name"


如下圖所示,"Fields with name"選擇響應的列欄位(比如instance),而後點選"add override property",選擇"Stamd options> Display name"

5.配置多指標監控展示

5.1 統計系統負載

如上圖所示,我們依次按照圖示執行,並新增"node_load5-0"查詢,發現最終展示效果並不理想,需要配置"Transform"頁面。

如下圖所示,我們在"Transform"頁面新增"Merge"轉換,而後在為"Value #B"新增Overrides配置進行輸出展示

5.2 統計CPU核數

如上圖所示,繼續新增CPU核心數監控,PromQL語句: count(node_cpu_seconds_total{mode='system'}) by (instance)

5.3 統計CPU使用率

如上圖所示,繼續新增CPU使用率監控,PromQL語句: (1 - avg(rate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)) * 100

5.4 統計記憶體總量

如上圖所示,繼續新增記憶體總量的監控,PromQL語句: node_memory_MemTotal_bytes-0

值得注意的是,需要當我們為記憶體配置屬性時要配置兩個,一個是列的名稱(Display name),另一個是單位轉換(Unit)

5.5 統計記憶體使用率

如上圖所示,繼續新增記憶體使用率的監控,PromQL語句: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes))*100

5.6 統計網路卡出流量

如上圖所示,繼續網路卡出流量的監控,PromQL語句:max(rate(node_network_transmit_bytes_total[1m])) by (instance)

6.配置閾值和背景色

6.1 配置指定的表格顏色

如上圖所示,我們可以為指定表格新增一個"Cell type"屬性,然後選擇"Colored background",就可以發現其會自動變色。

6.2 壓力測試觀察Thresholds(閾值)顏色變化

	1.安裝stress壓測工具
[root@node-exporter42 ~]# apt -y install stress

	2.開始記憶體壓測
[root@node-exporter42 ~]# stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10m
stress: info: [2103] dispatching hogs: 8 cpu, 4 io, 2 vm, 0 hdd

	3.觀察監控變化
如上圖所示,表格的顏色變紅了,根本原因是超過了定義的"Thresholds"(閾值)預設值: 80,我們可以自行修改該閾值喲~

6.3 Cell options(單元選項)

如上圖所示,我們可以定義"Cell options"(單元選項),修改背景色,顏色之類的,但是個人感覺還是Auto的看著比較順眼,你可以自行修改哈。

二.grafana變數定義

1.grafna變數的型別

grafana常用的變數型別包括但不限於:
	- Query:
		動態查詢的型別。
	
	- Custom:
		使用者自定義的字串。
		
	- Data source:
		資料來源。

2.Custom變數型別定義

如上圖所示,我們可以使用自定義變數,至於變數的具體字串,我們可以自行定義,比如: system,user,idle

如下圖所示,我們定義好變數可以直接在grafana中進行引用,對應的PromQL語句: node_cpu_seconds_total{mode="${custom_cpu_mode}"}

3.Query變數型別定義

如上圖所示,我們可以配置Query Type型別選擇"Label values",而後安裝步驟依次配置:
	- Label標籤選擇器基於mode過濾。
	- 如果還過濾不出來更詳細的可以使用Metric進行再次篩選。
	- 如果還要進一步篩選,可以定義Regex,比如"i.*"表示以i開頭的mode,符合結果的僅有"idle","iowait","irq"等。

如下圖所示,就是我們使用變數展示後的效果,對應的PromQL語句: node_cpu_seconds_total{mode="${query_cpu_mode}"}

4.實戰案例

4.1 查詢叢集的總記憶體

如上圖所示,我們定義一個"instance"變數,並勾選"Multi-value"選項。

如下圖所示,我們就可以選擇多個主機的資訊進行檢視啦~對應的PromQL語句: node_memory_MemTotal_bytes{instance=~"${instance}"}

4.2 統計記憶體的使用率

如上圖所示,表示對應記憶體的使用率。

5.變數的巢狀

如上圖所示,我們定義device變數,引用了instance變數。

實現效果如下圖所示,當我們修改了instance變數時,對應的device的網路卡裝置可能也會隨之變化喲~

三.匯入dashboard模板

1.匯出當前dashboard(模擬備份)

如上圖所示,我們可以將自習做的dashboard匯出相當於備份,而且也可以給其他人共享。

2.匯入dashboard(模擬恢復)

如上圖所示,如果本地的dashboard刪除了,或者別人要用咱們的dashboard就可以手動匯入啦

3.匯入官方的模板

如上圖所示,我們可以去grafana官網匯入我們所需要的模板使用介面。

參考連結:
	https://grafana.com/grafana/dashboards/

相關文章