首頁 > 軟體

使用Grafana監控Redis的操作方法

2022-04-19 19:03:35

當面對一個複雜的系統時,我們往往需要監控工具來幫助我們解決一些效能問題。比如之前我們使用SpringBoot Admin來監控應用,從而獲取到SpringBoot Actuator暴露的指標資訊。今天給大家介紹一個功能強大的監控工具Grafana,只要需要用到監控的地方,用它做視覺化就對了!

Grafana簡介

Grafana是一款開源的資料視覺化和分析工具,不管你的指標資訊儲存在哪裡,你都可以用它來視覺化這些資料。同時它還具有告警功能,當指標超出指定範圍時會提醒你。

Prometheus簡介

Prometheus是一款時序資料庫,可以簡單理解為帶時間的MySQL資料庫。由於Grafana只能將資料轉換成視覺化圖表,並沒有儲存功能,所以我們需要結合Prometheus這類時序資料庫一起使用。

安裝

使用Docker安裝Grafana和Prometheus無疑是最簡單的,我們接下來將採用此種方式。

  • 首先下載Grafana的Docker映象;

docker pull grafana/grafana
  • 下載完成後執行Grafana;

docker run -p 3000:3000 --name grafana 
-d grafana/grafana
  • 接下來下載Prometheus的Docker映象;

docker pull prom/prometheus
  • /mydata/prometheus/目錄下建立Prometheus的組態檔prometheus.yml

global:
  scrape_interval: 5s
  • 執行Prometheus,把宿主機中的組態檔prometheus.yml掛載到容器中去;

docker run -p 9090:9090 --name prometheus 
-v /mydata/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml 
-d prom/prometheus
  • 至此安裝完成,是不是很簡單!可以通過如下地址存取Grafana,登入賬號密碼為admin:admin,存取地址:http://192.168.5.78:3000/

  • 登入Grafana後顯示介面如下;

  • 其實Prometheus也是有視覺化介面的,就是有點簡陋,存取地址:http://192.168.5.78:9090/

使用

Grafana已經安裝完後,是時候來波實踐了,接下來我們來介紹下使用Grafana來監控Linux系統和SpringBoot應用。

監控系統資訊

使用node_explorer可以暴露Linux系統的指標資訊,然後Prometheus就可以通過定時掃描的方式獲取並儲存指標資訊了。

  • 下載node_explorer的安裝包,下載地址:https://prometheus.io/download/#node_exporter

  • 這次我們直接把node_explorer安裝到Linux伺服器上(如果使用Docker容器安裝,監控的會是Docker容器的指標資訊),將下載的安裝包解壓到指定目錄,並修改資料夾名稱:

cd /mydata
tar -zxvf node_exporter-1.1.2.linux-amd64.tar.gz
mv node_exporter-1.1.2.linux-amd64 node_exporter
  • 進入解壓目錄,使用如下命令執行node_explorer,服務將執行在9100埠上;

cd node_exporter
./node_exporter >log.file 2>&1 &
  • 使用curl命令存取獲取指標資訊介面,獲取到資訊表示執行成功;

curl http://localhost:9100/metrics
# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.
# TYPE promhttp_metric_handler_requests_in_flight gauge
promhttp_metric_handler_requests_in_flight 1
# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.
# TYPE promhttp_metric_handler_requests_total counter
promhttp_metric_handler_requests_total{code="200"} 2175
promhttp_metric_handler_requests_total{code="500"} 0
promhttp_metric_handler_requests_total{code="503"} 0
  • 接下來修改Prometheus的組態檔prometheus.yml,建立一個任務定時掃描node_explorer暴露的指標資訊;

scrape_configs:
  - job_name: node
    static_configs:
    - targets: ['192.168.5.78:9100']
  • 重啟Prometheus容器,可以通過加號->Dashboard來建立儀表盤;

  • 當然你還可以選擇去Grafana的儀表盤市場下載一個Dashboard,市場地址:https://grafana.com/grafana/dashboards

  • 這裡選擇了Node Exporter Full這個儀表盤,記住它的ID,存取地址:https://grafana.com/grafana/dashboards/1860

  • 選擇匯入Dashboard並輸入ID,最後點選Load即可;

  • 選擇資料來源為Prometheus,最後點選Import

  • 匯入成功後就可以在Grafana中看到實時監控資訊了,是不是夠炫酷!

監控SpringBoot應用

監控SpringBoot應用需要依靠actuatormicrometer,通過暴露actuator的端點,Prometheus可以定時獲取並儲存指標資訊。

  • 修改專案的pom.xml檔案,新增actuatormicrometer依賴;

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!-- 整合micrometer,將監控資料儲存到prometheus -->
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
    </dependency>
</dependencies>
  • 修改應用組態檔application.yml,通過actuator暴露監控埠/actuator/prometheus

management:
  endpoints:
    web:
      exposure:
        # 暴露端點`/actuator/prometheus`
        include: 'prometheus'
  metrics:
    tags:
      application: ${spring.application.name}
  • 在監控SpringBoot應用之前,我們需要先執行一個SpringBoot應用,使用如下命令執行即可;

docker run -p 8088:8088 --name mall-tiny-grafana 
-v /etc/localtime:/etc/localtime 
-v /mydata/app/mall-tiny-grafana/logs:/var/logs 
-e TZ="Asia/Shanghai" 
-d mall-tiny/mall-tiny-grafana:1.0-SNAPSHOT
  • 修改Prometheus的組態檔prometheus.yml,建立一個任務定時掃描actuator暴露的指標資訊,這裡需要注意下,由於SpringBoot應用執行在Docker容器中,需要使用docker inspect mall-tiny-grafana |grep IPAddress來獲取容器IP地址;

scrape_configs:
  # 採集任務名稱
  - job_name: 'mall-tiny-grafana'
    # 採集時間間隔
    scrape_interval: 5s
    # 採集超時時間
    scrape_timeout: 10s
    # 採集資料路徑
    metrics_path: '/actuator/prometheus'
    # 採集服務的地址
    static_configs:
      - targets: ['172.17.0.5:8088']
  • 我們可以通過Prometheus的視覺化介面,來確定Prometheus是否能獲取到指標資訊;

  • 同樣,我們可以從儀表盤市場匯入儀表盤,存取地址:https://grafana.com/grafana/dashboards/14370

  • 匯入成功後就可以在Grafana中看到SpringBoot實時監控資訊了,果然夠炫酷!

總結

通過對Grafana的一波實踐,我們可以發現,使用Grafana來進行資料視覺化的過程是這樣的:首先我們得讓被監控方將指標資訊暴露出來,然後用Prometheus定時獲取並儲存指標資訊,最後將Prometheus設定為Grafana的視覺化資料來源。

參考資料

專案原始碼地址

https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-grafana

到此這篇關於使用Grafana監控Redis的文章就介紹到這了,更多相關Grafana監控Redis內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com