玩轉 Grafana 可視化系統

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

目錄:

1. 美觀、強大的可視化監控指標展示工具

1.1 基本概念

2. 全面瓦解

2.1 登錄grafana

2.2 數據源配置

2.3 儀表盤配置

(1)General(常規)

(2)Metrics(指標)

(3)Axes(坐標軸)

(4)Legend(圖例)

(5)Display(顯示樣式)

(6)Alert(告警)

(7)Time range(時間範圍)

3. 特殊配置

3.1 變量之interval

3.2 變量之query

Variable

Query options

Selection Options

Value groups/tags

Preview of values

4. 儀表盤導出導入

1. 美觀、強大的可視化監控指標展示工具

grafana 是一款採用 go 語言編寫的開源應用,主要用於大規模指標數據的可視化展現,是網路架構和應用分析中最流行的時序數據展示工具,目前已經支持絕大部分常用的時序數據庫。最好的參考資料就是官網(http://docs.grafana.org/),雖然是英文,但是看多了就會啦。

1.1 基本概念

Grafana支持許多不同的數據源。每個數據源都有一個特定的查詢編輯器,該編輯器定制的特性和功能是公開的特定數據來源。官方支持以下數據源:Graphite,Elasticsearch,InfluxDB,Prometheus,Cloudwatch,MySQL和OpenTSDB等。

每個數據源的查詢語言和能力都是不同的。你可以把來自多個數據源的數據組合到一個儀表板,但每一個面板被綁定到一個特定的數據源,它就屬於一個特定的組織。

玩轉 Grafana 可視化系統


支持的數據源

  • DashBoard:儀表盤,就像汽車儀表盤一樣可以展示很多信息,包括車速,水箱溫度等。Grafana的DashBoard就是以各種圖形的方式來展示從Datasource拿到的數據。
  • Row:行,DashBoard的基本組成單元,一個DashBoard可以包含很多個row。一個row可以展示一種信息或者多種信息的組合,比如系統內存使用率,CPU五分鐘及十分鐘平均負載等。所以在一個DashBoard上可以集中展示很多內容。
  • Panel:面板,實際上就是row展示信息的方式,支持表格(table),列表(alert list),熱圖(Heatmap)等多種方式,具體可以去官網上查閱。
  • Query Editor:查詢編輯器,用來指定獲取哪一部分數據。類似於sql查詢語句,比如你要在某個row里面展示test這張表的數據,那麼Query Editor里面就可以寫成select *from test。這只是一種比方,實際上每個DataSource獲取數據的方式都不一樣,所以寫法也不一樣(http://docs.grafana.org/features/datasources/),比如像zabbix,數據是以指定某個監控項的方式來獲取的。
  • Organization:組織,org是一個很大的概念,每個用戶可以擁有多個org,grafana有一個默認的main org。用戶登錄後可以在不同的org之間切換,前提是該用戶擁有多個org。不同的org之間完全不一樣,包括datasource,dashboard等都不一樣。創建一個org就相當於開了一個全新的視圖,所有的datasource,dashboard等都要再重新開始創建。
  • User:用戶,這個概念應該很簡單,不用多說。Grafana里面用戶有三種角色admin,editor,viewer。admin權限最高,可以執行任何操作,包括創建用戶,新增Datasource,創建DashBoard。editor角色不可以創建用戶,不可以新增Datasource,可以創建DashBoard。viewer角色僅可以查看DashBoard。在2.1版本及之後新增了一種角色read only editor(只讀編輯模式),這種模式允許用戶修改DashBoard,但是不允許保存。每個user可以擁有多個organization。

dashboard界面最上面一行解釋

玩轉 Grafana 可視化系統


界面頂部標題標註

上圖顯示了信息中心的頂部標題。

  • 側面菜單切換:切換側邊菜單,允許您專注於儀表盤中顯示的數據。側面菜單提供對與儀表盤無關的功能(如用戶,組織和數據源)的訪問。
  • 信息中心下拉菜單:此下拉菜單顯示您當前正在查看的信息中心,並允許您輕鬆切換到新的信息中心。從這里,您還可以創建新的信息中心,導入現有的信息中心和管理信息中心播放列表。
  • 星型儀表盤:對當前儀表盤執行星號(或取消星標)。加星標的信息中心在默認情況下會顯示在您自己的主頁信息中心上,並且是標記您感興趣的信息中心的便捷方式。
  • 共享儀表盤:通過創建鏈接或創建其靜態快照來共享當前儀表盤。在共享前確保信息中心已保存。
  • 保存儀表盤:當前儀表盤將與當前儀表盤名稱一起保存。
  • 設置:管理儀表盤設置和功能,如模板和註釋。


2. 全面瓦解

對於grafana的部署,網上一搜一大把,這里不作累贅,可參考(grafana官網安裝說明、grafana酷炫圖表),繼續以下內容。

2.1 登錄grafana

要運行Grafana,請打開瀏覽器並轉到http://localhost:3000/,如果你尚未配置不同的端口,則3000是Grafana監聽的默認http端口。默認用戶名為admin,默認密碼為admin。當你第一次登錄時,系統會要求你更改密碼,我們強烈建議你遵循Grafana的最佳做法並更改默認管理員密碼,你可以稍後轉到用戶首選項並更改你的用戶名。

玩轉 Grafana 可視化系統


登錄界面,可看到版本號

2.2 數據源配置

按照前面的數據源,這里講解幾個我們常使用的數據源的配置,包括es、opentsdb、influxdb和zabbix,也可以新增其他的數據源。

玩轉 Grafana 可視化系統


常用數據源示例

玩轉 Grafana 可視化系統


opentsdb數據源配置示例

其中關於Access這里具體解釋下:Server (default) = 需要從Grafana後端/服務器訪問,Browser = 需要從瀏覽器訪問,對應上面的url。

玩轉 Grafana 可視化系統


es數據源配置示例

玩轉 Grafana 可視化系統


influxdb數據源配置示例

2.3 儀表盤配置

在配置好所使用的數據源之後,即可新增配置自己的面板。面板也存在多種:

玩轉 Grafana 可視化系統


儀表盤

這里選取graph為例,如下圖所示,新增或配置儀表盤。右上角的紅框中表示:新建、標星、分享、保存、設置、查詢模式、時間段、縮小(針對時間段進行放寬,即小時間段換成了大時間段)、刷新等

玩轉 Grafana 可視化系統


新增儀表盤或編輯已有儀表盤

Graph里面的選項有:General(常規選擇)、Metrics(指標)、Axes(坐標軸)、Legend(圖例)、 Display(顯示樣式)、Alert(告警)、Time range(時間範圍)

(1)General(常規)

http://docs.grafana.org/features/panels/graph/

玩轉 Grafana 可視化系統


常規選擇

  • General允許定制面板的外觀和菜單選項。
  • General Options
  • Title:儀表盤上的面板標題
  • Description:儀表盤描述信息
  • Transparent :是否透明,選擇之後會把該圖的背景去掉,即透明狀態
  • Repeat panel:是否重復panel,填寫是重復的變量(參考後文3.2變量配置),即這個標題名中添加對應的變量,引用該變量需添加$,圖標題即可隨著自選的變量而變化。

玩轉 Grafana 可視化系統


鑽取/詳細信息鏈接

Drilldown / detail link(為當前panel增加超鏈接)

Drilldown項允許在面板添加動態鏈接,可以鏈接到其他的dashboards或urls。

每個鏈接都有一個title,一個type和params。鏈接可以是dashboard,或是絕對鏈接。如果是dashboard鏈接,則dashboard值必須是儀表盤的名稱。如果它是一個絕對鏈接,URL就是鏈接的URL。

params允許添加額外的URL參數的鏈接。格式是name=value,多種參數用&分隔。模板變量可以作為使用$ myVar作為值。

當連接到另一個Dashboard使用的模板變量,你可以使用var-myVar =value 填充模板變量所需的值從鏈接。

(2)Metrics(指標)

metrics頁簽定義要呈現的系列數據和源。每個數據源提供不同的選擇(參考官網)。這里以opentsdb數據源為例:

玩轉 Grafana 可視化系統


指標

  • Data Source:數據源,在前面配置好數據源之後,在這里直接選擇對應的數據源
  • 查詢A、B:可以根據情況進行新增或刪除
  • metric:指標名,輸入部分指標名,會自動查詢匹配,可以快速進行選擇
  • Aggregator:聚合條件,區分下第一行和第二行的aggregator,第一個是對指標值的聚合,第二個是對采樣周期里的聚合
  • Alias:別名,根據需要進行自定義
  • Down sample:采樣周期,即每隔多少周期采集一次數據並展現出來,詳情可見3.1特殊配置之interval
  • Filters:過濾條件,可以添加多個,group by是否分組進行展示,其中參數type部分常用選擇項的解釋:literal_or, ilteral_or, wildcard,regexp等可以當做是一個具有返回值的函數
  • literal_or:返回一個或多個值,示例:hostname=literal_or(data-3|data-4|data-160),相當於數據庫中的WHERE hostname IN (‘data-3′,’data-4′,’data-160’)
  • ilteral_or:作用於literal_or類似,區別是literal_or大小寫敏感,ilteral_or不區分大小寫
  • not_literal_or:作用於literal_or相反,大小寫敏感
  • not_iliteral_or:作用於not_literal_or類似,不區分大小寫
  • wildcard:可以在一個字符串加一個*前綴、後綴、中綴(字符串中間添加修飾符號)或者多個中綴,*可以代表任意的字符,示例:hostname=wildcard(data*),表示代表任何以data開頭的主機名,相當於數據庫中的WHERE hostname=’data%’
  • regexp:正則表達式 功能非常強大,可以編寫非常靈活的過濾規則,示例:regexp(data\-[0-9]),表示data-1到data-9之間的所有主機,需要注意的是特殊字符需要轉義,如-,轉義符為\
  • Tags:標籤,對應的就是填寫對應的指標和具體的值(注意和filters中的區別,這里只能填寫具體的值,而不是寫一類值)

(3)Axes(坐標軸)

玩轉 Grafana 可視化系統


坐標軸

Left Y和Right Y可以自定義,即可以設置多重坐標軸,方便對比查看

  • Show:是否顯示,可以通過從顯示軸中取消適當的框來隱藏軸。
  • Unit:y軸的顯示單元
  • Scale:Y軸的間隔度。選擇「log base 2」以double的速度遞增,(0、1、2、4、8…),選擇「log base 32」,就是(0、1、32…)
  • Y-Min:Y軸的最小值(默認atuo)
  • Y-Max:Y軸的最大值(默認atuo)
  • Lable:Y軸的文本標籤

(4)Legend(圖例)

玩轉 Grafana 可視化系統


圖例

通過選擇顯示復選框隱藏圖例。如果它被顯示,它可以通過檢查表復選框顯示為一個值表。沒有值的系列可以使用隱藏空復選框,從而在圖例中隱藏。

options:

show:是否顯示圖例

as table:作為表格樣式顯示

to the right:顯示在右邊

values:

在圖例中,顯示每個series的max\min\avg\total\current,能設置小數點位數。在圖上顯示,

通過點擊列標題(如果保存的話,這個選項將會被持久化)來排序,通過min/max/avg來排序。

點擊圖例「」,也可單純顯示某個series。

(5)Display(顯示樣式)

玩轉 Grafana 可視化系統


顯示樣式

1、Draw option

  • Draw Modes:Bars(柱狀圖)、lines(折線圖)、Points(點)
  • Mode Options:Fill(充滿區域透明度),Line Width(線寬度),Staircase(是否階梯),Point Radius(點的半徑,以此控制點的大小)
  • Hover tooltip
  • Mode:All series(滑鼠移到點上顯示所有圖例的值),single(滑鼠移到點上顯示該series圖例的值)
  • Sort order:None(按圖例排列順序顯示),increaseing(值的從小到大遞增),Decreasing(值從大到小遞減)
  • Stacking&Null value :stack(多series是否堆疊顯示),percent(百分比),Null value:空值怎麼顯示(connected:null值被忽略,直線直接跳轉到下一個值,null:空值被保留為空,這將在圖中留下空白區域,null as zero:空值被繪制為零值)

2、series overrieds:多坐標軸重寫,即可以在這里設置y軸正負軸或z軸的正負軸,需要選擇對應的指標,而且因指標、指標別名的變化需重新設置,設置完成後對比效果更好

  • alias or regex:series圖例名稱
  • Y-axis:顯示在Y軸左右哪邊
  • z-index(多series顯示前後位置)
  • stack:堆疊,可選擇,metric中A\B\C\D哪個
  • transform(negative-Y:將值顯示為負數)
  • fill below to:(將兩者值充滿顏色 ,由上往下從大值到小值,所以不可以寫成min fill below tu max寫法如圖:)

玩轉 Grafana 可視化系統


填充

3、Thresholds:可以寫多條臨界值在界面上顯示,大於400,和大於600兩個。如設置了alert,就不能設置這個。

玩轉 Grafana 可視化系統


臨界值

4、Time regions:時間區域允許你突出特定的時間區域圖的,更容易看到例如周末營業時間和/或工作時間。

(6)Alert(告警)

玩轉 Grafana 可視化系統


告警

Alert Config

  • Name & Evaluation interval:在這里可以指定警報規則的名稱,以及調度器應該多長時間對警報規則進行評估。
  • Conditions:目前唯一存在的條件類型是一個查詢條件,允許您指定查詢字母(metric里查詢語句的字母,代表哪個查詢語句)、時間範圍和聚合函數。
  • Notifications:在警告選項卡中,還可以指定警報規則通知,以及關於警報規則的詳細信息。這個消息可以包含任何信息,關於如何解決這個問題的信息,鏈接到runbook等。實際的通知被配置並在多個警報之間共享。
  • State History:警戒狀態的變化都被記錄在內部註釋Grafana的數據庫表。狀態更改可視為警報規則的圖形面板中的註釋。

(7)Time range(時間範圍)

https://www.cnblogs.com/michellexiaoqi/p/7274890.html)

玩轉 Grafana 可視化系統


時間範圍

您可以覆蓋單個面板的相對時間範圍,使它們與右上方的儀表盤時間選擇器中選擇的時間不同。這允許metrics在不同的時間段顯示或同個時間。在面板編輯器模式的Time Range重寫時間設置。

  • Override relative time:覆蓋相對時間,該graph在螢幕上的顯示時間段(time range)
  • Add time shift:添加時移,將現在時間減去時間,如20m,那螢幕的顯示最新的時間段結束 為now-20m
  • Hide time override info:隱藏時間覆蓋信息,即右上角的時間,當縮放或更改 Dashboard time到自定義絕對時間範圍時,所有面板重寫將被禁用。當儀表盤時間相對時,面板相對時間覆蓋只處於活動狀態。面板時間重寫總是活躍的,即使當儀表盤的時間是絕對的。

Hide time override info選項允許您隱藏在覆蓋時間範圍選項時顯示在面板右上方的覆蓋信息文本。

注意:您只能在相對時間範圍內覆蓋儀表盤時間。絕對時間範圍不可用。


3. 特殊配置

3.1 變量之interval

這里的變量類型選擇的是interval,可以設置隱藏狀態,主要是控制查詢時的采樣周期,添加自動Auto後,在展示界面會根據選擇的時間段自動選擇對應的采樣周期,這樣設置的好處是減輕查詢數據庫的壓力,同時展示界面的粒度會適配。變量配置完畢後,在儀表盤Metrics中對應位置配置$interval即可。

玩轉 Grafana 可視化系統


interval配置

玩轉 Grafana 可視化系統


interval變量展示

3.2 變量之query

玩轉 Grafana 可視化系統


變量

Variable

  • name: 變量名,比如我這里取名為ip,到時候要使用這個變量名就用$ip來調用。
  • type: 變量類型,變量類型有多種,其中query表示這個變量是一個查詢語句,type也可以是datasource,datasource就表示該變量代表一個數據源,如果是datasource你可以用該變量修改整個DashBoard的數據源,變量類型還可以是時間間隔Interval等等。這里我們選擇query。
  • label: 是對應下拉框的名稱,默認就是變量名,選擇默認即可。
  • hide: 有三個值,分別為空,label,variable。選擇label,表示不顯示下拉框的名字。選擇variable表示隱藏該變量,該變量不會在DashBoard上方顯示出來。默認選擇為空,這里也選默認。

Query options

  • Data source: 數據源,不用多說。
  • Refresh: 何時去更新變量的值,變量的值是通過查詢數據源獲取到的,但是數據源本身也會發生變化,所以要時不時的去更新變量的值,這樣數據源的改變才會在變量對應的下拉框中顯示出來。Refresh有三個值可以選擇,Never:永不更新。On Dashboard Load:在DashBoard加載時更新。On Time Range Change:在時間範圍變化時更新。此處,選擇On Dashboard Load,當數據源發生更新是,刷新一下當前DashBoard,變量的值也會跟著發生更新。
  • Query:查詢表達式,不同的數據源查詢表達式都不同(這些可以到官網上查詢:http://docs.grafana.org/features/datasources/)。
  • Regex:正則表達式,用來對抓取到的數據進行過濾,這里默認不過濾。
  • Sort:排序,對下拉框中的變量值做排序,排序的方式挺多的,默認是disable,表示查詢結果是怎樣下拉框就怎樣顯示。此處選disable。

Selection Options

  • Multi-value:啟用這個功能,變量的值就可以選擇多個,具體表現在變量對應的下拉框中可以選多個值的組合。
  • Include All option:啟用這個功能,變量下拉框中就多了一個all選項。
  • Custom all value:啟用Include All option這個功能,才會出現Custom all value這個輸入框,表示給all這個選項自定義一個值,all這個選項默認是所有值的組合,你也可以自定義,比如我自定義all為cpu五分鐘平均負載,則選擇all就代表cpu五分鐘平均負載。

雖然選擇組合值可以在一個panel里面查看多種監控數據,但是由於不同監控數據的數值大小格式都可能不一樣,在一個圖形里面格式很難兼容,這樣就會出現問題,所以此處建議默認都不選。

Value groups/tags

組合標籤,可以選擇多個值組合在一起設置一個標籤,這個功能還沒弄明白,按照官網上的操作沒效果,暫且忽略吧,反正沒多大影響。

Preview of values (shows max 20)

前面都設置好之後,下方會顯示前二十。

點擊add,group這個variables就創建好了。在儀表盤中配置時需要在變量的名字之前添加$標誌。

注意:可以配置多個變量,且變量之間可以復用,即選定第一個變量之後,第二個變量可以使用擇的第一個變量值再配置,以此類推

玩轉 Grafana 可視化系統


多變量示例

玩轉 Grafana 可視化系統


多變量展示效果

下面是具體的一個influxdb數據源的具體變量的配置及展示效果。

玩轉 Grafana 可視化系統


inflxdb數據源之變量query

玩轉 Grafana 可視化系統


最終的展示效果


4. 儀表盤導出導入

儀表盤導入導出功能方便不同grafana之間儀表盤的復用。也可以在grafana官網下載現有的模板使用,少許更改即可展示自己的數據。

玩轉 Grafana 可視化系統


導出

玩轉 Grafana 可視化系統


‘,

>玩轉 Grafana 可視化系統

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!