Prometheus实战篇:Prometheus监控redis
准备环境
docker-compose安装redis
docker-compose.yaml
version: '3'
services:redis:image:redis:5container_name: rediscommand: redis-server --requirepass 123456 --maxmemory 512mbrestart: alwaysvolumes:- /data/redis/data: /dataport:- "6379:6379"
docker-compose up -d
监控redis
docker安装exporter
docker直接运行
docker run -d --name redis_exporter -p 9121:9121 oliver006/redis_exporter --redis.addr redis://localhost:6379 --redis.password '123456'
docker-compose方式
cat >docker-compose.yaml <<FOF
version: '3.3'
services:redis_exproter:image:oliver006/redis-exportercontainer_name: redis_exporterrestart: alwaysenvironment:REDIS_ADDR:"localhost:6379"REDIS_PASSWORD: 123456port:- "9113:9113"
EOF
启动
docker-compose up -d
检查
查看正在运行的容器
docker ps或者:查看redis_exporter容器的运行日志
docker logs -f redis_exporter
参数解释
| Environment variable | 值 | 描述 |
|---|---|---|
| REDIS_ADDR | localhost:6379 | redis服务地址 |
| REDIS_PASSWORD | 123456 | redis服务密码 |
metrics地址
安装好Exporter后会暴露一个/metrics结尾的服务
| 名称 | 地址 |
|---|---|
| redis_exporter | http://localhost:9121/metrics |
Prometheus配置
配置Prometheus去采集(拉取)nginx_exporter的监控样本数据
cd /data/docker-prometheus# 在scrapc_configs(搜刮配置):下面增加如下配置:
cat >prometheus/prometheus.yml <<FOF- job_name: 'redis_exporter'static_configs:- targets: ['localhost:9121']labels:instance: test服务器
EOF
重新加载配置
curl -x POST http://localhost:9090/-/reload
检查

常用的redis监控指标
redis_up 服务器是否在线
redis_uptime_in_seconds 运行时长,单位s
rate(redis_cpu_sys_seconds_total[1m])+rate(redis_cpu_user_seconds_total[1m]) 占用CPU核数
redis_memory_used_bytes 占用内存量
redis_memory_max_bytes 限制的最大内存,如果没限制则为0
delta(redis_net_input_bytes_total[1m]) 网络接受的bytes
delta(redis_net_output_bytes_total[1m]) 网络发送的bytesredis_connected_clients 客户端连接数
redis_connected_clients / redis_config_maxclients连接数使用率
redis_rejected_connections_total拒绝的客户端连接数
redis_connected_slavesslave连接数
触发器配置
由于之前的触发器是全部写在了一个yml里面就是alert.yam,这样随着后面配置的触发器越来越多最终会变得难以维护.这里我们让它去读rules目录下所有的yml文件即可
Prometheus配置
rule_files:- "alert.yml"- "rules/*.yml"
配置redis触发器
因为是单机所以未配置集群的触发器
cat >prometheus/redis.yml <<FOF
groups:
- name: redisrules:- alert: RedisDownexpr: redis_up ==0for: 0mlabels:severity: criticalannotations:summary: "redis Down,实例:{{$labels.instance }}"description: "Redis实例 is down"- alert: RedisMissingBackupexpr: time() - redis_rdb_last_save_timestamp_seconds > 60 * 60 * 24for: 0mlabels:severity: criticalannotations:summary: "redis 备份丢失,实例:{{$labels.instance }}"description: "Redis 24小时未备份"- alert: RedisOutOfConfigredMaxmemoryexpr: redis_memory_used_bytes / redis_memory_max_bytes * 100 >90for: 2mlabels:severity: warningannotations:summary: "redis超出配置的最大内存,实例:{{$labels.instance }}"description: "Redis内存使用超过配置的最大内存的90%"- alert: RedisTooManyConnectionsexpr: redis_connected_clients > 100for: 2mlabels:severity: warningannotations:summary: "redis连接数过多,实例:{{$labels.instance }}"description: "Redis当前连接数为:{{ $value }}"- alert: RedisNotEnoughConnectionsexpr: redis_connected_clients < 1for: 2mlabels:severity: warningannotations:summary: "redis没有足够的连接,实例:{{$labels.instance }}"description: "Redis当前连接数为:{{ $value }}"- alert: RedisRejectedConnectionsexpr: increase(redis_rejected_connections_total[1m]) > 0for: 0mlabels:severity: criticalannotations:summary: "redis有拒绝连接,实例:{{$labels.instance }}"description: "与Redis的某些连接被拒绝:{{ $value }}"EOF
一定记住这里需要仔细校对yaml语法,最好是能去在线验证yaml语法的网站上看看.yaml语法还是比较严格的一点缩进错误都不能有
检查配置
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml
重新加载配置
curl -x POST http://localhost:9090/-/reload
检查
http://localhost:9090/alerts?search=
或:
http://localhost:9090/rules
dashboard
grafana展示Prometheus从redis_exporter收集到的数据
id :11835

相关文章:
Prometheus实战篇:Prometheus监控redis
准备环境 docker-compose安装redis docker-compose.yaml version: 3 services:redis:image:redis:5container_name: rediscommand: redis-server --requirepass 123456 --maxmemory 512mbrestart: alwaysvolumes:- /data/redis/data: /dataport:- "6379:6379"dock…...
Vue2.Hello World
步骤: 准备容器引包(开发版本/生产版本)创建实例new Vue()添加配置项 el指定挂载点data提供数据 准备容器 就是新建一个div标签 引包 vue2版本中文文档:https://v2.cn.vuejs.org/v2/guide/ 尝试 Vue.js 最简单的方法是使用 …...
【单片机项目实战】温度控制系统
本项目的主要作用是实现温度调控,通过设定一个预定的温度值,实现实时检测外界温度,当外界温度小于预定值时,电机正转,实现降温效果;当外界温度大于预定值时,电机反转,实现升温效果&a…...
SpringMVC-视图
SpringMVC中的视图实现了View接口,作用是渲染数据,将Model中的数据展示给用户。render是渲染方法,可以看到渲染的视图是一个View类型的对象。 SpringMVC视图的种类有很多,默认有转发视图和重定向视图。 如果配置了Thymeleaf视图解…...
【React系列】Hook(一)基本使用
本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 认识hook 1.1. 为什么需要hook Hook 是 React 16.8 的新增特性,它可以让我们在不编写class的情况下…...
算法训练营Day28
#Java #贪心 开源学习资料 Feeling and experiences: 这周来到了贪心算法,简要概述: 贪心算法是一种在每个步骤中都采取最优解(即,在当前看来最好的解)的算法设计策略。它通常用于求解优化问题。这种方…...
鸿蒙OS应用开发之日期选择
前面学习了时间选择组件,实现了时间的选择,这样非常方便用户进行时间的输入,通过手动就可以输入时间,比直接文本输入要省不少时间,特别对于手机这样单手操作的设备,更加重要了。因此,日期的输入工作也不能落后,本文将要学习日期选择组件,这样就可以实现日期通过手上下…...
Mysql 查看表注释或字段注释
查看所有表的注释 SELECT table_name 表名, table_comment 表说明 FROM information_schema.TABLES WHERE table_schema ‘数据库名’ ORDER BY table_name 查询所有表及字段的注释 SELECT a.table_name 表名, a.table_comment 表说明, b.COLUMN_NAME 字段名, b.column_commen…...
MySQL InnoDB引擎
1、逻辑存储结构 2、架构 a. 内存结构 Change Buffer的意义是什么? 与聚集索引不同,二级索引通常是非唯一的,并且以相对随机的顺序插入二级索引。同样,删除和更新可能会影响索引树中不相邻的二级索引页,如果每一次都操作磁盘&am…...
C++完成Query执行sql语句的接口封装和测试
1、在LXMysql.h 创建Query执行函数 //封装 执行sql语句 if sqllen 0 strlen获取字符长度bool Query(const char*sql,unsigned long sqllen0); 2、在LXMysql.cpp编写函数 bool LXMysql::Query(const char* sql, unsigned long sqllen){if (!mysql)//如果mysql没有初始化好{c…...
C:宏:编程风格:井号与define之间的空格
在这一篇中有提到,井号与define之间空格,可能导致搜索上的一些问题。 https://mzhan017.blog.csdn.net/article/details/135289451 今天看到有专门做这个空格的修改: https://sourceware.org/git/?pglibc.git;acommitdiff;hfcf70d4114db9ff…...
django websocket
目录 核心代码 consumers.py from channels.generic.websocket import WebsocketConsumer from channels.exceptions import StopConsumer import datetime import time from asgiref.sync import async_to_sync class ChatConsumer(WebsocketConsumer):def websocket_conne…...
HackTheBox - Medium - Linux - Bagel
Bagel 今天我开始了《Red Team Development and Operations A Practical Guide》的学习,保持学习,后面差不多到时机后就学CRTOⅡ Bagel 是一款中等难度的 Linux 机器,其特点是电子商店容易受到路径遍历攻击,通过该攻击可以获取应…...
Capsolver:解决Web爬虫中CAPTCHA挑战的最优解决方案
Web爬虫已经成为从各种在线来源提取和分析数据的不可或缺的技术。然而,在Web爬取过程中,经常会遇到的一个共同挑战是CAPTCHA。CAPTCHA(完全自动化的公共图灵测试,用于区分计算机和人类)是一种安全措施,旨在…...
大数据系列之:读取parquet文件统计数据量
大数据系列之:读取parquet文件统计数据量 一、Spark读取parquet文件统计数据量二、parquet-tools统计parquet文件数据量三、实际应用案例 一、Spark读取parquet文件统计数据量 首先,创建一个 SparkSession 对象: val spark SparkSession.b…...
力扣题:字符串变换-1.5
力扣题-1.5 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:482. 密钥格式化 解题思想:首先先将破折号去除,并将所有字母转换为大写,然后计算第一组的长度,进行结果字符串的拼接,如果第一组的长度为0,则需要删除开头的’-符号 class S…...
el-autocomplete远程搜索使用及el-upload上传多个文件流给后端,详情接口返回的是文件地址,前端将文件地址转成文件流,回传文件流给后端
最近遇到一个项目,里面有2个需求我觉得挺常见的,第一个需求是一个表单里,当用户在输入名称后,前端调接口发请求获取到关联名称的企业名称,并展示,然后当用户选中企业后,前端调接口获取选中企业的具体信息,并填充到表单里;第二个需求是,表单里有个上传图片的功能,前端…...
2024年度 ROTS - 实时操作系统 Top 15
RTOS(实时操作系统)。 这里说的 RTOS 并非新星球大战电影中的机器人,而是物联网设备、航空系统、空中交通管制等背后的无声协调者,就在地球上。 RTOS,或称实时操作系统,设计它们是为了更好的管理资源&…...
苹果怎么同步备忘录?教程来了,干货满满!
在苹果设备中,备忘录是一款非常实用的应用程序,可用于记录日常生活中的各种事项。然而,还有一些小伙伴不知道苹果怎么同步备忘录,这可能会成为他们的一个困扰。别着急!本文将详细介绍同步苹果手机备忘录的方法…...
Nginx(十八) 性能调优之 - 哪些层面可以进行优化
Nginx三大优势,动静分离、反向代理、负载均衡 1、线程 worker 2、http/tcp tcp_nopush tcp_nodelay 3、Buffer 调整请求体缓存区大小、将请求体缓存到一个缓冲区,降低CPU负载 4、连接队列 5、超时时间 6、静态文件缓存 open_file_cache 7、gzip压…...
哔哩下载姬DownKyi实用指南:从新手到高手的进阶之路
哔哩下载姬DownKyi实用指南:从新手到高手的进阶之路 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等…...
【限时开放】Mojo-Python互操作安全边界图谱(2024 Q3最新CVE影响评估+3类高危反模式代码扫描规则),错过将无法适配Mojo v1.2+运行时
第一章:Mojo-Python互操作安全边界图谱概览Mojo 作为面向 AI 原生开发的系统级编程语言,其与 Python 的互操作并非简单语法兼容,而是在运行时、内存模型、类型系统与异常传播四个维度上构建了显式、可审计的安全边界。这些边界共同构成一张动…...
跨平台文件同步:OpenClaw+nanobot自动管理NAS文档
跨平台文件同步:OpenClawnanobot自动管理NAS文档 1. 为什么需要自动化文件管理? 作为一个长期被多设备文件同步问题困扰的用户,我一直在寻找一个既安全又灵活的解决方案。我的日常工作涉及MacBook、Windows台式机和家庭NAS之间的文件流转&a…...
射频电路50Ω阻抗匹配原理与工程实践
射频电路中50Ω阻抗匹配的工程学解析1. 射频传输线阻抗标准的历史渊源1.1 同轴电缆的阻抗优化历程1929年贝尔实验室的系列实验揭示了同轴电缆的两个关键阻抗值:30欧姆可实现最大功率传输,77欧姆则对应最小传输损耗。这两个数值的算术平均值为53.5欧姆&am…...
永磁同步电机全速域无位置传感器控制策略仿真研究:高频注入与改进滑膜控制方法应用
40、永磁同步电机全速域无位置传感器控制仿真(仿真代码参考文献说明文档) 主要内容: 采用高频注入改进滑膜控制方法,PMSM矢量控制仿真 [1]零低速域,采用无数字滤波器高频方波注入法,减少滤波的相位影响&…...
2026年03月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析
本文收录于《Scratch等级认证CCF-GESP图形化真题解析》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 3 分,共 30 分) 第 1 题 在 2026 年春晚的《武 BOT》节目中,一群机器人表演空翻:它们落地后晃一下又能站稳,还会移动保持队形整齐。如果…...
从C语言到裸机运行:i.MX6ULL 的 GPIO 控制与编译链接过程分析
引言在嵌入式系统开发中,从高级语言到硬件控制的完整链路涉及编译、链接、寄存器配置等多个环节。本文基于 i.MX6ULL 平台,以 C 语言实现 LED 与蜂鸣器控制为例,系统分析 ARM 裸机开发中的编译工具链使用、链接脚本的作用,以及 GP…...
企业Exchange邮箱配置失败?可能是Autodiscover服务出了问题,教你用微软官方工具排查
企业Exchange邮箱自动配置故障深度排查指南 引言 当企业用户或IT管理员遇到Outlook无法自动配置Exchange邮箱的问题时,往往意味着Autodiscover服务出现了异常。作为Exchange生态系统的核心组件,Autodiscover服务负责在客户端与服务器之间建立初始连接通…...
Google与Cohere发布新一代音频AI模型
Google LLC和Cohere Inc.今日发布了专为音频处理任务优化的新人工智能模型。这家搜索巨头的算法Gemini 3.1 Flash Live能够自动化客户服务交互。Cohere的新AI模型则专为语音转录而设计。两款模型的输出质量都比其前代产品有显著提升。企业可使用Gemini 3.1 Flash Live构建语音智…...
突破VMware限制:在非苹果硬件上构建macOS开发环境完全指南
突破VMware限制:在非苹果硬件上构建macOS开发环境完全指南 【免费下载链接】unlocker 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 实现跨平台macOS体验:VMware Unlocker核心价值解析 当开发者需要在Windows或Linux工作站上构建m…...
