--- 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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.