超级实用,解密云原生监控技术,使用prometheus轻松搞定redis监控
前言
大家好,我是沐风晓月,本文收录于《 prometheus监控系列》 ,截止目前prometheus专栏已经更新到第8篇文章。
本文中的是prometheus已经安装好,如果你还未安装,可以参考
- prometheus安装及使用入门
若你想监控其他服务可以参考:
- 监控远程主机: 云原生系列之使用 prometheus监控远程主机实战
- 监控MySQL: 云原生系列之使用 prometheus监控MySQL实战
- 监控nginx : 云原生系列之使用prometheus监控nginx
- 监控tomcat :
【云原生】prometheus结合jmx exporter 的http server模式采集tomcat监控实战
【云原生】prometheus结合jmx exporter 的java agent模式采集tomcat监控实战
如果你想实现更炫酷的可视化效果:
- 【云原生】promehtheus整合grafana实现可视化监控实战
想学习更多prometheus内容,可以关注沐风晓月 的专栏:prometheus监控系列
文章目录
- 前言
- 一. 实验环境
- 二. redis_exporter简介
- 2.1 什么是redis_exporter呢?
- 2.2 在哪里可以下载redis_exporter呢?
- 三. 安装redis
- 3.1 安装redis
- 3.2 修改redis的配置文件
- 3.3 启动redis
- 3.4 查看redis启动状态
- 四. 安装redis_exporter
- 4.1 下载redis_exporter
- 4.2 解压安装包并创建软连接
- 4.3 查看redis_exporter的帮助
- 4.4 添加redis_exporter的启动文件
- 4.5 创建运行redis_exporter的用户
- 4.6 修改redis_exporter目录所属
- 4.7 启动redis_exporter并设置开机启动
- 4.8 查看redis_exporter启动状态
- 4.9 查看redis_exporter监控的数据
- 五. 配置prometheus采集redis_exporter数据
- 5.1 修改prometheus配置文件
- 5.2 检查prometheus配置文件的语法
- 5.3 让prometheus重新读取配置文件
- 六. 查看prometheus监控的数据
- 6.1 查看prometheus监控的目标
- 6.2 查看prometheus是否采集到redis_exporer暴露的数据
- 七. 导入grafana模板
- 7.1 导入模板
- 7.2 查看结果
- 总结
一. 实验环境
本次实验环境见下表
| 操作系统 | 服务器IP | hostname |
|---|---|---|
| centos7.9 | 10.0.0.7 | mufengrow7 |
如何查看相应的参数
二. redis_exporter简介
2.1 什么是redis_exporter呢?
我们都知道redis是由C语言编写的一款高性能的NoSQL,无论在生产,测试,还是在开发的环境都可以用的上。所以对redis的监控就由为重要,而redis_exporter就是一个对redis实行实时监控的一款开源监控软件。
redis_exporter是由go语言开发的软件,并且prometheus官方推荐的一个第三方采集redis数据的exporter。
该exporter支持多个版本的redis,如:2.x,3.x,4.x,5.x,6.x和7.x。也就是说现在主流版本的redis,redis_exporter都支持。

2.2 在哪里可以下载redis_exporter呢?
在我们进入到prometheus的下载页面时,发现根本没有“redis_exporter”的下载连接。
既然没有提供redis_rxporter的下载链接,为什么上面会说redis_exproter是prometheus官方推荐用来监控的exporer呢?
其实在官方的下载页面里,第二段话里说明了prometheus官方推荐的的exproter。我们可以点击Exporters and integrations链接,进入该页面,就可以找到redis_exporter的下载页面。

点击进入页面,在“Databases”模块里找到redis_exporter,点击连接就可以进入redis_的github页面。

为了方便大家,这里沐风晓月直接把redis_exporter的github地址链接给贴出来,大家可以点击“redis_exporter”的链接复制下面的链接进行访问
https://prometheus.io/docs/instrumenting/exporters/
三. 安装redis
本次实验安装的redis的版本是3.2.12,通知也是centos7仓库的默认版本

3.1 安装redis
使用yum命令直接安装redis
[root@mufengrow7 ~]# yum install -y redis
看见Installed就说明redis安装完成

3.2 修改redis的配置文件
修改配置文件主要是修改redis的监听地址(redis默认的监听地址是127.0.0.1)和给redis添加密码(redis默认没有密码)。
[root@mufengrow7 ~]# vim /etc/redis.conf
#修改以下内容
bind 127.0.0.1
改为
bind 0.0.0.0 #修改监听地址# requirepass foobared
修改为
requirepass 123456 #给redis添加密码
3.3 启动redis
使用systemctl命令启动redis
[root@mufengrow7 ~]# systemctl restart redis
3.4 查看redis启动状态
使用ps和ss命令查看redis的进程和监听地址
#查看进程
[root@mufengrow7 ~]# ps -ef | grep redis | grep -v grep
redis 1813 1 0 15:48 ? 00:00:00 /usr/bin/redis-server 0.0.0.0:6379
#查看监听地址
[root@mufengrow7 ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:6379 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 [::]:9090 [::]:*
LISTEN 0 128 [::]:22 [::]:*
四. 安装redis_exporter
4.1 下载redis_exporter
进入到redis_exporter的github页面,点击右方的“Releases”,就可以选择redis_exporterr的版本进行下载。

我们下载最新版本的redis_exporter
#创建安装目录
[root@mufengrow7 ~]# mkdir -p /apps
#进入安装目录
[root@mufengrow7 ~]# cd /apps/
#使用“wget”命令进行下载
[root@mufengrow7 apps]# wget https://github.com/oliver006/redis_exporter/releases/download/v1.48.0/redis_exporter-v1.48.0.linux-amd64.tar.gz
4.2 解压安装包并创建软连接
这里给redis_exporter创建软连接是方便以后对redis_exporter进行升级换代。如果嫌麻烦这一步可以忽略。
[root@mufengrow7 apps]# tar zxf redis_exporter-v1.48.0.linux-amd64.tar.gz
[root@mufengrow7 apps]# ln -sv /apps/redis_exporter-v1.48.0.linux-amd64 /apps/redis_exporter
‘/apps/redis_exporter’ -> ‘/apps/redis_exporter-v1.48.0.linux-amd64’
4.3 查看redis_exporter的帮助
[root@mufengrow7 apps]# cd redis_exporter
[root@mufengrow7 redis_exporter]# ./redis_exporter --help
从上面查看帮助的结果可以看到redis_exporter的选项是非常多,在这里,沐风晓月挑选了几个常用的选项来给大家说明。
| 参数 | 说明 |
|---|---|
| -web.listen-address | 设置redis_exporter监听端口,默认是“:9121” |
| -web.telemetry-path | 设置暴露指标的路径,默认是“/metrics” |
| -redis.addr | redis的监听地址,默认是“redis://localhost:6379” |
| -redis.password | redis密码,默认是无密码 |
| -redis-only-metrics | 是否要输出运行时指标 |
4.4 添加redis_exporter的启动文件
[root@mufengrow7 redis_exporter]# vim /usr/lib/systemd/system/redis_exporter.service
[Unit]
Description=Prometheus exporter for machine metrics
Documentation=https://github.com/prometheus/node_exporter
After=network.target[Service]
ExecStart=/apps/redis_exporter/redis_exporter -redis.password 123456
ExecReload=/bin/kill -HUP $MAINPID
User=prometheus
Restart=always
TimeoutStopSec=20s
SendSIGKILL=no[Install]
WantedBy=multi-user.target
4.5 创建运行redis_exporter的用户
[root@mufengrow7 redis_exporter]# useradd -M -r -s /sbin/nologin prometheus
代码注释:
-M:不创建登录的家目录
-r:建立系统用户
-s:指定登录的shell类型
4.6 修改redis_exporter目录所属
[root@mufengrow7 redis_exporter]# chown -R prometheus.prometheus /apps/redis_exporter-v1.48.0.linux-amd64
4.7 启动redis_exporter并设置开机启动
#读取service文件
[root@mufengrow7 redis_exporter]# systemctl daemon-reload
#启动redis_exporter
[root@mufengrow7 redis_exporter]# systemctl start redis_exporter.service
#设置redis_exporter开机启动
[root@mufengrow7 redis_exporter]# systemctl enable redis_exporter.service
Created symlink from /etc/systemd/system/multi-user.target.wants/redis_exporter.service to /usr/lib/systemd/system/redis_exporter.service.
4.8 查看redis_exporter启动状态
[root@mufengrow7 redis_exporter]# ps -ef | grep redis_exporter | grep -v grep
prometh+ 1972 1 0 16:52 ? 00:00:00 /apps/redis_exporter/redis_exporter -redis.password 123456
[root@mufengrow7 redis_exporter]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:6379 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 [::]:9121 [::]:*
LISTEN 0 128 [::]:9090 [::]:*
4.9 查看redis_exporter监控的数据
浏览器访问:
10.0.0.7:9121/metrics
下面为redis_exporter采集到的部分数据

五. 配置prometheus采集redis_exporter数据
5.1 修改prometheus配置文件
修改的方式如图:

5.2 检查prometheus配置文件的语法
检查结果出现“SUCCESS”证明语法没问题,可以让prometheus重新读取文件
[root@mufengrow7 prometheus]# ./promtool check config prometheus.yml
Checking prometheus.ymlSUCCESS: prometheus.yml is valid prometheus config file syntax
5.3 让prometheus重新读取配置文件
[root@mufengrow7 prometheus]# systemctl restart prometheus.service
六. 查看prometheus监控的数据
6.1 查看prometheus监控的目标
我们到prometheus的网页端的Targets查看prometheus是否能能连接上redis_exporter。

6.2 查看prometheus是否采集到redis_exporer暴露的数据
我们到prometheus网页端的Graph,搜索redis_exporter的监控项,查看prometheus是否采集到数据。
通过下面的查询,我们确定了prometheus已经有采集到redis_exporter的数据。
- 查看“redis_instance_info”数据

- 查看“redis_uptime_in_seconds”

- 查看“redis_db_keys”

七. 导入grafana模板
本文中的grafana已经安装好了,如果你还未安装,可以参考文章:promehtheus整合grafana实现可视化监控实战
7.1 导入模板
grafana推荐模板:763
以编号763为例:
- 输入模板编号,点击右方的Load

- 选择prometheus的数据源,点击Import导入模板

7.2 查看结果
以下是编号为“763”模板的结果,如果目标有什么问题可以自行修改

总结
prometheus的专栏持续更新中,欢迎留言跟我一起讨论,点赞收藏吧
💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
💕 博客主页:mufeng.blog.csdn.net
💕 本文由沐风晓月原创,首发于CSDN博客
💕 全力以赴,持续学习,不负如来不负卿,喜欢的话记得点赞收藏哦
相关文章:
超级实用,解密云原生监控技术,使用prometheus轻松搞定redis监控
前言 大家好,我是沐风晓月,本文收录于《 prometheus监控系列》 ,截止目前prometheus专栏已经更新到第8篇文章。 本文中的是prometheus已经安装好,如果你还未安装,可以参考 prometheus安装及使用入门 若你想监控其他…...
音视频开发—MediaCodec 解码H264/H265码流视频
使用MediaCodec目的 MediaCodec是Android底层多媒体框架的一部分,通常与MediaExtractor、MediaMuxer、AudioTrack结合使用,可以编码H264、H265、AAC、3gp等常见的音视频格式 MediaCodec工作原理是处理输入数据以产生输出数据 MediaCodec工作流程 Med…...
CVPR 2023|淘宝视频质量评价算法被顶会收录
近日,阿里巴巴大淘宝技术题为《MD-VQA: Multi-Dimensional Quality Assessment for UGC Live Videos》—— 适用于无参考视频质量评价的最新研究成果被计算机视觉领域顶级会议IEEE/CVF Computer Vision and Pattern Recognition Conference 2023(CVPR 20…...
【C++学习】继承
🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! C是面向对象的编程语言,它有很多的特性,但是最重要的就是封装,继承…...
【03173】2020年8月高等教育自学考试-软件开发工具
一、单项选择题:1. 区别于一般软件,对软件开发工具而言,下列各项最重要的性能是 A. 效率 B. 响应速度C. 资源消耗 D. 使用方便2. 在软件开发过程的信息需求中,属于跨开发周期的信息是A. 有关系统环境的需求信息 B. 有关软件设计的…...
Java中的String类
String类1.String类1.1 特性1.2 面试题1.3 常用方法1.4 String与其他类型之间的转换2. StringBuilder类、StringBuffer类:可变字符序列1.String类 1.1 特性 String类为final类,不可被继承,代表不可变的字符序列; 实现了Serializ…...
【java】笔试强训Day3【在字符串中找出连续最长的数字串与数组中出现次数超过一半的数字】
目录 ⛳选择题 1.以下代码运行输出的是 2.以下程序的输出结果为 3.下面关于构造方法的说法不正确的是 ( ) 4.在异常处理中,以下描述不正确的有( ) 5.下列描述中,错误的是( ) 6.…...
一文7个步骤从0到1教你搭建Selenium 自动化测试环境
【导语】Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。本文详细介绍了搭建自动化测试环境所需的工具,让你学习自动化测试不…...
Oracle目录应急清理
Oracle目录应急清理清理错误位置的归档日志清理30天前的监听告警日志清理监听日志清理30天以前的trace文件清理30天以前的审计日志清理错误位置的归档日志 检查$ORACLE_HOME/dbs下是否有归档文件: ls $ORACLE_HOME/dbs/arch* | wc -l检查和修改归档位置࿱…...
使用 OBS 进行区域录制
1. OBS 与区域录屏 实际上 OBS 的使用场景可谓是与区域录屏格格不入的。 虽然我们依旧有一些办法在 OBS 中达到区域录屏的目的,但其操作实在过于繁琐,还不如直接使用 QQ 或者 Windows 最新的自带截屏录屏来进行区域录屏来的方便实在。 但若非常强烈的…...
aws eks 配置授权额外的用户和角色访问集群
参考资料 https://github.com/kubernetes-sigs/aws-iam-authenticator#full-configuration-formathttps://docs.amazonaws.cn/zh_cn/eks/latest/userguide/add-user-role.html 众所周知,aws eks使用 Authenticator 或者 aws 命令来进行账户级别的用户和角色的授权…...
MagicalCoder可视化开发平台:轻松搭建业务系统,为企业创造更多价值
让软件应用开发变得轻松起来,一起探索MagicalCoder可视化开发工具的魔力!你是否为编程世界的各种挑战感到头痛?想要以更高效、简单的方式开发出专业级的项目?MagicalCoder低代码工具正是你苦心寻找的产品!它是一款专为…...
8个不能错过的程序员必备网站,惊艳到我了!!!
程序员是一个需要不断学习的职业,不少朋友每天来逛CSDN、掘金等网站,但一直都抱着“收藏从未停止,学习从未开始”的态度,别骗自己了兄弟。在编程体系中,有很多不错的小工具,可以极大得提升我们的开发效率。…...
Mybatis(二):实现“增删改查”
Mybatis(二):实现“增删改查”前言一、MyBatis的增删改查1、添加2、修改3、删除4、查询4.1 查询一个实体4.1 查询集合二、MyBatis获取参数值的两种方式(重点)1、单个字面量类型的参数2、多个字面量类型的参数3、map集合…...
Faster RCNN 对血液细胞目标检测
目录 1. 介绍 2. 工具函数介绍 utils 2.1 xml 文件的读取 get_label_from_xml 2.2 绘制边界框 draw_bounding_box...
【数据结构】Java实现栈
目录 1. 概念 2. 栈的使用 3. 自己动手实现栈(使用动态数组实现栈) 1. 创建一个MyStack类 2. push入栈 3. pop出栈 4. 查看栈顶元素 5. 判断栈是否为空与获取栈长 6. toString方法 4. 整体实现 4.1 MyStack类 4.2 Test类 4.3 测试结果 1.…...
【数据结构】排序
作者:✿✿ xxxflower. ✿✿ 博客主页:xxxflower的博客 专栏:【数据结构】篇 语录:⭐每一个不曾起舞的日子,都是对生命的辜负。⭐ 文章目录1.排序1.1排序的概念1.2常见的排序算法2.常见排序算法2.1插入排序2.1.1直接插入…...
过拟合、验证集、交叉验证
过拟合 简单描述:训练集误差小,测试集误差大,模型评估指标的方差(variance)较大; 判断方式: 1、观察 train set 和 test set 的误差随着训练样本数量的变化曲线。 2、通过training accuracy 和…...
原力计划来了【协作共赢 成就未来】
catalogue🌟 写在前面🌟 新星计划持续上新🌟 原力计划方向🌟 原力计划拥抱优质🌟 AIGC🌟 参加新星计划还是原力计划🌟 创作成就未来🌟 写在最后🌟 写在前面 哈喽&#x…...
一文了解Jackson注解@JsonFormat及失效解决
背景 项目中使用WRITE_DATES_AS_TIMESTAMPS: true转换日期格式为时间戳未生效。如下: spring:jackson:time-zone: Asia/Shanghaiserialization:WRITE_DATES_AS_TIMESTAMPS: true尝试是否关于时间的注解是否会生效,使用JsonForma和JsonFiled均失效。 常…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...
13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析
LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析 LanguageMentor 对话式训练系统架构与实现 关键词:多轮对话系统设计、场景化提示工程、情感识别优化、LangGraph 状态管理、Ollama 私有化部署 1. 对话训练系统技术架构 采用四层架构实现高扩展性的对话训练…...
StarRocks 全面向量化执行引擎深度解析
StarRocks 全面向量化执行引擎深度解析 StarRocks 的向量化执行引擎是其高性能的核心设计,相比传统行式处理引擎(如MySQL),性能可提升 5-10倍。以下是分层拆解: 1. 向量化 vs 传统行式处理 维度行式处理向量化处理数…...
