使用Prometheus和Grafana构建Redis实时监控平台

栏目: IT技术 · 发布时间: 4年前

内容简介:Redis作为缓存系统,在整个后端体系中是较为重要的一环,需要实时监控运行状态。现在有各种各样的工具都可以对Redis进行监控,例如:redis-stat、RedisLive等,在使用过各种各样的监控工具后,个人感觉redis_exporter较为好用,配合Prometheus+Grafana,不仅监控灵活、展现直观还可以进行自行封装来获取各种特别关注的数据指标。今天就和大家分享redis-exporter+Grafana+Prometheus构建Redis实时监控。

Redis作为缓存系统,在整个后端体系中是较为重要的一环,需要实时监控运行状态。

现在有各种各样的 工具 都可以对 Redis 进行监控,例如:redis-stat、RedisLive等,在使用过各种各样的监控工具后,个人感觉redis_exporter较为好用,配合Prometheus+Grafana,不仅监控灵活、展现直观还可以进行自行封装来获取各种特别关注的数据指标。

今天就和大家分享redis-exporter+Grafana+Prometheus构建Redis实时监控。

使用Prometheus和Grafana构建Redis实时监控平台

由于在物理机中搭建redis-exporter+Grafana+Prometheus较为繁琐,下面直接利用 Docker 来搭建这一套监控体系作为实例。不熟悉Docker也不要紧,这里只是熟悉监控流程。

搭建准备

启动Redis实例

首先准备两个Redis作为监控实例,打开Docker Hub官网搜索Redis,会有启动Redis实例的命令提示,这里按照最简单的方法启动两个Redis(后台运行的方式按照最新的redis镜像启动两个名为redis1/redis2的容器实例):

网站地址: https://hub.docker.com/_/redis

➜ ~ docker run -d --name redis1 redis

➜ ~ docker run -d --name redis2 redis

Redis实例准备好了以后我们需要查看并记录容器所属的IP地址,以便redis_exporter来监控。

➜ ~ docker inspect redis1|grep IPAddress 172.17.0.5

➜ ~ docker inspect redis2|grep IPAddress 172.17.0.6

Grafana端口映射

准备监控数据展示工具Grafana。

➜ ~ docker run -d --name=grafana -p 3000:3000 grafana

这里由于需要在外部访问Grafana图形展示工作,所以做个端口映射,将物理机的3000端口和容器Grafana的3000端口关联起来。

配置redis_exporter

准备数据采集工具redis_exporter,这里默认监听端口9121。

➜ ~ docker run -d --name redis_exporter -p 9121:9121 oliver006/redis_exporter --redis.addr=172.17.0.5:6379,172.17.0.6:6379

--redis_addr为redis_exporter指定参数,可以指定多个监控的Redis地址,以逗号分隔,这里填入之前两个Redis的地址。

准备数据抓取工具Prometheus

这里需要提前准备Prometheus配置文件,抓取redis_exporter收集到的数据,最简单的配置如下图所示:

➜ ~ docker run -d --name prome -p 9090:9090 -v /tmp/prometheus.yml:/tmp/prometheus.yml quay.io/prometheus/prometheus --config.file=/tmp/prometheus.yml

这里根据普罗米修斯镜像创建一个prome的容器,同时将物理机的/tmp/prometheus.yml文件挂载到容器的/tmp下,将这个/tmp/prometheus.yml作为容器prome的启动配置文件。配置文件内容如下图:

使用Prometheus和Grafana构建Redis实时监控平台

这里创建了两个抓取数据的任务:

  • 监控本容器的9090端口即容器prome本身的数据
  • 监控容器redis_exporter的9121端口获取数据。

前为止我们创建了五个容器,如下图所示:

使用Prometheus和Grafana构建Redis实时监控平台

使用Grafana做图表展示

下面开始创建监控数据展示图,由于创建容器时已经将容器端口于物理机端口映射起来,我们可以直接利用127.0.0.1:port来访问容器内的服务。

配置Prometheus监控数据源

例如访问 http://127.0.0.1:3000 来访问Grafana图形展示工具,默认用户密码均为admin,登录进去以后配置grafana数据来源,Choose data source type中点击选择Prometheus。

下一步配置数据源名称prometheus-redis和url地址,这里的数据源是本机里面的容器prome抓取上来的数据,所以url地址填默认选项即可。

现在就可以创建监控数据展示图了,监控数据的监控是由redis_exporter这个服务决定的,我们访问 http://127.0.0.1:9121/metrics 时可以发现很多数据,可以理解为key-value的形式,key是数据查询维度,value是值。

例如数据维度是redis_up,那么我们可以在访问 http://127.0.0.1:9090 执行redis_up这个数据查询指标抓取数据的值,如下图所示:

使用Prometheus和Grafana构建Redis实时监控平台

创建监控图表

接下来我将利用prome抓取的数据在Grafana上创建一个监控Redis运行时间的展示图形,相关配置如下图,可以自行学习Grafana和Prometheus相关知识来配置各种各样的监控图形及告警相关内容。

下图中一个简单的监控Redis启动时间的图形就构建完成了。

使用Prometheus和Grafana构建Redis实时监控平台

如果嫌一个个配置监控图麻烦,也可以利用开源已有的模板来构建redis监控图,将 https://grafana.com/api/dashbo ... nload 监控模板导入即可:

使用Prometheus和Grafana构建Redis实时监控平台

填入url后自动跳转到监控面板名称、数据源填写页面:

使用Prometheus和Grafana构建Redis实时监控平台

查看监控数据

load以后现成的监控图就有了,Redis命中率、Redis数据量、Redis内存、Redis命令执行相关的监控应有尽有,可以自行修改监控指标来满足业务需求。最终监控成品如下图:

使用Prometheus和Grafana构建Redis实时监控平台

Prometheus+Grafana是一套十分强大的监控工具,这里仅仅是收集了redis_exporter采集的数据监控Redis作为示例,我们还可以添加其他数据采集工具来监控更多的业务,有兴趣的小伙伴可以自行研究。

原文链接: https://mp.weixin.qq.com/s/owLEh9spiSFOMeqJPOVaEw


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

设计沟通十器

设计沟通十器

Daniel M. Brown / 樊旺斌 / 机械工业出版社 / 2008-12 / 49.00元

本书提供了网站设计时所需的可交付文档资料包括:概念模型,站点地图,可用性报告等,这些文档资料是设计人员和客户进行交流的主要工具。本书深入讨论了文档推介和风险规避技巧,向你展示了如何将文档资料按要求制作成有效的交流工具。 本书内容全面,结构清晰,讲解详细。可作为网站设计人员的参考用书。 关于网站设计的多数讨论好像都着眼于流程的创建,然而,要想把概念变为现实,需要一整套强大的可交付文档资料......一起来看看 《设计沟通十器》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具