--- 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數據呈現的最小單元  --- ## Data Source * 此次Demo採用 Telegraf採集、InfluxDB儲存、Grafana展示  --- ### 新增Data Source * 點選設定→選擇Data Source  --- * 新增Data Source  --- * 本範例為InfluxDB,因此選擇[InfluxDB]  --- * Name可以自行取名,本範例使用[InfluxDB] * Query Language選擇[InfluxQL] * URL需輸入相對應的連結與port號,以下舉三種例子 * 若InfluxDB與Grafana在同機台可輸入 http://localhost:8086 or http://127.0.0.1:8086 * 若InfluxDB與Grafana於不同機台,則要輸入安裝InfluxDB機台的外網 ex.! [pin-granfana]想要讀取[lily-testcdn]的InfluxDB,連結處就要輸入該台外網IP&Port  * 若是使用docker-compose建立InfluxDB與Grafana,可以使用http://`container_name`:8086,此demo為`container_name: influxdb` 因此url可輸入 http://InfluxDB:8086  --- * Database輸入InfluxDB讀取的檔案名稱:telegraf1 * 設定完成點選[Save & Test]按鈕  --- * 成功寫入  * 失敗  --- ## 新增Dashboard * 點選Dashboard中的Manage  --- * 建立新的Dashboard  * 建立新面板  --- * 透過下拉式選單選擇要讀取的資料庫**InfluxDB**  --- ### 表單配置說明  * FROM Default:默認架構圖,保持不變 measurement:選取對應的InfluxDB表單名稱 * WHERE:根據自己的需求選擇條件 * SELECT field():選擇表單抓取的細項數據 mean():細項對應InfluxDB內的資料 * GROUPBY time():根據時間分組 fill():當無數據時的填充值,默認值為null --- #### 數據  * cpu:系統CPU的訊息 * disk:硬碟佔用信息。 * diskio:硬碟IO性能 * kernel:內核 * mem:記憶體 * processes:處於執行狀態的程式 * swap:類似Windows系統下的"虛擬內存" --- * DEMO記憶體的總容量與使用率  --- * ALIAS BY輸入資料名稱,即可顯示於圖表  --- * 可點選複製以方便快速設定  --- ### 圖表呈現方式調整-更改折線圖的顏色   --- ### 圖表呈現方式細項調整 * 點選show options  --- * 點選Panel  --- * Settings更改Panel名稱  --- * Visualization中可以選擇圖表類型  --- * Display 可以設定顯示方式  ---  --- * Axes Y軸  * 根據觀測的數據來調整出相對應的單位 ex記憶體單位為byte  * 小小補充IEC是由國際電工委員會制定,SI為國際單位制  * 顯示正確單位  --- * Axes X軸   --- ## 新增Variables變量配置 快速切換不同變數來使用同圖表 * 點選設定  --- * 設定中有Variables  --- * 增加Variables  --- 依照需求增加變數   --- * data source  ---  ---  ---  --- * Query :Hostname  Refresh:控制下拉列表中的值是否更新 never:從不。 On Dashboard Load:Dashboard加載完成之前更新(會減慢加載速度) On Time Range Change:如果變量選項和時間相關,或者依賴dashboard時間範圍選擇 --- ``` SHOW TAG VALUES FROM "system" WITH KEY = "host" ```  ---  --- ## 新增告警 * 點選Alert  --- * Create Alert  --- * 設定告警規則 ``` Rule:此條規則的名稱、多久評估一次值、等待多久從pending 轉為alert的狀態 When avg() of query(A, 5m, now) is ABOVE ___ :當Query A的平均值,從五分鐘前到現在的值超過___ 當這個條件式滿足時,符合告警的設定 ```  ---  --- * 點選Alerting,Alert Rules中可以看到目前設定好的告警  --- * Notification Channels 增加通道類型  --- * Demo使用slack  --- ### slack url * 點選:https://slack.com/apps 在下方搜尋【incoming webhooks】  --- * 選擇告警頻道  --- * 點選Add Incoming WebHooks integration  --- * 複製Webhook URL  --- * 貼上url  --- * 測試  --- * slack 收到測試告警  --- * 回到panel ,可設定告警通知訊號  --- ## 使用模板 有兩種做法可以複製官網的Import ID,也可以使用json code匯入 1. 使用Import ID,在[Gragana官網](https://grafana.com/)中找符合需求的模板  --- * 輸入條件即可找到符合條件的模板  --- * 複製模板代號  ---  --- * 將代號填入Import  ---  ---  --- * 詳細可以在設定中變更  --- 2. 使用前輩or自己拉得不錯的儀表板匯出json文件,再匯入 * ex.將pin-grafana的儀錶板匯出,點選分享  --- * Export>View JSON  --- * 點選複製到剪貼簿  --- * 點開127.0.0.1上的Grafana,Dashboards>Manage>Import  --- * 將Josn文件貼上後按Load  --- * 點選Import  ---  --- ### 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/)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up