grafana - 監控信息可視化工具


Skywalking
Grafana
shell腳本
go腳本
python

 

在開始下面章節之前先講解一下grafana的基本概念

Data Source:grafana確切的說是一個前端展示工具,將數據以非常美觀直接的圖形展示出來。那么這些數據必須有一個來源吧,grafana獲取數據的地方就稱為Data Source。官方文檔上說grafana支持以下數據源:Graphite, InfluxDB, OpenTSDB, Prometheus, Elasticsearch, CloudWatch。在Grafana 3.0+之后,grafana不僅僅支持上面說的這些數據源,還支持一些其它的數據源,這些就稱為Grafana Plugins,grafana支持的插件非常多(grafana支持的插件傳送門),只要做一些簡單的插件安裝配置,你就能獲取豐富的數據源,后面的文章會講解如何安裝配置使用grafana-zabbix,elasticsearch等插件。

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獲取數據的方式都不一樣,所以寫法也不一樣,比如像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。

 

grafana 可以對采集的數據進行可視化展示

官網地址:https://grafana.com/
下載地址:https://grafana.com/grafana/download
安裝指南:http://docs.grafana.org/installation/rpm/

我本地環境是windows,下載了 grafana-5.3.2

1.Grafana介紹

Grafana是一個跨平台的開源的度量分析和可視化工具,可以通過將采集的數據查詢然后可視化的展示,並及時通知。它主要有以下六大特點:

  • 1、展示方式:快速靈活的客戶端圖表,面板插件有許多不同方式的可視化指標和日志,官方庫中具有豐富的儀表盤插件,比如熱圖、折線圖、圖表等多種展示方式;
  • 2、數據源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
  • 3、通知提醒:以可視方式定義最重要指標的警報規則,Grafana將不斷計算並發送通知,在數據達到閾值時通過Slack、PagerDuty等獲得通知;
  • 4、混合展示:在同一圖表中混合使用不同的數據源,可以基於每個查詢指定數據源,甚至自定義數據源;
  • 5、注釋:使用來自不同數據源的豐富事件注釋圖表,將鼠標懸停在事件上會顯示完整的事件元數據和標記;
  • 6、過濾器:Ad-hoc過濾器允許動態創建新的鍵/值過濾器,這些過濾器會自動應用於使用該數據源的所有查詢。
2.安裝
  • 1.解壓安裝包,進入bin目錄,雙擊 grafana-server.exe 啟動
    在這里插入圖片描述
  • 2.訪問 localhost:3000 ,系統默認用戶名和密碼為admin/admin,第一次登陸系統會要求修改密碼,修改密碼后登陸,界面顯示如下:
    在這里插入圖片描述
  • 3.添加數據源,訪問 prometheus 采集的數據,點擊設置按鈕中的 DataSources,右側有 Add data source,輸入 name 、type、url(prometheus的地址)
    在這里插入圖片描述
    在這里插入圖片描述
  • 4.創建DashBoard,DashBoard就是可視化圖形界面,我也不太會制作,但我會用別人已經做好且成熟的 DashBoard,導入到我的 grafana中,實現可視化展示,鼠標移動到左側的 + 號,點擊 import,在右側輸入dashboard id 8919,會出現如下界面,可以修改name,選擇剛剛添加的datasource數據源,點擊 import
  • dashboard id 怎么獲取,grafana官方有個中央倉庫,和maven倉庫一樣,收集了網友制作好的dashboard,每個dashboard有個唯一 id,dashboard倉庫地址:https://grafana.com/dashboards
    在這里插入圖片描述
  • 5.享受成果,通過可視化圖形界面查看監控數據
    在這里插入圖片描述
    以上兩篇就是 node_exporter+ prometheus + grafana 以圖形化方式展示 雲服務器上的各項數據,以后的文章將介紹怎么監控 web 應用

Grafana是一個開源的度量分析與可視化套件。經常被用作基礎設施的時間序列數據和應用程序分析的可視化,它在其他領域也被廣泛的使用包括工業傳感器、家庭自動化、天氣和過程控制等。

Grafana支持許多不同的數據源。每個數據源都有一個特定的查詢編輯器,該編輯器定制的特性和功能是公開的特定數據來源。

 官方支持以下數據源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB。

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

1、登錄grafana 界面

    http://192.168.21.250:3000 默認用戶和密碼均為admin

2、配置Grafana啟用zabbix插件

    登錄到grafana,移動鼠標到grafana左上角,單擊選擇齒輪圖標的向下按鈕,然后選擇“Zabbix”選項卡,選擇“Pluugin Config”,打開Zabbix 插件配置對話框,選擇啟用zabbix插件。

    具體操作步驟如下圖所示:

 

 

 

3、配置Zabbix數據源

    添加新數據源,單擊選擇齒輪圖標的向下按鈕,打開 “Data Sources”

,單擊“Add new”。

 

注意紅線標注的地方

    Name自定義

    Type選擇Zabbix

    Http settings URL填入http://zabbix服務器ip/zabbix/api_jsonrpc.php

    Zabbix details用戶名和密碼需要在Zabbix web頁面中設置,本文中用戶名:admin,密碼:zabbix。如不想新建的話,可以使用zabbix的初始用戶。

    配置過程如下圖所示:

    設置完成點擊Save & Test按鈕,彈出下圖所示的Success提示對話框:

 

本文檔的Zabbix版本為Zabbix-3.0.5,詳細配置教程請參考官方文檔:

http://docs.grafana-zabbix.org/installation/configuration

常見錯誤解決請參考:http://docs.grafana.org/installation/troubleshooting/

4、開始使用Grafana-Zabbix

添加新的儀表板

    讓我們開始創建一個新的儀表板。添加新的儀表板過程如下所示:

 

 

在新建的儀表板中添加圖面板

 

    圖面板在Grafana中只是命名圖。它提供了一組豐富的圖形選項。如下圖所示:

    單擊標題面板可打開一個菜單框。單擊edit 選項面板將會打開額外的配置選項。

如下圖所示:

 

Graph里面的選項有:

    General(常規選擇)、Metrics(指標)、Axes(坐標軸)、Legend(圖例)、 Display(顯示樣式)、Time range(時間范圍)

Genera(常規選擇):添加圖形標題,圖形寬度高度等

    Title:儀表板上的面板標題

    Span:列在面板中的寬度

    Height:面板內容高度(以像素為單位)

 

鑽取/詳細信息鏈接(Drilldown / detail link)

    鑽取部分允許添加動態面板的鏈接,可以鏈接到其他儀表板或URL。

    每個鏈接都有一個標題,一個類型和參數。鏈接可以是 dashboard或 absolute鏈接。如果它是一個儀表板鏈接, dashboard值必須是一個儀表板的名字。如果這是一個 absolute鏈接,是URL鏈接的URL。

    params允許添加額外的URL參數的鏈接。格式是 name=value與多個參數分開,當鏈接到另一個儀表板使用模板變量,你可以使用 var-myvar=value填充模板變量的期望值鏈接。

 

Metrics(指標)

    定義了來源數據的呈現,每個數據源都提供不同的選擇。面板的來源數據通過group,host,application,item從zabbix中獲得。

 

Axes(坐標軸)

    用於坐標軸和網格的顯示方式,包括單位,比例,標簽等。

Left Y和 Right Y可以定制使用,因其中的可選參數太多,怕描述不准確。所以請在使用的時候參考官方文檔

Legend(圖例):圖例展示

    圖例的參數:

    Total:返回所有度量查詢值的總和

    Current:返回度量查詢的最后一個值

    Min:返回最小的度量查詢值

    Max:返回最大的度量查詢值

    Avg:返回所有度量查詢的平均值

    Decimals:控制Legend值的多少,以小數顯示懸浮工具提示(圖)

    Grafana 中Legend值的計算取決於你使用的度量查詢方式和什么樣類型的聚合或合並點來實現的,所有上述所說的值在同一時間可能都是不正確的。例如,如果你是每秒請求一次,這可能是使用平均值來作為一個整合,然而這個Legend值不會代表請求的總數。這只是Grafana收到的所有數據點的總和。

 

Display(顯示樣式)

    顯示樣式的控件屬性圖如下:

圖表模式(Draw Modes)

Bar:一個條形圖顯示值

Lines:顯示線圖值

 Points:顯示點值

選擇模式(Mode Options)

Fill:系列的顏色填充,0是沒有。

Line Width:線的寬度。

 Staircase:樓梯狀顯示。

    如果有多個選擇項,它們可以作為一個群體顯示。

疊加和空值(Stacking & Null value)

Stack:每個系列是疊在另一個之上

Null value:空值

    如果你啟用了堆棧可以選擇應該顯示鼠標懸停功能。

Time range(時間范圍)

 

頂級頭介紹

 

上圖顯示了儀表板頂部的標題。

    1.側菜單切換:切換菜單,讓你專注於儀表板中給出的數據。側菜單提供了訪問特性,儀表板,用戶,組織和數據源等。

    2.儀表板下拉菜單:下拉菜單顯示你當前瀏覽的儀表板,並允許輕松地切換到另一個新的儀表板。在這里你還可以創建一個新的儀表板,導入現有的儀表板和管理儀表板播放列表。

    3.星儀表板:星(或unstar)當前的儀表板。默認情況下星儀表板將出現在自己建立的儀表板里,為你提供快捷的查看途徑。

    4.儀表板分享:通過創建一個鏈接或創建一個靜態快照分享當前儀表板。

    5.保存儀表板:以當前儀表板的名字保存。

    6.設置:管理儀表板的設置和特性,比如模板和注釋。

5、創建流量監控圖形

 

 

 

 

6、儀表盤模板功能

    單純的手動去添加一個個監控圖,只能顯示一個主機的所有監控圖形,若要查看不同主機的所有監控圖形,就要通過變量的方式去實現。我們要設置的變量包括group,host,application和iteam。

模板

    儀表盤模板可以讓你創建一個交互式和動態性的儀表板,它是Grafana里面最強大的、最常用的功能之一。創建的儀表盤模板參數,可以在任何一個儀表盤中使用。

創建變量

    點擊頂部導航欄上的齒輪圖標,選擇模板。

   單擊新建按鈕,你會看到模板變量編輯器。它包含以下部分:

變量(Variable)

命名:變量的名稱。

標簽:可見標簽變量。例如,主機組,而不是HOST_GROUP。

類型:查詢類型選擇。

    圖中有五種變量類型: query,custom,interval,Data source和Contsta。它們都可以用來創建動態變量,不同之處在於獲得的數據值不一樣。

查詢選項(Query Options)

數據源:用於查詢變量值的數據源。

刷新:更新此變量的值。

查詢:查詢字符串。 

正則表達式:如果你需要篩選值或提取價值的一部分,那就使用正則表達式。

選擇選項(Selection Options)

多值:啟用,如果你想在同一時間選擇多個值。

數值組/標簽(實驗功能)(Value groups/tags (Experimental feature))

7、查詢格式

   zabbix模板變量數據源查詢是一個包含了4個部分的以.號隔開的字符串{host group}.{host}.{application}.{item name}。例如, Zabbix servers.Zabbix server.CPU.*。

   例子:

   * 返回所有可用主機組

   *.* 返回主機組里所有可用主機

   Servers.*返回服務器組里的所有主機

   Linux servers.*.* 返回Linux服務器組中的所有應用程序

   Linux servers.*.*.* 返回Linux服務器組中所有主機的監控項。

   你可以使用另一個變量作為查詢的一部分。例如,你有一個變量組,它返回的是主機組的列表,並僅希望將其用於在選定的組在查詢主機。下面是這種情況的查詢條件:

   $group.*

8、變量的使用

    當你創建一個變量,你可以使用它作為一個數據源查詢的一部分。Grafana還支持變量在不同的地方被使用,比如面板和行標題、文本面板的內容等。

 

    注意,你需要在變量的名字之前添加$標志。

創建模板

 

 

   添加變量group,host,Application,iteam


    添加完四個變量,如下圖所示:

    group匹配的顯示結果

   變量添加完成后,就可以設置圖形屬性了。將之前所有添加的圖形用下面的group,host,application,iteam變量來表示。

    這樣我們就可以通過切換,來查看不同主機的所有監控內容 

    下圖是通過儀表盤功能在一個頁面中用多個graph顯示多台機器的網卡流量。

    下圖是在儀表盤中使用模板功能在一個頁面中用一個graph顯示單台機器或所有機器的單個監控項或所有監控項。

 

 

    這個儀表盤模板是在一個頁面中用多個graph顯示單台機器的多個監控項


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM