使用Grafana監(jiān)控Redis的操作方法
當(dāng)面對(duì)一個(gè)復(fù)雜的系統(tǒng)時(shí),我們往往需要監(jiān)控工具來(lái)幫助我們解決一些性能問(wèn)題。比如之前我們使用
SpringBoot Admin
來(lái)監(jiān)控應(yīng)用,從而獲取到SpringBoot Actuator
暴露的指標(biāo)信息。今天給大家介紹一個(gè)功能強(qiáng)大的監(jiān)控工具Grafana,只要需要用到監(jiān)控的地方,用它做可視化就對(duì)了!
Grafana簡(jiǎn)介
Grafana是一款開(kāi)源的數(shù)據(jù)可視化和分析工具,不管你的指標(biāo)信息存儲(chǔ)在哪里,你都可以用它來(lái)可視化這些數(shù)據(jù)。同時(shí)它還具有告警功能,當(dāng)指標(biāo)超出指定范圍時(shí)會(huì)提醒你。
Prometheus簡(jiǎn)介
Prometheus是一款時(shí)序數(shù)據(jù)庫(kù),可以簡(jiǎn)單理解為帶時(shí)間的MySQL數(shù)據(jù)庫(kù)。由于Grafana只能將數(shù)據(jù)轉(zhuǎn)換成可視化圖表,并沒(méi)有存儲(chǔ)功能,所以我們需要結(jié)合Prometheus這類時(shí)序數(shù)據(jù)庫(kù)一起使用。
安裝
使用Docker安裝Grafana和Prometheus無(wú)疑是最簡(jiǎn)單的,我們接下來(lái)將采用此種方式。
首先下載Grafana的Docker鏡像;
docker?pull?grafana/grafana
下載完成后運(yùn)行Grafana;
docker?run?-p?3000:3000?--name?grafana?\ -d?grafana/grafana
接下來(lái)下載Prometheus的Docker鏡像;
docker?pull?prom/prometheus
在
/mydata/prometheus/
目錄下創(chuàng)建Prometheus的配置文件prometheus.yml
:
global: ??scrape_interval:?5s
運(yùn)行Prometheus,把宿主機(jī)中的配置文件
prometheus.yml
掛載到容器中去;
docker?run?-p?9090:9090?--name?prometheus?\ -v?/mydata/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml?\ -d?prom/prometheus
至此安裝完成,是不是很簡(jiǎn)單!可以通過(guò)如下地址訪問(wèn)Grafana,登錄賬號(hào)密碼為
admin:admin
,訪問(wèn)地址:http://192.168.5.78:3000/
登錄Grafana后顯示界面如下;
其實(shí)Prometheus也是有可視化界面的,就是有點(diǎn)簡(jiǎn)陋,訪問(wèn)地址:http://192.168.5.78:9090/
使用
Grafana已經(jīng)安裝完后,是時(shí)候來(lái)波實(shí)踐了,接下來(lái)我們來(lái)介紹下使用Grafana來(lái)監(jiān)控Linux系統(tǒng)和SpringBoot應(yīng)用。
監(jiān)控系統(tǒng)信息
使用
node_explorer
可以暴露Linux系統(tǒng)的指標(biāo)信息,然后Prometheus就可以通過(guò)定時(shí)掃描的方式獲取并存儲(chǔ)指標(biāo)信息了。
下載
node_explorer
的安裝包,下載地址:https://prometheus.io/download/#node_exporter
這次我們直接把
node_explorer
安裝到Linux服務(wù)器上(如果使用Docker容器安裝,監(jiān)控的會(huì)是Docker容器的指標(biāo)信息),將下載的安裝包解壓到指定目錄,并修改文件夾名稱:
cd?/mydata tar?-zxvf?node_exporter-1.1.2.linux-amd64.tar.gz mv?node_exporter-1.1.2.linux-amd64?node_exporter
進(jìn)入解壓目錄,使用如下命令運(yùn)行
node_explorer
,服務(wù)將運(yùn)行在9100
端口上;
cd?node_exporter ./node_exporter?>log.file?2>&1?&
使用
curl
命令訪問(wèn)獲取指標(biāo)信息接口,獲取到信息表示運(yùn)行成功;
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
接下來(lái)修改Prometheus的配置文件
prometheus.yml
,創(chuàng)建一個(gè)任務(wù)定時(shí)掃描node_explorer
暴露的指標(biāo)信息;
scrape_configs: ??-?job_name:?node ????static_configs: ????-?targets:?['192.168.5.78:9100']
重啟Prometheus容器,可以通過(guò)
加號(hào)->Dashboard
來(lái)創(chuàng)建儀表盤(pán);
當(dāng)然你還可以選擇去Grafana的儀表盤(pán)市場(chǎng)下載一個(gè)Dashboard,市場(chǎng)地址:https://grafana.com/grafana/dashboards
這里選擇了
Node Exporter Full
這個(gè)儀表盤(pán),記住它的ID,訪問(wèn)地址:https://grafana.com/grafana/dashboards/1860
選擇導(dǎo)入Dashboard并輸入ID,最后點(diǎn)擊
Load
即可;
選擇數(shù)據(jù)源為Prometheus,最后點(diǎn)擊
Import
;
導(dǎo)入成功后就可以在Grafana中看到實(shí)時(shí)監(jiān)控信息了,是不是夠炫酷!
監(jiān)控SpringBoot應(yīng)用
監(jiān)控SpringBoot應(yīng)用需要依靠
actuator
及micrometer
,通過(guò)暴露actuator
的端點(diǎn),Prometheus可以定時(shí)獲取并存儲(chǔ)指標(biāo)信息。
修改項(xiàng)目的
pom.xml
文件,添加actuator
及micrometer
依賴;
<dependencies> ????<dependency> ????????<groupId>org.springframework.boot</groupId> ????????<artifactId>spring-boot-starter-actuator</artifactId> ????</dependency> ????<!--?集成micrometer,將監(jiān)控?cái)?shù)據(jù)存儲(chǔ)到prometheus?--> ????<dependency> ????????<groupId>io.micrometer</groupId> ????????<artifactId>micrometer-registry-prometheus</artifactId> ????</dependency> </dependencies>
修改應(yīng)用配置文件
application.yml
,通過(guò)actuator
暴露監(jiān)控端口/actuator/prometheus
;
management: ??endpoints: ????web: ??????exposure: ????????#?暴露端點(diǎn)`/actuator/prometheus` ????????include:?'prometheus' ??metrics: ????tags: ??????application:?${spring.application.name}
在監(jiān)控SpringBoot應(yīng)用之前,我們需要先運(yùn)行一個(gè)SpringBoot應(yīng)用,使用如下命令運(yùn)行即可;
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
,創(chuàng)建一個(gè)任務(wù)定時(shí)掃描actuator
暴露的指標(biāo)信息,這里需要注意下,由于SpringBoot應(yīng)用運(yùn)行在Docker容器中,需要使用docker inspect mall-tiny-grafana |grep IPAddress
來(lái)獲取容器IP地址;
scrape_configs: ??#?采集任務(wù)名稱 ??-?job_name:?'mall-tiny-grafana' ????#?采集時(shí)間間隔 ????scrape_interval:?5s ????#?采集超時(shí)時(shí)間 ????scrape_timeout:?10s ????#?采集數(shù)據(jù)路徑 ????metrics_path:?'/actuator/prometheus' ????#?采集服務(wù)的地址 ????static_configs: ??????-?targets:?['172.17.0.5:8088']
我們可以通過(guò)Prometheus的可視化界面,來(lái)確定Prometheus是否能獲取到指標(biāo)信息;
同樣,我們可以從儀表盤(pán)市場(chǎng)導(dǎo)入儀表盤(pán),訪問(wèn)地址:https://grafana.com/grafana/dashboards/14370
導(dǎo)入成功后就可以在Grafana中看到SpringBoot實(shí)時(shí)監(jiān)控信息了,果然夠炫酷!
總結(jié)
通過(guò)對(duì)Grafana的一波實(shí)踐,我們可以發(fā)現(xiàn),使用Grafana來(lái)進(jìn)行數(shù)據(jù)可視化的過(guò)程是這樣的:首先我們得讓被監(jiān)控方將指標(biāo)信息暴露出來(lái),然后用Prometheus定時(shí)獲取并存儲(chǔ)指標(biāo)信息,最后將Prometheus配置為Grafana的可視化數(shù)據(jù)源。
參考資料
Grafana官方文檔:https://grafana.com/docs/grafana/latest/getting-started/getting-started-prometheus/
node-exporter的使用:https://prometheus.io/docs/guides/node-exporter/
項(xiàng)目源碼地址
https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-grafana
到此這篇關(guān)于使用Grafana監(jiān)控Redis的文章就介紹到這了,更多相關(guān)Grafana監(jiān)控Redis內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解redis在微服務(wù)領(lǐng)域的貢獻(xiàn)
本文以dubbo為例看下redis是如何利用自身特性來(lái)完成注冊(cè)中心的功能,對(duì)redis微服務(wù)相關(guān)知識(shí)感興趣的朋友一起看看吧2021-10-10Redis?Hash序列化存儲(chǔ)的問(wèn)題及解決方案
這篇文章主要介紹了Redis?Hash序列化存儲(chǔ)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11gem install redis報(bào)錯(cuò)的解決方案
今天小編就為大家分享一篇關(guān)于gem install redis報(bào)錯(cuò)的解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01Redis配置文件redis.conf詳細(xì)配置說(shuō)明
本文列出了Redis的配置文件redis.conf的各配置項(xiàng)的詳細(xì)說(shuō)明,簡(jiǎn)單易懂2018-03-03如何高效地向Redis插入大量的數(shù)據(jù)(推薦)
本篇文章主要介紹了如何高效地向Redis插入大量的數(shù)據(jù),現(xiàn)在分享給大家,感興趣的小伙伴們可以參考一下。2016-11-11Redis可視化工具Redis?Desktop?Manager的具體使用
本文主要介紹了Redis可視化工具Redis?Desktop?Manager的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12