prometheus+grafana+全方位立体监控redis
Prometheus 概述
Prometheus(普羅米修斯)是一套開(kāi)源的監(jiān)控&報(bào)警&時(shí)間序列數(shù)據(jù)庫(kù)的組合,起始是由SoundCloud公司開(kāi)發(fā)的。隨著發(fā)展,越來(lái)越多公司和組織接受采用Prometheus,社會(huì)也十分活躍,他們便將它獨(dú)立成開(kāi)源項(xiàng)目,并且有公司來(lái)運(yùn)作。Google SRE的書(shū)內(nèi)也曾提到跟他們BorgMon監(jiān)控系統(tǒng)相似的實(shí)現(xiàn)是Prometheus。現(xiàn)在最常見(jiàn)的Kubernetes容器管理系統(tǒng)中,通常會(huì)搭配Prometheus進(jìn)行監(jiān)控。
Prometheus基本原理是通過(guò)HTTP協(xié)議周期性抓取被監(jiān)控組件的狀態(tài),這樣做的好處是任意組件只要提供HTTP接口就可以接入監(jiān)控系統(tǒng),不需要任何SDK或者其他的集成過(guò)程。這樣做非常適合虛擬化環(huán)境比如VM或者Docker 。
Prometheus應(yīng)該是為數(shù)不多的適合Docker、Mesos、Kubernetes環(huán)境的監(jiān)控系統(tǒng)之一。輸出被監(jiān)控組件信息的HTTP接口被叫做exporter 。目前互聯(lián)網(wǎng)公司常用的組件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux 系統(tǒng)信息 (包括磁盤(pán)、內(nèi)存、CPU、網(wǎng)絡(luò)等等),具體支持的源看:https://github.com/prometheus
Prometheus的主要特點(diǎn)是:
多維數(shù)據(jù)模型(時(shí)序列數(shù)據(jù)由metric名和一組key/value組成)
在多維度上靈活的查詢語(yǔ)言(PromQl)
不依賴(lài)分布式存儲(chǔ),單主節(jié)點(diǎn)工作.
通過(guò)基于HTTP的pull方式采集時(shí)序數(shù)據(jù)
可以通過(guò)push gateway進(jìn)行時(shí)序列數(shù)據(jù)推送(pushing)
可以通過(guò)服務(wù)發(fā)現(xiàn)或者靜態(tài)配置去獲取要采集的目標(biāo)服務(wù)器
多種可視化圖表及儀表盤(pán)支持
Prometheus通過(guò)安裝在遠(yuǎn)程機(jī)器上的exporter來(lái)收集監(jiān)控?cái)?shù)據(jù),后面我們將使用到redies_exporter收集系統(tǒng)數(shù)據(jù)架構(gòu):
Grafana介紹
Grafana是一個(gè)跨平臺(tái)的開(kāi)源的度量分析和可視化工具,可以通過(guò)將采集的數(shù)據(jù)查詢?nèi)缓罂梢暬恼故?#xff0c;并及時(shí)通知。它主要有以下六大特點(diǎn):
1、展示方式:快速靈活的客戶端圖表,面板插件有許多不同方式的可視化指標(biāo)和日志,官方庫(kù)中具有豐富的儀表盤(pán)插件,比如熱圖、折線圖、圖表等多種展示方式;
2、數(shù)據(jù)源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
3、通知提醒:以可視方式定義最重要指標(biāo)的警報(bào)規(guī)則,Grafana將不斷計(jì)算并發(fā)送通知,在數(shù)據(jù)達(dá)到閾值時(shí)通過(guò)Slack、PagerDuty等獲得通知;
4、混合展示:在同一圖表中混合使用不同的數(shù)據(jù)源,可以基于每個(gè)查詢指定數(shù)據(jù)源,甚至自定義數(shù)據(jù)源;
5、注釋:使用來(lái)自不同數(shù)據(jù)源的豐富事件注釋圖表,將鼠標(biāo)懸停在事件上會(huì)顯示完整的事件元數(shù)據(jù)和標(biāo)記;
6、過(guò)濾器:Ad-hoc過(guò)濾器允許動(dòng)態(tài)創(chuàng)建新的鍵/值過(guò)濾器,這些過(guò)濾器會(huì)自動(dòng)應(yīng)用于使用該數(shù)據(jù)源的所有查詢
效果
使用Grafana和Prometheus以及redis_exporter對(duì)redis節(jié)點(diǎn)進(jìn)行監(jiān)控。下面圖監(jiān)控某個(gè)redis節(jié)點(diǎn):
安裝
Redis_export下載并解壓
下載地址:https://github.com/oliver006/redis_exporter
redis_exporter-v1.13.1.darwin-amd64.tar.gz
tar -zxvf redis_exporter-v1.13.1.darwin-amd64.tar.gz
使用默認(rèn)配置
redis_exporter 常用的選項(xiàng):
-redis.addr:指明一個(gè)或多個(gè) Redis 節(jié)點(diǎn)的地址,多個(gè)節(jié)點(diǎn)使用逗號(hào)分隔,默認(rèn)為 redis://localhost:6379
-redis.password:驗(yàn)證 Redis 時(shí)使用的密碼;
-redis.file:包含一個(gè)或多個(gè)redis 節(jié)點(diǎn)的文件路徑,每行一個(gè)節(jié)點(diǎn),此選項(xiàng)與 -redis.addr 互斥。
-web.listen-address:監(jiān)聽(tīng)的地址和端口,默認(rèn)為 0.0.0.0:9121
啟動(dòng)單節(jié)點(diǎn):
./redis_exporter redis//127.0.0.1:6379 &
啟動(dòng)多節(jié)點(diǎn):
./redis_exporter -redis.addr xx.x.xxx.214:7000 xx.x.xxx:7001 xx.x.xxx.215:7002 xx.x.xxx.216:7003 &
Prometheus下載并解壓
下載地址:https://prometheus.io/download
prometheus-2.22.2.darwin-amd64.tar.gz
tar -zxvf prometheus-2.22.2.darwin-amd64.tar.gz
prometheus.yml加入redis節(jié)點(diǎn)
-
job_name: redis
static_configs:
- targets: ['127.0.0.0:9121']labels:instance: redis-mac
./prometheus
prometheus默認(rèn)端口9090
ip+9090訪問(wèn)
Grafana下載并解壓
下載地址:https://github.com/grafana/grafana
grafana-6.4.3.linux-amd64.tar.gz
tar -zxvf grafana-6.4.3.linux-amd64.tar.gz
啟動(dòng)
./bin/grafana-server 默認(rèn)端口3000 默認(rèn)用戶名admin 密碼 admin
ip+3000
- 第一步:
添加data sources - 第二步:
選擇Prometheus - 第三步:
- 第四步:
- 第五步:
- 第六步:
- 第七步:
- 第八步:
- 第九步:
導(dǎo)入 查看
- 第十步:
最終結(jié)果頁(yè)
- 第十一步:
總結(jié)
以上是生活随笔為你收集整理的prometheus+grafana+全方位立体监控redis的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Duang Duang Duang,Co
- 下一篇: 全方位的开源监控工具链介绍