--- title: Grafana 新增圖表 tags: Grafana --- # Grafana新增圖表 > [name=賴品璇] > [time=Fri, Jan 7, 2021] --- # Agenda * Grafana * Grafana基本概念 * 新增Data Source * 新增Dashboard * 表單配置說明 * Variables變量配置 * 新增告警 * 使用模板 --- # Grafana * 開源的分析監控平台 * 高度定製化:可視化圖表、警報 * 支援多源數據庫 * InfluxDB、Prometheus、Zabbix、Elasticsearch、OpenTSDB...等。 * 地圖數據、金融、股票...等。 --- ## Grafana基本概念 * Data Source:數據源 * Dashboard儀表板:一或多個面板組成 * Row:組織和管理相關的Panel * Panel面板:Grafana數據呈現的最小單元 ![](https://i.imgur.com/nDa3ZlU.png) --- ## Data Source * 此次Demo採用 Telegraf採集、InfluxDB儲存、Grafana展示 ![](https://i.imgur.com/71tHGo8.png) --- ### 新增Data Source * 點選設定→選擇Data Source ![](https://i.imgur.com/FlXxttC.png) --- * 新增Data Source ![](https://i.imgur.com/LcSZYuc.png) --- * 本範例為InfluxDB,因此選擇[InfluxDB] ![](https://i.imgur.com/3hy0Lmb.png) --- * Name可以自行取名,本範例使用[InfluxDB] * Query Language選擇[InfluxQL] * URL需輸入相對應的連結與port號,以下舉三種例子 * 若InfluxDB與Grafana在同機台可輸入 http://localhost:8086 or http://127.0.0.1:8086 * 若InfluxDB與Grafana於不同機台,則要輸入安裝InfluxDB機台的外網 ex.!![](https://i.imgur.com/DVbneE8.png) [pin-granfana]想要讀取[lily-testcdn]的InfluxDB,連結處就要輸入該台外網IP&Port ![](https://i.imgur.com/uomhBoK.png) * 若是使用docker-compose建立InfluxDB與Grafana,可以使用http://`container_name`:8086,此demo為`container_name: influxdb` 因此url可輸入 http://InfluxDB:8086 ![](https://i.imgur.com/LlOiY1T.png) --- * Database輸入InfluxDB讀取的檔案名稱:telegraf1 * 設定完成點選[Save & Test]按鈕 ![](https://i.imgur.com/aJACPik.png) --- * 成功寫入 ![](https://i.imgur.com/jSEFNMJ.png) * 失敗 ![](https://i.imgur.com/wIjlgTy.png) --- ## 新增Dashboard * 點選Dashboard中的Manage ![](https://i.imgur.com/mhmBEju.png) --- * 建立新的Dashboard ![](https://i.imgur.com/v0dQJK1.png) * 建立新面板 ![](https://i.imgur.com/lyn7FNm.png) --- * 透過下拉式選單選擇要讀取的資料庫**InfluxDB** ![](https://i.imgur.com/fQH85Qs.png) --- ### 表單配置說明 ![](https://i.imgur.com/i0sXvSl.png) * FROM Default:默認架構圖,保持不變 measurement:選取對應的InfluxDB表單名稱 * WHERE:根據自己的需求選擇條件 * SELECT field():選擇表單抓取的細項數據 mean():細項對應InfluxDB內的資料 * GROUPBY time():根據時間分組 fill():當無數據時的填充值,默認值為null --- #### 數據 ![](https://i.imgur.com/qWBLeqS.png) * cpu:系統CPU的訊息 * disk:硬碟佔用信息。 * diskio:硬碟IO性能 * kernel:內核 * mem:記憶體 * processes:處於執行狀態的程式 * swap:類似Windows系統下的"虛擬內存" --- * DEMO記憶體的總容量與使用率 ![](https://i.imgur.com/hFTSrif.png) --- * ALIAS BY輸入資料名稱,即可顯示於圖表 ![](https://i.imgur.com/utpmOFY.png) --- * 可點選複製以方便快速設定 ![](https://i.imgur.com/m1XxmJb.png) --- ### 圖表呈現方式調整-更改折線圖的顏色 ![](https://i.imgur.com/YOaXuCV.png) ![](https://i.imgur.com/me7PglI.png) --- ### 圖表呈現方式細項調整 * 點選show options ![](https://i.imgur.com/oIvBMSE.png) --- * 點選Panel ![](https://i.imgur.com/icrJScL.png) --- * Settings更改Panel名稱 ![](https://i.imgur.com/MbvJbbX.png) --- * Visualization中可以選擇圖表類型 ![](https://i.imgur.com/8hsc90R.png) --- * Display 可以設定顯示方式 ![](https://i.imgur.com/P4dNTIi.png) --- ![](https://i.imgur.com/2R7J7xg.png) --- * Axes Y軸 ![](https://i.imgur.com/04L50eM.png) * 根據觀測的數據來調整出相對應的單位 ex記憶體單位為byte ![](https://i.imgur.com/C9AcHsz.png) * 小小補充IEC是由國際電工委員會制定,SI為國際單位制 ![](https://i.imgur.com/VtojsmV.png) * 顯示正確單位 ![](https://i.imgur.com/QR5WJ0k.png) --- * Axes X軸 ![](https://i.imgur.com/XUH9AvL.png) ![](https://i.imgur.com/K9FbLzd.png) --- ## 新增Variables變量配置 快速切換不同變數來使用同圖表 * 點選設定 ![](https://i.imgur.com/0mgOe1w.png) --- * 設定中有Variables ![](https://i.imgur.com/ku5VBEV.png) --- * 增加Variables ![](https://i.imgur.com/WxyQii3.png) --- 依照需求增加變數 ![](https://i.imgur.com/R2wk9Li.png) ![](https://i.imgur.com/rCGOyp1.png) --- * data source ![](https://i.imgur.com/w77JQPe.png) --- ![](https://i.imgur.com/zTRzuCS.png) --- ![](https://i.imgur.com/lDkl5ZG.png) --- ![](https://i.imgur.com/7cdRUVq.png) --- * Query :Hostname ![](https://i.imgur.com/A5ENli7.png) Refresh:控制下拉列表中的值是否更新 never:從不。 On Dashboard Load:Dashboard加載完成之前更新(會減慢加載速度) On Time Range Change:如果變量選項和時間相關,或者依賴dashboard時間範圍選擇 --- ``` SHOW TAG VALUES FROM "system" WITH KEY = "host" ``` ![](https://i.imgur.com/jAxveYp.png) --- ![](https://i.imgur.com/0JYTJM1.png) --- ## 新增告警 * 點選Alert ![](https://i.imgur.com/P41MvPU.png) --- * Create Alert ![](https://i.imgur.com/NlVOHzJ.png) --- * 設定告警規則 ``` Rule:此條規則的名稱、多久評估一次值、等待多久從pending 轉為alert的狀態 When avg() of query(A, 5m, now) is ABOVE ___ :當Query A的平均值,從五分鐘前到現在的值超過___ 當這個條件式滿足時,符合告警的設定 ``` ![](https://i.imgur.com/ikWTmZb.png) --- ![](https://i.imgur.com/SHmDbIq.png) --- * 點選Alerting,Alert Rules中可以看到目前設定好的告警 ![](https://i.imgur.com/JUs95Ps.png) --- * Notification Channels 增加通道類型 ![](https://i.imgur.com/zxj36XI.png) --- * Demo使用slack ![](https://i.imgur.com/mPJt7Nm.png) --- ### slack url * 點選:https://slack.com/apps 在下方搜尋【incoming webhooks】 ![](https://i.imgur.com/XvLYjzf.png) --- * 選擇告警頻道 ![](https://i.imgur.com/BqzM7JN.png) --- * 點選Add Incoming WebHooks integration ![](https://i.imgur.com/QXlc1TM.png) --- * 複製Webhook URL ![](https://i.imgur.com/BqgDRez.png) --- * 貼上url ![](https://i.imgur.com/uEW4ta6.png) --- * 測試 ![](https://i.imgur.com/pWK7bzB.png) --- * slack 收到測試告警 ![](https://i.imgur.com/RarXtCM.png) --- * 回到panel ,可設定告警通知訊號 ![](https://i.imgur.com/ny1ANvH.png) --- ## 使用模板 有兩種做法可以複製官網的Import ID,也可以使用json code匯入 1. 使用Import ID,在[Gragana官網](https://grafana.com/)中找符合需求的模板 ![](https://i.imgur.com/0YLlNoK.png) --- * 輸入條件即可找到符合條件的模板 ![](https://i.imgur.com/tXz3rkg.png) --- * 複製模板代號 ![](https://i.imgur.com/pa1uIwT.png) --- ![](https://i.imgur.com/GuxZFLt.png) --- * 將代號填入Import ![](https://i.imgur.com/R31o6UY.png) --- ![](https://i.imgur.com/6g1tPiR.png) --- ![](https://i.imgur.com/33V6fS2.png) --- * 詳細可以在設定中變更 ![](https://i.imgur.com/LUO1ak0.png) --- 2. 使用前輩or自己拉得不錯的儀表板匯出json文件,再匯入 * ex.將pin-grafana的儀錶板匯出,點選分享 ![](https://i.imgur.com/tEIvf7w.png) --- * Export>View JSON ![](https://i.imgur.com/eqzj6Ku.png) --- * 點選複製到剪貼簿 ![](https://i.imgur.com/W3n2uUO.png) --- * 點開127.0.0.1上的Grafana,Dashboards>Manage>Import ![](https://i.imgur.com/I75F1t6.png) --- * 將Josn文件貼上後按Load ![](https://i.imgur.com/cXWDIMk.png) --- * 點選Import ![](https://i.imgur.com/awxKhj4.png) --- ![](https://i.imgur.com/GmX2u3J.png) --- ### Reference [參考1](https://ithelp.ithome.com.tw/articles/10190837) [參考2](https://www.itread01.com/content/1547847009.html) [telegraf 改參數](https://juejin.im/post/6844904005399740423) [模板教學](https://www.itread01.com/content/1546765089.html) [參考](https://ken.io/note/grafana-quickstart-influxdb-datasource-graph) [官方模板](https://grafana.com/grafana/dashboards/11912) https://kknews.cc/zh-tw/career/nv4zq9q.html [參考3](https://karneliuk.com/2019/03/sp-part-6-secured-monitoring-of-multivendor-service-provider-fabric-with-telegraf-influxdb-and-grafana-running-as-docker-containers-and-automated-with-ansible/) [參考4](https://yunlzheng.gitbook.io/prometheus-book/part-ii-prometheus-jin-jie/grafana/grafana-intro) [參考5](https://www.shuzhiduo.com/A/xl56GAE1dr/)