当前位置: 首页 > news >正文

超级实用,解密云原生监控技术,使用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 查看结果
  • 总结

一. 实验环境

本次实验环境见下表

操作系统服务器IPhostname
centos7.910.0.0.7mufengrow7

如何查看相应的参数

二. 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启动状态

使用psss命令查看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.addrredis的监听地址,默认是“redis://localhost:6379”
-redis.passwordredis密码,默认是无密码
-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检查和修改归档位置&#xff1…...

使用 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均失效。 常…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...