<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
當面對一個複雜的系統時,我們往往需要監控工具來幫助我們解決一些效能問題。比如之前我們使用
SpringBoot Admin
來監控應用,從而獲取到SpringBoot Actuator
暴露的指標資訊。今天給大家介紹一個功能強大的監控工具Grafana,只要需要用到監控的地方,用它做視覺化就對了!
Grafana是一款開源的資料視覺化和分析工具,不管你的指標資訊儲存在哪裡,你都可以用它來視覺化這些資料。同時它還具有告警功能,當指標超出指定範圍時會提醒你。
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應用需要依靠
actuator
及micrometer
,通過暴露actuator
的端點,Prometheus可以定時獲取並儲存指標資訊。
修改專案的pom.xml
檔案,新增actuator
及micrometer
依賴;
<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的視覺化資料來源。
Grafana官方檔案:https://grafana.com/docs/grafana/latest/getting-started/getting-started-prometheus/
node-exporter的使用:https://prometheus.io/docs/guides/node-exporter/
https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-grafana
到此這篇關於使用Grafana監控Redis的文章就介紹到這了,更多相關Grafana監控Redis內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45