prometheus监控redis

redis-explorer, 监控redis,redis阻塞 blocked_clients处理

1、安装部署

1.1、安装部署

  • 下载:https://github.com/oliver006/redis_exporter/tags

  • 安装

    # 解压
    tar xf redis_exporter-v1.23.1.linux-amd64.tar.gz -C /opt/apm/exporter/
    cd /opt/apm/exporter/
    # 整成软链接是为了方便后续升级软件
    ln -sv redis_exporter-v1.23.1.linux-amd64/ redis_exporter
    
  • 启动脚本

    ]# cat redis_exporter_script.sh
    #!/bin/bash
    #
    # Name: node_exporter_start.sh
    # Version Number:1.01
    # Type: 用于启动node_exporter
    # Language:bash shell
    # Date: 2021.05.31
    # Author: 梁正雄server_path=/opt/apm/exporter/redis_exporter
    redis_add='redis的地址 x.x.x.x:端口'
    listen_add='0.0.0.0:9121'
    redis_pass='这里填redis'start() {check_port=`ss -tnlp|grep 9121`[ $? -eq 0 ] && echo "alreadry start" && exit 0${server_path}/redis_exporter -redis.addr=${redis_add}  -redis.password=${redis_pass}  -web.listen-address=${listen_add} > ${server_path}/redis_exporter.log 2>&1
    }stop(){check_port=`ss -tnlp|grep 9121`[ $? -eq 0 ] && pkill redis_exporter && echo "redis_exporter stop" && exit 0 echo "无操作,服务没有启动"
    }# 如果是cat进来的  手动检查一下这个$1
    case $1 instart)start ;;stop)stop ;;*)echo "Inputs error";;
    esac
    
  • systemctl脚本

    cat >> redis-exporter.service << EOF
    [Unit]
    Description=redis-exporter
    # 这些服务必须在下面服务之后启动
    After=network.target [Service]
    Type=simple
    ExecStart=/opt/apm/exporter/redis_exporter/redis_exporter_script.sh start
    ExecStop=/opt/apm/exporter/redis_exporter/redis_exporter_script.sh stop[Install]
    WantedBy=multi-user.targetEOF
    
  • vim /etc/systemd/system/redis_exporter.service
    #添加如下内容:
    [Unit]
    Description=redis_exporter
    After=network.target[Service]
    Type=simple
    User=root
    ExecStart=/usr/local/redis_exporter/redis_exporter -redis.addr xxx.xxx.xxx.xxx:6379  -redis.password 123456
    Restart=on-failure[Install]
    WantedBy=multi-user.target
    
  • 检查启动状态

    ]# ss -tnlp|grep 9121
    LISTEN  0  128  [::]:9121   [::]:*   users:(("redis_exporter",pid=29034,fd=3))
    

1.2、grafana引用redis引擎

  • 如果没有外网,找一台grafana的机器,先停止服务: stop grafana-server

  • 下载

    grafana-cli plugins install redis-datasource
    grafana-cli plugins install redis-explorer-app
    
  • 打包

    cd /var/lib/grafana/plugins
    tar zcf redis-grafana.tar.gz  redis-app/ redis-datasource redis-explorer-app/
    
  • 在回到要配置的机器,解压到: /var/lib/grafana/plugins

  • 启动 grafana-server

  • enable 4跟5

1.3、prometheus

直接配置

prometheus]# vim prometheus.yml - job_name: 'redis_exporter_targets'static_configs:- targets:- redis地址:9121- redis://redis集群地址.103:7000- redis://redis集群地址.103:7001- redis://redis集群地址.103:7002- redis://redis集群地址.105:7000- redis://redis集群地址.105:7001- redis://redis集群地址.105:7002- redis://redis集群地址.115:7000- redis://redis集群地址.115:7001- redis://redis集群地址.115:7002metrics_path: /metricsrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: redis地址:9121prometheus]# systemctl restart prometheus

下载dashboard json文件

2、监控指标

2.1、命中率指标

Metric to watch: hit rate

  • 使用Redis作为缓存时,监视缓存命中率可以告诉您缓存是否被有效使用。
  • 命中率低意味着客户端正在寻找不再存在(Redis内存中)的Key值。
  • Redis不直接提供命中率指标。我们可以像这样计算:
    HitRate=keyspace_hits/(keyspace_hits+keyspace_misses)

低命中率原因

  1. 低缓存命中率可能由许多因素引起,包括数据到期和分配给Redis的内存不足(这可能导致key值被清除)。

  2. 低命中率可能会导致应用程序延迟增加,因为它们必须从较慢的备用资源中获取数据。

  3. 获取Redis的keyspace_hits+keyspace_misses,同样是info stats

    127.0.0.1:6379> INFO statskeyspace_hits:0    #命中keyspace_misses:0  #未命中
    
  4. PromQL

    redis_keyspace_hits_total/(redis_keyspace_hits_total+redis_keyspace_misses_total)原因:低命中率的原因
    说明:数据到期和分配给Redis的内存不足
    

Memory metrics

内存指标、,内存使用是Redis性能的关键组成部分。

需要注意的指标: used_memory

如果实例超过可用内存(used_memory > total available memory),操作系统将开始交换老的/未使用的部分内存(pages),将该部分pages写入磁盘,为较新/活动页腾出内存空间。

每个交换的部分都写入磁盘,严重影响性能。从磁盘写入或读取速度比写入或从存储器读取速度慢5个数量级(100,000)(内存为0.1μs,磁盘为10 ms)。

可以将Redis配置为仅限于指定的内存量。在redis.conf文件中设置maxmemory指令可以直接控制Redis的内存使用情况。

启用maxmemory需要您为Redis配置驱逐(过期)策略以确定它应如何释放内存。

当Redis用作缓存时,这种“扁平线”模式很常见;消耗掉所有可用内存,并以与插入新数据相同的速率清理旧数据。

关于Redis的内存参数 info memory

used_memory和used_memory_human都是Redis使用到的内存,used_memory_human是一更加可读性的方式展示Redis的内存使用。

used_memory_rss和used_memory_rss_human 表示操作系统为Redis进程分配的内存总量,两者的含义类似如上。

为什么会出现Redis使用的内存大于操作系统给Redis分配的内存

  • used_memory being < used_memory_rss意味着内存碎片的存在。

  • used_memory > used_memory_rss 意味着物理内存不足,发生了内存swap。

    #]# redis-cli
    127.0.0.1:6379> info memory
    # Memory
    used_memory:882976
    used_memory_human:862.28K
    used_memory_rss:7225344
    used_memory_rss_human:6.89M
    used_memory_peak:3975624
    used_memory_peak_human:3.79M
    total_system_memory:7125061632
    total_system_memory_human:6.64G
    used_memory_lua:37888
    used_memory_lua_human:37.00K
    maxmemory:0
    maxmemory_human:0B
    maxmemory_policy:noeviction
    mem_fragmentation_ratio:8.18
    mem_allocator:jemalloc-4.0.3
    

需要告警的指标: mem_fragmentation_ratio

mem_fragmentation_ratio度量标准给出了操作系统看到的内存与Redis分配的内存的比率。
MemoryFragmentationRatio =Used_Memory_RSS(Used_Memory)

操作系统负责为每个进程分配物理内存。操作系统的虚拟内存管理器处理由内存分配器调解的实际映射。
        如果Redis实例的内存占用为1GB,内存分配器将首先尝试找到一个连续内存段来存储数据。如果没有找到连续的段,分配器必须将进程的数据划分为多个段,从而导致内存开销的增加。

跟踪碎片比率对于了解Redis实例的性能非常重要。

碎片率大于1表示内存有碎片。比率超大表示碎片过多,Redis实例占用了所请求的物理内存的150%。
        碎片率低于1会告诉您Redis需要的内存比系统上可用的内存多,这会导致交换。交换到磁盘将导致延迟显着增加。

理想情况下,操作系统会在物理内存中分配一个连续的段,碎片比率等于1或稍大一些。

  1. 如果您的服务器的碎片率高于1.5,则重新启动Redis实例将允许操作系统恢复以前因碎片而无法使用的内存。在这种情况下,作为通知的警报可能就足够了。
  2. 如果Redis服务器的碎片比率低于1,则可能需要以发出告警,以便快速增加可用内存或减少内存使用量。

从Redis 4开始,当Redis配置为使用包含的jemalloc副本时,可以使用新的活动碎片整理功能,可以将此工具配置为在碎片达到特定级别时启动,并开始将值复制到连续的内存区域并释放旧副本,从而减少服务器运行时的碎片。

info memory可以查看内存碎片信息mem_fragmentation_ratio:8.18    # 碎片信息配置文件中增加activedefrag yes选项,不用重启的方式自动重整内存碎片。
127.0.0.1:6379> CONFIG SET activedefrag yes
127.0.0.1:6379> CONFIG get activedefrag
1) "activedefrag"
2) "yes

exporter中的指标

redis_mem_fragmentation_ratio 8.26

evicted_keys

需要告警的指标:evicted_keys(仅限缓存)

如果使用Redis作为缓存,可能将其配置在达到maxmemory限制时(按照某种方式)自动清除key值。

如果使用Redis作为数据库或队列,可能需要交换而不是清除key值,在这种情况下可以跳过此指标,跟踪key值清理指标非常重要,因为Redis按顺序处理每个操作,这意味着驱逐大量key可以降低命中率,从而增加延迟时间。

如果您使用TTL,您可能不会期望清理key值。在这种情况下,如果此指标始终高于零,您可能会看到实例中的延迟增加。

大多数不使用TTL的其他配置最终会耗尽内存并开始清理key值。只要您的响应时间可以接受,就可以接受稳定的清除率。

可以使用以下命令配置key值过期策略:config set maxmemory-policy = ***

其中policy是以下之一:

key 说明
noeviction 当达到内存限制并且用户尝试添加其他键时,将返回错误
(也就是说达到内存限制之后不允许写入)
volatile-lru 在已过期的key值中,删除最近最少使用的key值
volatile-ttl 在已过期的key值中,删除最短过期时间的key值
volatile-random 在已过期的key值中,随机删除key值
allkeys-lru 从所有key值中删除最近最少使用的key
allkeys-random 从所有key值中随机删除
volatile-lfu 在Redis 4中新增选项,在已过期的key值中,“最近最不常用”的key值
allkeys-lfu 在Redis 4中新增选项,从所有key值中,删除“最近最不常用”的key值

注意:出于性能原因,当使用LRU,TTL或Redis 4的LFU策略时,Redis实际上不会从整个key值集进行采样。

  • Redis首先对key值集的随机子集进行采样,然后对样本应用清理策略。

通常,Redis的较新(> = 3)版本采用LRU采样策略,该策略更接近真实LRU。
例如,可以通过设置必须经过多少时间而无需访问项目在排名中向下移动来调整LFU策略。

关于LRU和LFU,分别是最近最少使用和最近最不频繁使用,LFU理论上是比LRU更加合理的算法,清理key的时候,LFU认为“最近最不频繁”使用要比“最近最少”使用更加合理。

LRU和LFU的区别:

  1. LRU是最近最少使用页面置换算法(Least Recently Used),也就是首先淘汰最长时间未被使用的页面!
  2. LFU是最近最不常用页面置换算法(Least Frequently Used),也就是淘汰一定时期内被访问次数最少的页!

blocked_clients

Redis提供了许多在List上运行的阻塞命令。

BLPOP,BRPOP和BRPOPLPUSH分别是命令LPOP,RPOP和RPOPLPUSH的阻塞变体。

当List非空时,命令按预期执行。但是,当List为空时,阻塞命令将一直等到源被填充或达到超时。

等待数据的并且被阻止客户端数量的增加可能是一个麻烦的迹象。

延迟或其他问题可能会阻止源列表被填充。虽然被阻止的客户端本身不会引起警报,但如果您看到此指标的值始终为非零值,则应该引起注意。

2.2、基本活动指标

name Description Type
connected_clients 客户端连接数 Utilization
connected_slaves Slave数量 Other
master_last_io_seconds_ago 最近一次主从交互之后的秒数 Other
keyspace 数据库中的key值总数 Utilization

connected_clients

需要关注的指标,由于对Redis的访问通常由应用程序发起(用户通常不直接访问数据库),因此对于大多数场景,连接客户端的数量将有合理的上限和下限。

  • 如果数字偏离正常范围,这表示可能存在问题。
  • 如果它太低,表示客户端连接可能已经丢失,如果它太高,大量的并发客户端连接可能会打垮服务器处理请求的能力。

查看

redis中查看127.0.0.1:6379> CONFIG GET maxclients1) "maxclients"2) "10000"127.0.0.1:6379> prometheusredis_config_maxclients 10000  # 最大连接数redis_connected_clients 3        # 已连接客户端

connected_slaves

如果数据库是大量读取的,那么您可能正在使用Redis中提供的主从数据库复制功能。

在这种情况下,监控连接的从站数量是关键。如果连接的从站数量意外更改,则可能表示主机已关闭或从站实例出现问题。

注意:在上图中,Redis Master将显示它有两个连接的slave,并且每个slave都有两个slave。

由于slave的slave不直接连接到Redis Master,因此它们不包含在Redis Master的connected_slaves中。

master_last_io_seconds_ago

使用Redis的复制功能时,slave会定期检查其主服务器。主从长时间没有通信的可能表示主从Redis实例之间存在问题。并且冒着slave中数据在master中已经发生了变化危险。

主从延迟问题

网络会导致主从无法进行之间的PING心跳,由于Redis执行同步的方式,最大限度地减少主从通信的中断至关重要。当从设备在中断后重新连接到master时,它会发送PSYNC命令以尝试仅同步中断期间丢失的命令。

如果无法做到这一点,则slave将请求完整的SYNC,这会迫使master立即开始执行background save命令,同时新增加的命令会被缓冲起来。

当background save命令执行完成时,数据与缓冲的命令一起发送到客户端。每次从机执行SYNC时,都会导致主实例上的延迟显着增加。

keyspace

跟踪数据库中的键数通常是个好主意。作为内存数据存储,key值集合空间越大,为了确保性能,Redis需要的物理内存越多。

Redis将继续添加key值,直到它达到maxmemory limit,然后它开始以相同的速率清理key值。这会产生一个“扁平线”图,如上图所示。

如果您使用Redis作为缓存并查看key值空间饱和度 - 如上图所示 - 加上命中率较低,您可能会让客户端请求旧的或已逐出的数据。随着时间的推移跟踪keyspace_misses数量将帮助您查明原因。

或者,如果使用Redis作为数据库或队列,则可能不选择volatile策略,随着key值空间的增长,如果可能的话,您可能需要考虑在添加物理内存或在主机之间拆分数据集。

添加更多内存是一种简单有效的解决方案。如果单机资源有限,则对数据进行分区或分片可以合并许多计算机的资源, 有了分区计划,Redis可以存储更多key值集合而无需清理或swap。但是,分片比增加内存要困难得多。

2.3、持久化指标

Redis需要启用持久性配置,尤其是在使用Redis的复制功能时,如果您使用Redis作为缓存,或者在数据丢失无关紧要的用例中,则可能不需要持久性。

Name description type
rdb_last_save_time 最后一次持久化保存到磁盘的Unix时间戳 other
rdb_changes_since_last_save 自最后一次持久化以来数据库的更改数 other

1.需要注意的指标: rdb_last_save_time and rdb_changes_since_last_save

关注数据集的波动性是个好主意。写入磁盘之间的时间间隔过长可能会在服务器发生故障时导致数据丢失,在上次保存时间和故障时间之间对数据集所做的任何更改都将丢失。

监控rdb_changes_since_last_save可更深入地了解数据的波动性。如果数据集在该间隔内没有太大变化,则写入之间的长时间间隔不是问题, 跟踪这两个指标可以清楚地了解在给定时间点发生故障时您将丢失多少数据。

如何查看Redis的rdb_last_save_time and rdb_changes_since_last_save

redis127.0.0.1:6379> info Persistence# Persistenceloading:0rdb_changes_since_last_save:69008rdb_bgsave_in_progress:0rdb_last_save_time:1628824444rdb_last_bgsave_status:okrdb_last_bgsave_time_sec:-1rdb_current_bgsave_time_sec:-1aof_enabled:0aof_rewrite_in_progress:0aof_rewrite_scheduled:0aof_last_rewrite_time_sec:-1aof_current_rewrite_time_sec:-1aof_last_bgrewrite_status:okaof_last_write_status:okpromQLredis_rdb_last_save_timestamp_seconds 1.628824444e+09redis_rdb_changes_since_last_save 69008

2.4、错误指标

Error metrics: Redis错误指标可以提醒您注意异常情况。以下指标可跟踪常见错误:

Name Description Type
rejected_connections 由于达到maxclient限制而被拒绝的连接数 Saturation
keyspace_misses Key值查找失败(没有命中)次数 Errors / Other
master_link_down_since_seconds 主从断开的持续时间(以秒为单位) Errors

rejected_connections

  • Redis能够处理许多活动连接,默认情况下可以使用10,000个客户端连接。
  • 可以通过更改redis.conf中的maxclient指令将最大连接数设置为不同的值。
  • 如果Redis实例当前处于其最大连接数,则将断开任何新的连接尝试。

**请注意,**Redis可能不支持使用maxclient指令请求的连接数。

Redis检查内核以确定可用文件描述符的数`量。如果可用文件描述符的数量小于maxclient + 32(Redis为其自己使用保留32个文件描述符),则忽略maxclient指令并使用可用文件描述符的数量。

rejected_connections可以通过查看Info stat

redis127.0.0.1:6379> INFO statsrejected_connections:0promQLredis_rejected_connections_total 0

keyspace_misses

每次Redis查找key时,只有两种可能的结果:key存在,或key不存在。

查找不存在的键会导致keyspace_misses计数器递增,因此keyspace_misses意味着客户端尝试在数据库中查找不存在的密key。

如果您不使用Redis作为缓存,则keyspace_misses应该为零或接近零。注意,调用阻塞的任何阻塞操作(BLPOP,BRPOP和BRPOPLPUSH)都将导致keyspace_misses递增。

keyspace_misses可以通过查看Info stat

redis127.0.0.1:6379> INFO statsrejected_connections:0keyspace_hits:53708keyspace_misses:26080

master_link_down_since_seconds

该指标仅在主从之间的连接丢失时可用。

理想情况下,此值不应超过零-主从之间保持持续通信,以确保slave不提供过时数据。

应该解决连接之间的大的时间间隔。请记住,重新连接后,您的主Redis实例将需要投入资源来更新从站上的数据,这可能会导致延迟增加。

3、预警

3.1、Redis报警规则

报警名称 表达式 采集数据时间(分钟) 报警触发条件
RedisDown redis_up == 0 5 Redis下线。
RedisMissingMaster count(redis_instance_info{role=“master”}) == 0 5 Master缺失。
RedisTooManyMasters count(redis_instance_info{role=“master”}) > 1 5 Master过多。
RedisDisconnectedSlaves count without (instance, job) (redis_connected_slaves) - sum without (instance, job) (redis_connected_slaves) - 1 > 1 5 Slave连接断开。
RedisReplicationBroken delta(redis_connected_slaves[1m]) < 0 5 复制中断。
RedisClusterFlapping changes(redis_connected_slaves[5m]) > 2 5 副本连接识别变更。
RedisMissingBackup time() - redis_rdb_last_save_timestamp_seconds > 60 * 60 * 24 5 备份中断。
RedisOutOfMemory redis_memory_used_bytes / redis_total_system_memory_bytes * 100 > 90 5 内存不足。
RedisTooManyConnections redis_connected_clients > 100 5 连接过多。
RedisNotEnoughConnections redis_connected_clients < 5 5 连接不足。
RedisRejectedConnections increase(redis_rejected_connections_total[1m]) > 0 5 连接被拒绝。
redis_master_link_up redis_master_link_up == 0 5 复制连接当前断开
groups:
- name: redis集群预警rules:- alert: "redis节点下线"expr: up{instance=~".*:9121"} == 0for: 20slabels:severity: ERRORalert_type: "节点下线通知"alert_host: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }}"annotations:description: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }} redis 监控主节点下线, 请及时处理 命令: systemctl restart|status redis-exporter"- alert: "redis节点下线"expr: redis_up{instance=~"redis:.*"} == 0for: 20slabels:severity: WARNalert_type: "节点下线通知"alert_host: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }}"annotations:description: "{{ $labels.instance }} 节点下线, 请及时处理"- alert: "redis集群节点丢失"expr: time() - redis_rdb_last_save_timestamp_seconds > 60 * 60 * 24for: 5mlabels:severity: ERRORannotations:summary: "Missing backup (instance {{ $labels.instance }})"description: "redis 集群节点: {{$labels.instance}}  已下线24小时, 请立即处理"  - alert: "内存使用大于95%"expr: redis_memory_used_bytes / redis_total_system_memory_bytes * 100 > 95for: 5mlabels:severity: WARNannotations:description: "Redis 当前节点 {{ $labels.instance }} 内存已使用 {{ $value }}%"- alert: "内存异常"expr: redis_mem_fragmentation_ratio < 1for: 5mlabels:severity: WARNannotations:description: "Redis 当前节点 {{ $labels.instance }} redis内存可用内存不足,请减少key或增加内存"- alert: "内存异常"expr: redis_mem_fragmentation_ratio > 18for: 5mlabels:severity: ERRORannotations:description: "Redis 当前节点 {{ $labels.instance }} 内存碎片过大, 当前: {{ $value}}, 处理"- alert: "redis连接被拒绝"expr: increase(redis_rejected_connections_total[1m]) > 0for: 5mlabels:severity: WARNalert_type: "连接被拒绝"annotations:description: "redis 一些服务连接 {{ $labels.instance }} 被拒绝: 查看文档"- alert: "redis主节点缺失"expr: count(redis_instance_info{role="master"}) == 0for: 5mlabels:severity: WARNalert_type: "redis主节点缺失"alert_host: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }}"annotations:summary: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }} redis主节点缺失"description: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }} 主节点丢失5分钟"- alert: "redis副本下线"expr: delta(redis_connected_slaves[1m]) < 0for: 5mlabels:severity: WARNalert_type: "数据不同步"alert_host: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }}"annotations:description: "redis {{ $labels.instance}} 集群副本下线, 请立即处理"- alert: "redis连接数过多"expr: redis_connected_clients{instance=~"redis://.*"} > redis_config_maxclients{instance=~"redis://.*"} * 0.85for: 5mlabels:severity: WARNalert_type: "连接数过多"alert_host: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }}"annotations:description: "主机: {{ $labels.instance }} 当前连接数: {{ $value }}, 连接总数达到总量的85%,请立即检查"- alert: "redis连接数过多"expr: redis_connected_clients{instance=~"redis://.*"} > redis_config_maxclients{instance=~"redis://.*"} * 0.95for: 5mlabels:severity: ERRORalert_type: "连接数过多"alert_host: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }}"annotations:description: "主机: {{ $labels.instance }} 当前连接数: {{ $value }}, 连接总数达到总量的95%,请立即检查"- alert: "redis 连接数过低"expr: redis_connected_clients == 0for: 5mlabels:severity: WARNalert_type: "连接数过低"alert_host: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }}"annotations:description: "当前: {{ $labels.instance }} 无连接, 请检查下服务是否下线了"- alert: "redis连接故障"expr: irate(redis_blocked_clients{job="redis_exporter_targets"}[5m]) > 3for: 5mlabels:severity: WARNalert_host: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }}"annotations:description: "当前: {{ $labels.alert_host }} 5分钟内阻塞进程大于 3, 请检查连接服务是否异常"- alert: "redis低命中率效率低下"expr: redis_keyspace_hits_total / (redis_keyspace_hits_total + redis_keyspace_misses_total) > 0.95for: 5mlabels:severity: ERRORalert_host: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }}"annotations:description: "当前: {{ $labels.alert_host }} 命中率低下原因: 数据到期和分配给Redis的内存不足,请及时检查内存、数据"- alert: "redis异常同步"expr: irate(redis_rdb_changes_since_last_save[60m])for: 60mlabels:severity: ERRORalert_host: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }}"annotations:description: "当前: {{ $labels.alert_host }} redis 某一台服务异常断开, 同步异常"- alert: "redis集群连接异常"expr: redis_master_link_up{master_host=~".*"} == 0for: 5mlabels:severity: WARNalert_host: "{{ reReplaceAll \":(.*)\" \"\" $labels.instance }}"annotations:description: "当前: {{ $labels.alert_host }} redis 复制连接当前断开"

prometheus监控redis相关推荐

  1. 监控工具—Prometheus—监控Redis

    原文作者:wyl9527 原文地址:Grafana Prometheus系统监控Redis服务 目录 1.下载redis_exporter安装包 2.解压安装 3.systemd管理redis_exp ...

  2. prometheus监控redis(无metric接口)

    1,部署一个测试环境 [root@\ k8s-m-01~]# mkdir redis [root@\ k8s-m-01~]# cd redis/[root@\ k8s-m-01~/redis]# vi ...

  3. Prometheus监控Redis的配置

    Prometheus监控Redis的配置 下载redis_exporter插件 解压 启动redis_exporter监控redis 无密码 有密码 查看redis_exporte是否开启 修改pro ...

  4. 使用 Prometheus 监控 Redis

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | yangyidba 来源 | 公众号「yang ...

  5. 监控工具—Prometheus—监控Java程序

    原文作者:青蛙小白 原文地址:Prometheus监控实践:使用Prometheus监控Java应用 目录 1.Prometheus JVM Client 2.Prometheus的服务发现 3.Gr ...

  6. centos 启动一个redis_基于prometheus+grafana体系监控redis缓存服务

    概述 前面已经介绍了怎么用prometheus监控mysql数据库,今天主要分享下怎么去监控redis服务.由于没有redis环境,所以用docker模拟了一下. 一.Docker部署 1.下载 su ...

  7. 容器环境自建数据库、中间件一键接入阿里云 Prometheus 监控

    阿里云Prometheus服务4月9日发布重大升级,支持容器环境下一键接入MySQL.Redis.MangoDB.ElasticSearch等数据库和Kafka.ZooKeeper等中间件的监控,并提 ...

  8. 云计算监控—Prometheus监控系统(文末赠书)

    陈金窗 刘政委 张其栋 郑少斌 读完需要 20 分钟 速读仅需 7 分钟 本文摘自于<Prometheus 监控技术与实战>一书,从云计算时代的业务特点出发,探讨了云计算监控的目标和挑战, ...

  9. prometheus 监控告警安装与设置

    1.什么是Prometheus? Prometheus (普罗米修斯)是由 SoundCloud开发的开源监控报警系统和时序列数据库 . 2.Prometheus的特点 多维度数据模型. 灵活的查询语 ...

最新文章

  1. Linux常用指令---ps(查看进程)
  2. python 自定义模块_Python 自定义模块路径
  3. spark从hbase读取写入数据
  4. Java show两个整数加减_怎么样用java编写界面实现两个数的加法运算
  5. windows 10 删除Linux系统方法
  6. 人脸识别腾讯安排上了!孩子不能再任意冒用家长身份信息
  7. python连接mysql用哪个模块_pymysql模块使用---Python连接MySQL数据库
  8. Android强指针sp和弱指针wp区别
  9. 代理模式(静态代理、动态代理)
  10. 2021-09-08推荐系统,巧妇难为无米之炊,我首先需要历史数据
  11. android 存储作假,对《纯活人伪造一个Android Killer或APK IDE或apktool反编译失败》的一点讨论...
  12. php制作国旗头像图片,不要再@微信官方了,自己动手一秒制作国旗头像
  13. OpenCV—播放AVI视频
  14. Windows家庭版如何打开本地组策略编辑器
  15. 扫盲贴2.5寸移动硬盘的厚度有几种
  16. RPGmaker MV EnemyBook 插件使用
  17. 硬盘内部硬件结构和工作原理详解
  18. web程序设计基础R实验报告 2021年 ---太原理工大学
  19. 你看得懂的海明码校验和纠错原理(一)
  20. 新一代高性能USB转串口芯片CH342与CH343

热门文章

  1. 手机号中间4位数隐藏或者只显示末尾四位数
  2. 在应用图标右上角显示数字
  3. 编译capsule8 容器安全
  4. python——商业按揭贷款分析
  5. c语言直方图最大矩形面积,直方图中最大矩形面积(示例代码)
  6. mac上安装homebrew方法
  7. 使用Homebrew安装nvm
  8. 水利水电安全员考试单选练习题库(3)
  9. 网络安全之安全产品和资产运维
  10. Playmaker学习记录一