Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Prometheus实战篇:Prometheus监控redis

Prometheus实战篇:Prometheus监控redis

原创
作者头像
全干程序员demo
发布于 2024-01-05 13:29:10
发布于 2024-01-05 13:29:10
8970
举报

准备环境

docker-compose安装redis

docker-compose.yaml

代码语言:yaml
AI代码解释
复制
version: '3'
services:
   redis:
 	image:redis:5
 	container_name: redis
 	command: redis-server --requirepass 123456 --maxmemory 512mb
 	 restart: always
 	 volumes:
 	 	- /data/redis/data: /data
 	 port:
 	 - "6379:6379"
代码语言:shell
AI代码解释
复制
docker-compose up -d

监控redis

docker安装exporter

docker直接运行

代码语言:shell
AI代码解释
复制
docker run -d --name redis_exporter -p 9121:9121 oliver006/redis_exporter --redis.addr redis://localhost:6379 --redis.password '123456'

docker-compose方式

代码语言:shell
AI代码解释
复制
cat >docker-compose.yaml <<FOF
version: '3.3'
services:
 redis_exproter:
 	image:oliver006/redis-exporter
 	container_name: redis_exporter
 	restart: always
 	environment:
 		REDIS_ADDR:"localhost:6379"
 		REDIS_PASSWORD: 123456
 	port:
 	 - "9113:9113"
EOF

启动

代码语言:shell
AI代码解释
复制
docker-compose up -d

检查

代码语言:shell
AI代码解释
复制
查看正在运行的容器
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的监控样本数据

代码语言:shell
AI代码解释
复制
cd /data/docker-prometheus

# 在scrapc_configs(搜刮配置):下面增加如下配置:
cat >prometheus/prometheus.yml <<FOF
 - job_name: 'redis_exporter'
   static_configs:
   - targets: ['localhost:9121']
   	 labels:
   	 	instance: test服务器 
EOF

重新加载配置

代码语言:shell
AI代码解释
复制
curl -x POST http://localhost:9090/-/reload

检查

常用的redis监控指标

代码语言:txt
AI代码解释
复制
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])	 				网络发送的bytes


redis_connected_clients									客户端连接数
redis_connected_clients / redis_config_maxclients
	连接数使用率
redis_rejected_connections_total
	拒绝的客户端连接数
redis_connected_slaves
	slave连接数

触发器配置

由于之前的触发器是全部写在了一个yml里面就是alert.yam,这样随着后面配置的触发器越来越多最终会变得难以维护.这里我们让它去读rules目录下所有的yml文件即可

Prometheus配置

代码语言:shell
AI代码解释
复制
rule_files:
	- "alert.yml"
	- "rules/*.yml"

配置redis触发器

因为是单机所以未配置集群的触发器

代码语言:shell
AI代码解释
复制
cat >prometheus/redis.yml <<FOF
groups:
- name: redis
	rules:
    - alert: RedisDown
      expr: redis_up ==0
      for: 0m
      labels:
        severity: critical
      annotations:
          summary: "redis Down,实例:{{$labels.instance }}"
          description: "Redis实例 is down"
    - alert: RedisMissingBackup
      expr: time() - redis_rdb_last_save_timestamp_seconds > 60 * 60 * 24
      for: 0m
      labels:
        severity: critical
      annotations:
          summary: "redis 备份丢失,实例:{{$labels.instance }}"
          description: "Redis 24小时未备份"
    - alert: RedisOutOfConfigredMaxmemory
      expr: redis_memory_used_bytes / redis_memory_max_bytes * 100 >90
      for: 2m
      labels:
        severity: warning
      annotations:
          summary: "redis超出配置的最大内存,实例:{{$labels.instance }}"
          description: "Redis内存使用超过配置的最大内存的90%"
    - alert: RedisTooManyConnections
      expr: redis_connected_clients > 100
      for: 2m
      labels:
        severity: warning
      annotations:
          summary: "redis连接数过多,实例:{{$labels.instance }}"
          description: "Redis当前连接数为:{{ $value }}"
    - alert: RedisNotEnoughConnections
      expr: redis_connected_clients < 1
      for: 2m
      labels:
        severity: warning
      annotations:
          summary: "redis没有足够的连接,实例:{{$labels.instance }}"
          description: "Redis当前连接数为:{{ $value }}"
    - alert: RedisRejectedConnections
      expr: increase(redis_rejected_connections_total[1m]) > 0
      for: 0m
      labels:
        severity: critical
      annotations:
          summary: "redis有拒绝连接,实例:{{$labels.instance }}"
          description: "与Redis的某些连接被拒绝:{{ $value }}"
  		
EOF

一定记住这里需要仔细校对yaml语法,最好是能去在线验证yaml语法的网站上看看.yaml语法还是比较严格的一点缩进错误都不能有

检查配置

代码语言:shell
AI代码解释
复制
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml

重新加载配置

代码语言:shell
AI代码解释
复制
curl -x POST http://localhost:9090/-/reload

检查

http://localhost:9090/alerts?search=

或:

http://localhost:9090/rules

dashboard

grafana展示Prometheus从redis_exporter收集到的数据

id :11835

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Prometheus实战篇:Prometheus监控nginx
全干程序员demo
2024/01/04
1.2K0
Prometheus实战篇:Prometheus监控nginx
Prometheus实战篇:Prometheus监控rabbitmq
全干程序员demo
2024/01/08
1.3K0
Prometheus实战篇:Prometheus监控rabbitmq
​搭建监控系统
Prometheus 是一套开源的系统监控、报警、时间序列数据库的组合,最初有 SoundCloud 开发的,后来随着越来越多公司使用,于是便独立成开源项目。Alertmanager 主要用于接收 Prometheus 发送的告警信息,它支持丰富的告警通知渠道,例如邮件、微信、钉钉、Slack 等常用沟通工具,而且很容易做到告警信息进行去重,降噪,分组等,是一款很好用的告警通知系统。
小陈运维
2022/12/20
4K0
​搭建监控系统
Prometheus实战篇:Prometheus监控mongodb
https://github.com/percona/grafana-dashboards/blob/main/dashboards/MongoDB/MongoDB_Instances_Overview.json
全干程序员demo
2024/01/10
1.4K0
Prometheus实战篇:Prometheus监控mongodb
Prometheus实战篇:Prometheus监控docker
除了使用命令以外,用户还可以通过Docker提供的HTTP API查看容器详细的监控统计信息.
全干程序员demo
2024/01/11
2.9K0
Prometheus实战篇:Prometheus监控docker
Prometheus监控神器-Kubernetes篇(三)
当我们有多个Kubernetes集群的时候,这个时候就需要需要指标汇总的需求了,如上图一样,我们假定在外部部署一个Prometheus的Federate,然后去采集当前k8s中的kube-system与default俩个 namespace。
没有故事的陈师傅
2021/11/12
5050
Prometheus监控神器-Kubernetes篇(三)
开箱即用的 Prometheus 告警规则集
在配置系统监控的时候,是不是即使绞尽脑汁监控的也还是不够全面,或者不知如何获取想要的指标。
CNCF
2021/05/27
2.9K0
开箱即用的 Prometheus 告警规则集
Prometheus + Grafana 接入实践
Prometheus 是一套开源的系统监控告警框架,作为 CNCF 中重要的一员,活跃度仅次于 kubernetes,广泛用于 kubernetes 集群的监控系统中。
orientlu
2020/04/18
3.4K0
Prometheus系列 | 监控elasticsearch
启动成功后,可以访问 http://192.168.50.153:9109/metrics ,看抓取的信息
SY小站
2020/07/03
4.3K0
采用Prometheus+Grafana+Altermanager搭建部署K8S集群节点可视化监控告警平台
1 Node Exporter for Prometheus Dashboard CN 0413 ConsulManager自动同步版 dashboard for Grafana | Grafana Labs
宝耶需努力
2023/07/01
1.3K0
采用Prometheus+Grafana+Altermanager搭建部署K8S集群节点可视化监控告警平台
Prometheus 监控Linux Windows主机(七)
Node_exporter 用于采集Linux系统指标数据数据,prometheus官方提供的exporter,除node_exporter外,官方还提供consul,memcached,haproxy,mysqld等exporter。
Kevin song
2023/02/22
4.7K0
Prometheus 监控Linux Windows主机(七)
《Prometheus监控实战》第13章 监控Tornado
prometheus.io/port注解将被注入__address__标签中,以便被作业抓取。接下来的服务发现将开始收集这些Mysql指标
yeedomliu
2019/12/20
2.2K0
《Prometheus监控实战》第13章 监控Tornado
Prometheus监控服务器
监控服务器CPU、内存、磁盘、I/O等信息,首先需要安装node_exporter。node_exporter的作用是用于机器系统数据收集。
拓荒者
2019/08/01
3.8K0
kubernetes监控-prometheus(十六)
通过各种exporter采集不同维度的监控指标,并通过Prometheus支持的数据格式暴露出来,Prometheus定期pull数据并用Grafana展示,异常情况使用AlertManager告警。
yuezhimi
2020/09/30
8070
kubernetes监控-prometheus(十六)
远见而明察近观若明火|Centos7.6环境基于Prometheus和Grafana结合钉钉机器人打造全时监控(预警)Docker容器服务系统
    我们知道,奉行长期主义的网络公司,势必应在软件开发流程管理体系上具备规范意识,即代码提交有CR(CodeReview),功能测试上自动化,而功能发布讲究三板斧:灰度、监控、止血。灰度属于测试范畴,止血则是亡羊补牢,今天我们来聊聊监控,提起监控,就不得不提在DepOps(自动化运维)领域鼎鼎有名的Prometheus(普罗米修斯),有人说这个开源系统的名字怎么有点如雷贯耳啊,没错,它的名字就是取自从宙斯手中为人类夺回圣火的古希腊神明普罗米修斯,而Prometheus的Logo恰恰就是奥林匹克圣火。Prometheus主要的功能就是可以无时不刻的监控所有部署在生产环境中的服务,如果服务出现问题则会及时报警以提醒开发者。
用户9127725
2022/08/08
4300
远见而明察近观若明火|Centos7.6环境基于Prometheus和Grafana结合钉钉机器人打造全时监控(预警)Docker容器服务系统
构建企业级监控平台系列(二十三):Prometheus 配置监控常用服务实践
URL监控通过blackbox-exporter组件监控,组件部署位置192.168.0.39。
民工哥
2023/10/31
7750
构建企业级监控平台系列(二十三):Prometheus 配置监控常用服务实践
Prometheus 监控架构 -- 生产级别
Prometheus 是由前 Google 工程师从 2012 年开始在 Soundcloud 以开源软件的形式进行研发的系统监控和告警工具包,自此以后,许多公司和组织都采用了 Prometheus 作为监控告警工具。Prometheus 的开发者和用户社区非常活跃,它现在是一个独立的开源项目,可以独立于任何公司进行维护。为了证明这一点,Prometheus 于 2016 年 5 月加入 CNCF 基金会,成为继 Kubernetes 之后的第二个 CNCF 托管项目.
用户3013098
2022/06/01
6950
Prometheus 监控架构  -- 生产级别
Prometheus的AlertManage
Prometheus本身不支持告警功能,主要通过插件alertmanage来实现告警。AlertManager用于接收Prometheus发送的告警并对于告警进行一系列的处理后发送给指定的用户。
大发明家
2021/12/17
7670
6.Prometheus监控入门之企业监控实战警报发送
描述: Alertmanager 负责接收来自所有Prometheus服务器的告警,并根据其规则将告警以邮件、聊天信息和呼叫等方式进行通知。
全栈工程师修炼指南
2022/09/29
2.6K0
6.Prometheus监控入门之企业监控实战警报发送
K8S prometheus exporter应用
前面对远程http服务的拨测体验简单拨测了一下http服务,最近偶遇了一下服务到期默认进入回收站,服务连不上redis数据库的问题(腾讯云报警通知服务现在不能保证优先队列,现在会滞后性)。由于日志业务上报问题,业务的错误日志没有上报给我,程序自己收集的,这就造成了滞后性。现在了想把云内资源都监控起来,当然了我不想使用所谓的云监控!下面搞一下redis elastic mysql mongo等服务的exporter黑盒监控!
对你无可奈何
2023/07/14
8290
推荐阅读
相关推荐
Prometheus实战篇:Prometheus监控nginx
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档