<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用 Grafana 創(chuàng)建可視化面板

          共 4118字,需瀏覽 9分鐘

           ·

          2021-10-30 17:29

          Grafana 是一個(gè)監(jiān)控儀表系統(tǒng),它是由 Grafana Labs 公司開源的的一個(gè)系統(tǒng)監(jiān)測工具,它可以大大幫助我們簡化監(jiān)控的復(fù)雜度,我們只需要提供需要監(jiān)控的數(shù)據(jù),它就可以幫助生成各種可視化儀表,同時(shí)它還有報(bào)警功能,可以在系統(tǒng)出現(xiàn)問題時(shí)發(fā)出通知。

          Grafana 支持許多不同的數(shù)據(jù)源,每個(gè)數(shù)據(jù)源都有一個(gè)特定的查詢編輯器,每個(gè)數(shù)據(jù)源的查詢語言和能力都是不同的,我們可以把來自多個(gè)數(shù)據(jù)源的數(shù)據(jù)組合到一個(gè)儀表板,但每一個(gè)面板被綁定到一個(gè)特定的數(shù)據(jù)源。目前官方支持以下數(shù)據(jù)源:

          • Alertmanager
          • AWS CloudWatch
          • Azure Monitor
          • Elasticsearch
          • Google Cloud Monitoring
          • Graphite
          • InfluxDB
          • Loki
          • Microsoft SQL Server (MSSQL)
          • MySQL
          • OpenTSDB
          • PostgreSQL
          • Prometheus
          • Jaeger
          • Zipkin
          • Tempo

          我們這里當(dāng)然重點(diǎn)需要介紹的就是 Prometheus 這個(gè)數(shù)據(jù)源了。

          安裝

          接下來我們就來安裝 Grafana,Grafana 本身是非常輕量級(jí)的,不會(huì)占用大量資源,此外 Grafana 需要一個(gè)數(shù)據(jù)庫來存儲(chǔ)其配置數(shù)據(jù),比如用戶、數(shù)據(jù)源和儀表盤等,目前 Grafana 支持 SQLite、MySQL、PostgreSQL 3 種數(shù)據(jù)庫,默認(rèn)使用的是 SQLite,該數(shù)據(jù)庫文件會(huì)存儲(chǔ)在 Grafana 的安裝位置,所以需要對(duì) Grafana 的安裝目錄進(jìn)行持久化。

          要安裝 Grafana 的方式有很多,我們這里使用的是 CentOS 系統(tǒng),可以在 Grafana 官方下載頁面篩選合適的版本 https://grafana.com/grafana/download?edition=oss&platform=linux 根據(jù)自己的需求來進(jìn)行安裝,比如我們這里直接使用 rpm 包進(jìn)行安裝:

          ????wget?https://dl.grafana.com/oss/release/grafana-8.2.1-1.x86_64.rpm
          ????sudo?yum?install?grafana-8.2.1-1.x86_64.rpm

          安裝完成后我們就可以使用 systemd 來管理 Grafana:

          ????sudo?systemctl?daemon-reload
          ????sudo?systemctl?enable?grafana-server
          ????sudo?systemctl?start?grafana-server
          ????sudo?systemctl?status?grafana-server

          默認(rèn)的啟動(dòng)配置環(huán)境變量位于 /etc/sysconfig/grafana-server 文件中:

          ????cat?/etc/sysconfig/grafana-server
          GRAFANA_USER=grafana

          GRAFANA_GROUP=grafana

          GRAFANA_HOME=/usr/share/grafana

          LOG_DIR=/var/log/grafana

          DATA_DIR=/var/lib/grafana

          MAX_OPEN_FILES=10000

          CONF_DIR=/etc/grafana

          CONF_FILE=/etc/grafana/grafana.ini

          RESTART_ON_UPGRADE=true

          PLUGINS_DIR=/var/lib/grafana/plugins

          PROVISIONING_CFG_DIR=/etc/grafana/provisioning

          #
          ?Only?used?on?systemd?systems
          PID_FILE_DIR=/var/run/grafana

          從上面文件中可以找到 Grafana 的各種數(shù)據(jù)配置路徑,比如數(shù)據(jù)目錄、日志目錄、插件目錄等等,正常啟動(dòng)完成后 Grafana 會(huì)監(jiān)聽在 3000 端口上,所以我們可以在瀏覽器中打開 Grafana 的 WebUI。

          默認(rèn)的用戶名和密碼為 admin,也可以在配置文件 /etc/grafana/grafana.ini 中配置 admin_useradmin_password 兩個(gè)參數(shù)來進(jìn)行覆蓋。

          當(dāng)然如果我們想要部署一個(gè)高可用版本的 Grafana 的話,那么使用 SQLite 數(shù)據(jù)庫就不行了,需要切換到 MySQL 或者 PostgreSQL,我們可以在 Grafana 配置的 [database] 部分找到數(shù)據(jù)庫的相關(guān)配置,Grafana 會(huì)將所有長期數(shù)據(jù)保存在數(shù)據(jù)庫中,然后部署多個(gè) Grafana 實(shí)例使用同一個(gè)數(shù)據(jù)庫即可實(shí)現(xiàn)高可用。

          創(chuàng)建面板

          面板(Panel)是 Grafana 中基本可視化構(gòu)建塊,每個(gè)面板都有一個(gè)特定于面板中選擇數(shù)據(jù)源的查詢編輯器,每個(gè)面板都有各種各樣的樣式和格式選項(xiàng),面板可以在儀表板上拖放和重新排列,它們也可以調(diào)整大小,所以要在 Grafana 上創(chuàng)建可視化的圖表,面板是我們必須要掌握的知識(shí)點(diǎn)。

          數(shù)據(jù)源

          在創(chuàng)建面板之前我們需要指定我們的面板數(shù)據(jù)來源,也就是數(shù)據(jù)源,Grafana 支持多種數(shù)據(jù)源,我們這里當(dāng)然使用 Prometheus 作為數(shù)據(jù)源來進(jìn)行說明。在 Grafana 左側(cè)工具欄選擇 Configuration,點(diǎn)擊到下面的 Data sources,打開添加數(shù)據(jù)源的頁面:

          點(diǎn)擊頁面中的 Add data source 按鈕開始添加數(shù)據(jù)源:

          選擇第一項(xiàng) Prometheus 數(shù)據(jù)源進(jìn)行配置:

          在 HTTP 項(xiàng)中配置 URL 地址為 http://localhost:9090,其實(shí)就是 Prometheus 的地址,由于我們這里 Grafana 和 Prometheus 都在同一個(gè)節(jié)點(diǎn)上,所以用 localhost 即可訪問,當(dāng)然用 IP 也可以,Access 選擇默認(rèn)的 Server 代理方式,這樣就相當(dāng)于 Grafana 程序去訪問 Prometheus 而不是在瀏覽器端去訪問,如果 Prometheus 配置有認(rèn)證,則還需要在下發(fā)配置 Auth 信息,配置完成后,拉到最下方點(diǎn)擊 Save & test,提示添加成功即表面數(shù)據(jù)源添加成功了。然后在數(shù)據(jù)源列表中就會(huì)出現(xiàn)我們剛剛添加的 Prometheus 這個(gè)數(shù)據(jù)源了:

          如果想要添加其他支持的數(shù)據(jù)源則也可用同樣的方式進(jìn)行添加。

          添加面板

          面板是屬于某一個(gè) Dashboard 的,所以我們需要先創(chuàng)建一個(gè) Dashboard,在側(cè)邊欄點(diǎn)擊 + 切換到 Dashboard 下面開始創(chuàng)建 Dashboard:

          在默認(rèn)創(chuàng)建的新的 Dashboard 中就有一個(gè)空的面板,點(diǎn)擊 Add an empty panel 即可開始添加面板:

          進(jìn)入面板編輯器后即可添加面板了,中間位置是查詢語句的顯示結(jié)果,下方是用于配置查詢語句的地方,左側(cè)可以選擇面板顯示的類型,面板元信息,比如標(biāo)題、描述信息等。

          比如我們現(xiàn)在就要來查詢節(jié)點(diǎn)的 CPU 使用率,前面在 node_exporter 章節(jié)中已經(jīng)學(xué)習(xí)了該監(jiān)控?cái)?shù)據(jù)的查詢語句為 (1 - sum(rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) / sum(rate(node_cpu_seconds_total[5m])) by (instance) ) * 100,只需要將該語句填充到查詢的 PromQL 語句中即可在上面顯示出監(jiān)控的結(jié)果:

          點(diǎn)擊右上角的 Apply 按鈕即可創(chuàng)建成功一個(gè) Panel 面板。

          用同樣的方式我們可以創(chuàng)建一個(gè)用于查詢節(jié)點(diǎn)內(nèi)存使用率的面板:

          創(chuàng)建完成后的面板我們也可以拖動(dòng)他們的排列位置:

          如果還想重新編輯面板,可以點(diǎn)擊標(biāo)題,在彈出來的下拉框中選擇 Edit 編輯即可:

          添加參數(shù)

          現(xiàn)在我們?cè)谝粋€(gè) Dashboard 中添加了兩個(gè) Panel,我們可以很明顯看到會(huì)直接將所有的節(jié)點(diǎn)信息展示在同一個(gè)面板中,但是如果有非常多的節(jié)點(diǎn)的話數(shù)據(jù)量就非常大了,這種情況下我們最好的方式是將節(jié)點(diǎn)當(dāng)成參數(shù),可以讓用戶自己去選擇要查看哪一個(gè)節(jié)點(diǎn)的監(jiān)控信息,要實(shí)現(xiàn)這個(gè)功能,我們就需要去添加一個(gè)以節(jié)點(diǎn)為參數(shù)的變量來去查詢監(jiān)控?cái)?shù)據(jù)。

          點(diǎn)擊 Dashboard 頁面右上方的 Dashboard settings 按鈕,進(jìn)入配置頁面:

          在該 Settings 頁面可以來對(duì)整個(gè) Dashboard 進(jìn)行配置,比如名稱、標(biāo)簽、變量等:

          這里我們點(diǎn)擊左邊的 Variables 添加一個(gè)變量,變量支持更具交互性和動(dòng)態(tài)性的儀表板,我們可以在它們的位置使用變量,而不是在指標(biāo)查詢中硬編碼,變量顯示為 Dashboard 頂部的下拉列表,這些下拉列表可以輕松更改儀表板中顯示的數(shù)據(jù)。

          為了能夠選擇節(jié)點(diǎn)數(shù)據(jù),這里我們定義了一個(gè)名為 instance 的變量名,但是定義的這個(gè)變量值從哪個(gè)地方獲取呢?

          監(jiān)控節(jié)點(diǎn)的相關(guān)指標(biāo)是來源于名為 node-exporter 的任務(wù),我們可以通過查詢 up 來獲取所有的監(jiān)控實(shí)例:

          要想獲取到 instance 標(biāo)簽中的值,我們這里可以使用一個(gè)正則表達(dá)式 .*instance="(.*?)".* 來獲取實(shí)例數(shù)據(jù),這樣就成功定義了一個(gè)變量,回到 Dashboard 頁面就可以看到多了一個(gè)選擇節(jié)點(diǎn)的下拉框:

          但是這個(gè)時(shí)候的面板并不會(huì)隨著我們下拉框的選擇而變化,我們需要將 instance 這個(gè)變量傳入查詢語句中,比如重新修改CPU使用率的查詢語句:

          用同樣的方式給內(nèi)存使用率添加根據(jù)節(jié)點(diǎn)過濾的參數(shù):

          回到 Dashboard 頁面就可以根據(jù)我們的下拉框來選擇需要監(jiān)控的節(jié)點(diǎn)數(shù)據(jù)了,定義參數(shù)的時(shí)候如果選擇了可以選擇所有,同樣可以查看所有節(jié)點(diǎn)的數(shù)據(jù):

          面板還有很多配置細(xì)節(jié),請(qǐng)關(guān)注后續(xù)內(nèi)容......

          瀏覽 175
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色a一级片免费看 | 欧美性爱网址在线观看 | 日韩一无码 | 亚洲三级片在线观看视频 | 东京热一区二区三区精品无码 |