OneAPM大講堂 | 監控資料的視覺化分析神器 Grafana 的告警實踐

OneAPM官方技術部落格發表於2018-01-21

文章系國內領先的 ITOM 管理平臺供應商 OneAPM 編譯呈現。

**概覽**

Grafana 是一個開源的監控資料分析和視覺化套件。最常用於對基礎設施和應用資料分析的時間序列資料進行視覺化分析,也可以用於其他需要資料視覺化分析的領域。Grafana 可以幫助你查詢、視覺化、告警、分析你所在意的指標和資料。可以與整個團隊共享,有助於培養團隊的資料驅動文化。

Grafana 有強大的社群支援,有豐富的模板外掛,足夠滿足需要的功能特性。幾乎可以整合任何資料來源、監控工具和告警平臺。可謂是不可多得的神器。也有很多國內國外的知名公司在使用。

接下來,小編從 Grafana 的重要特性展開來說,最後附上部分示例實踐,僅供參考。
  • 視覺化,酷炫,靈活易用的視覺化元件

  • 統一,同時整合多個資料來源

  • 開源,活躍強大的社群

  • 告警,定義告警並整合其他告警平臺

  • 通知,可擴充套件,模板和外掛機制

**一、視覺化(Visualize)**

Grafana 提供了豐富的圖示、圖形和其他視覺化選項,經過簡單的介面操作就能通過分析來更好的理解資料。並且大部分情況下你只需要使用社群提供的模板和外掛就足夠了,並不需要自己過多的配置。

圖片1.png

**二、統一(Unify)**

可以把所有資料來源的資料同時整合到 Grafana,因此可以獲取更好的上下文。Grafana 原生支援超過30個開源和商業的資料來源,在統一的儀表板中將它們的資料混合在一起分析。並且可以通過現有的外掛整合 Zabbix 這樣常用的監控工具的資料。非常的方便。

Grafana 內建支援的常用資料來源:
  • InfluxDB

  • OpenTSDB

  • Elasticsearch

  • Zabbix

  • Graphite

  • MySQL

    具體的資料來源請參考 https://Grafana.com/plugins,總能找到你想要的。

    InfluxDB

    圖片2.png

    混合資料來源(Mix Data Source)

    圖片3.png

**三、開放(Open)、可擴充套件(Extend)、合作(Collaborate)**

Grafana 的開源性質,可以讓你沒有任何顧慮的深度使用,同時還有一個活躍強大的社群。並且 Grafana 可以安裝部署在任何平臺上。包括 Linux,Windows,macOS 和 Docker。在 Grafana 中有數百個圖表模板和外掛,幾乎每週都會更新。所以你能想到的絕大部分使用場景都是可以找到相應的模板和外掛。Grafana 還可以在團隊之間共享,通過授權使用者來進行協同工作。這也可以培養團隊的資料驅動文化。

Grafana 的動態儀表板(使用動態 dashboard,使用在儀表板頂部顯示為下拉選單的模板變數建立動態和可重複使用的儀表板):


![templating.gif](http://blog.oneapm.com/zb_users/upload/2018/01/201801191516355198390463.gif "templating.gif")


Grafana 註釋(使用來自不同資料來源的豐富事件註釋圖表。 將滑鼠懸停在事件上可以顯示完整的事件後設資料和標籤):


![annotations.gif](http://blog.oneapm.com/zb_users/upload/2018/01/201801191516355258924188.gif "annotations.gif")


Ad-hoc 過濾器(Ad-hoc 過濾器允許即時建立新的鍵/值過濾器,這些過濾器會自動應用於使用該資料來源的所有查詢):


![adhoc.gif](http://blog.oneapm.com/zb_users/upload/2018/01/201801191516355313656998.gif "adhoc.gif")

**四、告警(Alerting)**

無縫定義告警在資料中的的位置,視覺化的定義閾值,並可以通過 Slack,OneAlert 等平臺獲取告警通知。最為重要的是可直觀的定義告警規則,不斷的評估併傳送通知。注意告警功能在新版本中才有。


![圖片7.png](http://blog.oneapm.com/zb_users/upload/2018/01/201801181516272198485359.png "圖片7.png")

**五、通知(Notifications)**

當指標超過設定的告警閾值時,Grafana 就會觸發告警接。當指標恢復到正常時 Grafana 就會關閉告警。這些動作都會有通知。除了最常見的 Email 通知,Grafana 內建的通知 APP 有 Slack,PagerDuty,VictorOps,OpsGenie。這些平臺均為國外,可能在國內因為翻牆(如果大家有好的翻牆方式可以留言分享)、語言等原因,導致在國內有點水土不服。國內類似平臺很少,首家 SaaS 一站式告警平臺 OneAlert (不能否認,目前國內一直是處於領先)支援通過webhook 方式整合 Grafana。OneAlert 可以解決告警的匯聚、告警的分派,多方式通知,多人團隊排班、告警壓縮等問題,在此就不展開了,有興趣去官網瞭解下。OneAlert 官網:http://www.onealert.com/


![notifications.gif](http://blog.oneapm.com/zb_users/upload/2018/01/201801191516355382134735.gif "notifications.gif")

**六、實踐**

作為一個 Geek 看到這麼酷炫的東西怎麼能不動手試一下呢。大部分情況下我們最常使用的功能是 Dashboard 模板、資料來源應用、告警和通知這幾個關鍵的功能。下面就從一個簡單的示例來實際操作一下。

1、安裝,注意:因為告警功能只在4.0以上版本可用,最好安裝當前最新穩定版。

以 Linux 環境為例安裝

`Ubuntu & Debian(64 Bit):`

wget      https://s3-us-west-2.amazonaws.com/Grafana-releases/release/Grafana_4.6.3_amd64.deb

`sudo dpkg -i Grafana_4.6.3_amd64.deb`

`Standalone Linux Binaries(64 Bit):`

wget      https://s3-us-west-2.amazonaws.com/Grafana-releases/release/Grafana-4.6.3.linux-x64.tar.gz

`tar -zxvf Grafana-4.6.3.linux-x64.tar.gz`

`Redhat & Centos(64 Bit):`

wget      https://s3-us-west-2.amazonaws.com/Grafana-releases/release/Grafana-4.6.3-1.x86_64.rpm

`sudo yum localinstall Grafana-4.6.3-1.x86_64.rpm`

2、啟動,如果需要請加入開機自啟,centos6.x 為例

`sudo service Grafana-server start`

3、配置 DataSource和Dashboard

新增一個 DataSource,以 InfluxDB 為例。

`Data Sources->Add Data Source`


![圖片9.png](http://blog.oneapm.com/zb_users/upload/2018/01/201801181516272250435814.png "圖片9.png")


建立一個 Dashboard 或者直接引入一個 Dashboard 模板。


![圖片10.png](http://blog.oneapm.com/zb_users/upload/2018/01/201801181516272266602603.png "圖片10.png")

4、配置告警


![圖片11.png](http://blog.oneapm.com/zb_users/upload/2018/01/201801181516272278803274.png "圖片11.png")


告警的閾值可以通過滑鼠拖動來實現:

![圖片12.png](http://blog.oneapm.com/zb_users/upload/2018/01/201801181516272290331808.png "圖片12.png")


5、新增通知渠道

`Notification channels->add channel`

首先新增一個 email 通知:


![圖片13.png](http://blog.oneapm.com/zb_users/upload/2018/01/201801181516272302176350.png "圖片13.png")


Send Test 一下應該就能收到。

再新增一個 OneAlert 通知,如果沒有用過 OneAlert 的同學直接去註冊 ok 了,跟著引導可以很方便快捷建立一個 Grafana 應用,並且記錄 Appkey。

如果已經有 OneAlert 賬號,直接登入->應用->新增應用->Grafana,OneAlert 的配置介面說明非常完整,直接參考就可以了。


![圖片14.png](http://blog.oneapm.com/zb_users/upload/2018/01/201801181516272313627245.png "圖片14.png")


將獲取到的 URL 直接複製下來:


![圖片15.png](http://blog.oneapm.com/zb_users/upload/2018/01/201801181516272328204845.png "圖片15.png")


在 Grafana 中新增一個 Webhook channel,將 URL 填入 Webhook Settings 的 URL 中,http 

method 為 POST,選中 type 為 Webhook,勾選 Send on all alerts 和 Include image,你會在 OneAlert 中得到很好的使用體驗。點選Send Test 後再 OneAlert 中就能看到你的告警。

![圖片16.png](http://blog.oneapm.com/zb_users/upload/2018/01/201801181516272337884932.png "圖片16.png")


最後在 Grafana 的 Alert 配置頁面選中 OneAlert 和 Email 的通知 Channel:


![圖片17.png](http://blog.oneapm.com/zb_users/upload/2018/01/201801181516272352517275.png "圖片17.png")


測試通過的話,接下來你就可以通過配置 OneAlert 的通知策略、分派策略、排班等,就可以時刻通過微信、簡訊、電話、APP來接收告警並和團隊一起協作。

**總結**

Grafana 可以促進以資料驅動運維的團隊工作效率提升,讓我們花更少的時間和精力來減少故障、快速恢復故障和避免故障。配合告警神器 OneAlert,可以彌補 Grafana 不能解決的精準分派、多方式通知、排班等功能的不足,如果大家有更好歡迎留言推薦分享,大家一起進步!

Grafana 的 Github 地址:https://github.com/Grafana/Grafana

參考資料:Grafana Document:http://docs.Grafana.org/

[OneAlert][1] 是北京藍海訊通科技有限公司旗下產品,是國內首個SaaS模式的[雲告警平臺][2],整合國內外主流監控/支撐系統,實現一個平臺上集中處理所有 IT 事件,提升 IT 可靠性。想了解更多資訊,請訪問 OneAlert 官網 ,歡迎[免費註冊][3]體驗 。

相關文章