,自建了6台Redis实例,需要进行监控。 /redis_exporter-v1.3.5.linux-amd64 /data/redis_exporter redis_exporter 用法 解压后只有一个二进制程序就叫 redis_exporter redis.password:验证 Redis 时使用的密码; -redis.file:包含一个或多个redis 节点的文件路径,每行一个节点,此选项与 -redis.addr 互斥。 /redis_exporter -redis.addr 192.168.111.11:6379 -redis.password 123456 & 三、配置 prometheus.yml 单机版 添加监控目标 instance: 生产实例4 - targets: ['192.168.10.151:9121'] labels: instance: 生产实例5
一.客户端 127.0.0.1:6379> info stats #Redis自启动以来处理的客户端连接数总数 total_connections_received #Redis自启动以来拒绝的客户端连接数 , 需要重点 监控。 rejected_connections 127.0.0.1:6379> info clients #代表当前Redis节点的客户端连接数, 需要重点监控,一旦超过maxclients,新的客户端连接将被拒绝 自启动以来处理的客户端连接数总数 total_connections_received:80 #Redis自启动以来拒绝的客户端连接数, 需要重点监控 rejected_connections:0 二. 服务端 127.0.0.1:6379> info # Server redis_version:2.6.9 redis_git_sha1:00000000 redis_git_dirty:0 redis_mode
Zabbix监控redis 当代张思德 2013年开始使用Zabbix,2014-2016年负责Zabbix二次开发及架构设计,目前从事PaaS平台及微服务的开发和运维工作,Zabbix实践爱好者,Cactifans 作者,golang爱好者 【老张监控技术】专栏 Zabbix3.4分区表配置 Zabbix3.4新功能介绍 (一):Preprocessing 通过smtp发送邮件 Zabbix监控docker 使用go 语言写了一个采集redis性能的小程序,通过redis的go客户端连接redis,采集数据库性能指标,大家可试用一下,欢迎提出修改意见和建议。 监控客户端下载 linux 32位系统 zabbix_redis.x86.tar.gz linux64位系统 zabbix_redis.x86_64.tar.gz 配置方法 修改zabbix agentd PORT}":"6379"},{"{#PORT}":"6380"}]} 表示执行成功 server端操作 导入redis监控模版: zabbix_redis_templates.tar.gz 关联redis
如果想修改慢命令的标准可以使用下面的命令 # 超过5毫秒为慢命令 config set slowlog-log-slower-than 5000 获取最慢的n条数据 slowlog get {n} (5种数据类型(String、hash、list、set、zset)的最大key). 320401_001_9' with 73 bytes [00.00%] Biggest string found so far 'prefix_1511407515841_2018_5_320586_ ~]# redis-cli info Clients | grep connected_clients connected_clients:129 5 拒绝连接数 redis-cli info stats 若是内存碎片率低于1的话,说明Redis内存分配超出了物理内存,操作系统正在进行内存交换。 8 监视在Redis中执行的命令 使用MONITOR模式后,将自动输入监控模式。
(5秒粒度)简要介绍 腾讯云新版本监控(5秒粒度)已经灰度3个多月了,原有的分钟级粒度的监控版本仍然会继续保留一段时间,有条件的企业和开发者推荐升级至5秒监控,后续官方应该会提供合适的升级方案。 新监控的区别 监控维度升级 从分钟级粒度升级至5s粒度 区分了proxy监控和redis节点监控 无论是云数据库 Redis 标准架构还是集群架构都包含 Proxy了,业务访问腾讯云redis的访问链路都是先访问 因此新监控区分了proxy监控和redis监控 区分了redis主节点监控和副本节点监控 redis可以通过增加副本提升容灾以及开通读写分离提高读性能,因此在开通读写分离的情况下,如果读请求出现瓶颈,不监控副本节点是不利于定位问题的 提供了实例监控聚合视图 登录 Redis 控制台,单击实例名进入实例管理页面,选择【系统监控】>【监控指标】,可查看实例监控信息详情 [redis节点CPU监控对比图] [proxy节点CPU监控对比图 复制延迟 通常,redis主从复制延迟在ms级别,常见的在1ms~5ms之间,对主从延迟特别敏感的场景不建议开通读写分离,更适用于读副本延迟不敏感的场景,阈值可灵活设置,注意,redis复制延迟是按照数据量的差距而非毫秒
安装部署 [root@mysql01 opt]# wget https://github.com/oliver006/redis_exporter/releases/download/v1.5.2/redis_exporter-v1.5.2 opt]# mv redis_exporter-v1.5.2.linux-arm64 /usr/local/redis_exporter [root@mysql01 opt]# cd /usr/local 测试启动 [root@mysql01 opt]# /usr/local/redis_exporter/redis_exporter -redis.addr 127.0.0.1:6379 INFO[0000 ] Redis Metrics Exporter v1.4.0 build date: 2020-02-22-02:07:24 sha1: dde61ca2367f5fdb1f4a0c49022fcb0135715d22 /local/redis_exporter/redis_exporter -redis.addr 127.0.0.1:6379 [Install] WantedBy=multi-user.target
事务 Redis单条命令是保证原子性的,但是事务不保证原子性的 Redis事务没有隔离级别的概念 所有的命命令在事务中, 并没有直接被执行, 只有发起执行命令的时候才会被执行 Redis 事务的本质: wrong number of arguments for 'getset' command 127.0.0.1:6379> set k4 v4 QUEUED 127.0.0.1:6379> set k5 v5 QUEUED 127.0.0.1:6379> exec # 执行的时候报错 (error) EXECABORT Transaction discarded because of previous errors. 127.0.0.1:6379> get k5 # 所有的命令都不会被执行 (nil) 127.0.0.1:6379> 运行时异常 如果事务队列中存在语法性错误 但是依旧正常执行成功了 1) (error) ERR value is not an integer or out of range 2) OK 3) OK 4) "v3" 127.0.0.1:6379> 监控
Redis有一个monitor命令,某个client执行monitor命令后,就成为了一个监控器,服务器端执行的所有命令都会发送给监控器 monitor 是一个用来debug的命令,可以帮助我们了解服务器正在发生什么 例如我们打开monitor监控服务器20分钟,可以收集到期间服务器执行的所有命令,那么就可以分析出很多信息,例如: (1)什么命令执行得次数多 (2)哪些key是热点 (3)通过对get类型命令的提取 ,统计出发送流量 …… monitor命令使用 127.0.0.1:6379> monitor OK 执行后返回“OK”,说明此客户端已经成为了监控器,然后就进入了等待状态 当服务器端执行了命令后,这里会自动显示出执行信息
Keyspace db0:keys=262,expires=183,avg_ttl=284091259423 #据库的键数量、数据库设置有过期时间的key的数量(这个值减少是正常的) 使用zabbix监控 redis 用zabbix监控redis是一个很简单的事儿,只需要把需要监控的数据提取出来即可。 首先先来一个判断redis服务器连接的脚本: [root@func-redis-001 ~]# cat check_redis.sh #这个脚本是用来zabbix监控自建redis的 #! requiretty #这个是新增 保存之后,重启zabbix-agent服务,由于我这个redis是通过zabbix-proxy监控的,所以在zabbix-proxy一端用zabbix_get 来查看结果: 然后在zabbix-proxy的模板里面添加一些需要监控的item即可,有必要的话可以设置trigger+action用来报警,如图: 最后就是grafana搞一个炫酷的图表来
修改nginx配置 修改nginx配置文件 [root@es_node conf]# vim nginx.conf [root@es_node conf]# grep -v "#" nginx.conf | grep -v "^$" user nginx; worker_processes 1; error_log logs/error.log; events { worker_connections 1024; } http { include mime.types;
前言 本文算是一篇how to文档,介绍如何利用zabbix监控redis(正好有同学问我,顺手写一篇)。 准备监控脚本 对于单机多实例的redis而言,需要先获取所有redis实例的port。 配置zabbix 创建redis host group,并添加对应的redis机器 创建监控模板 可以从网上(文末会给出url)下载,然后在zabbix监控的网页选择configuration--> templates <key>cip-redis.port.discovery</key> </discovery_rule> 绑定机器和监控模板。 最后 重启angent,检查监控输出。 可以结合grafna监控来配置监控项的图形展示,具体大家自己调研吧。 自己写了一个redis工具集放在github上面。
前言 前文介绍了 prometheus 的架构和工作原理,本文手动实践一下,使用prometheus + grafna 监控redis。 下载redis_exporter插件 官方没提供专门的redis_exporter,github上有人开发了 https://github.com/oliver006/redis_exporter 安装步骤 启动redis_exporter redis_exporter 可以支持监控单实例和多实例。如果监控一个redis 可以使用 nohup . /redis_exporter -redis.addr 127.0.0.1:6379 & 监控多个redis 则需要先启动exporter nohup . 监控数据 ?
RedisLive是由python编写的并且开源的图形化监控工具,非常轻量级,核心服务部分只包含一个web服务和一个基于redis自带的info命令以及monitor命令的监控服务,界面上只有一个基于 除此之外,它还支持多实例监控,切换方便,而且配置起来也非常容易。监控信息支持redis存储和持久化存储(sqlite)两种方式。 数据文件 } } 注意:RedisServers,段可以写多个,因此可以监控多个redis服务 2.3 启动服务 . /redis-monitor.py --duration=30 & //启动监控,duration是心跳时间 &放置在后台执行 . 2.4 制作定时任务 */5 * * * * cd /usr/local/RedisLive-master/src/; .
创建集群 当前的集群为单节点 [root@rabbitmq ~]# rabbitmqctl cluster_status Cluster status of node 'rabbit@rabbitmq' ... [{nodes,[{disc,['rabbit@rabbitmq']}]}, {running_nodes,['rabbit@rabbitmq']}, {cluster_name,<<"rabbit@rabbitmq">>}, {partitions,[]}] [root@rabbitmq
### 延迟监控 * **参考官方文档** | https://redis.io/topics/latency-monitor | | :----: | * **启用 redis 延迟监控** | 如果将 latency-monitor-threshold 的值设置为 0,则表示关闭延迟监控。 4)LATENCY GRAPH event 以文本图表方式展示 5)LATENCY DOCTOR 回复人类可读的延迟分析报告 6)LATENCY HELP 查看使用帮助 * **支持的事件(events fsync 系统调用| |aof-write-pending-fsync|| |expire-cycle|过期周期| |eviction-cycle|淘汰周期| |eviction-del|| * **redis-cli 对延迟监控的支持** 与延迟监控有关的参数: |参数名|参数说明| |:----:|:----:| |--latency|以文本方式显示持续采样服务器延迟时间| |--latency-dist|以 256
然后重启 zabbix-agent ,只有重启,zabbix-agent 才能读到变化后的配置
1. zabbix自定义监控项: 在上一节课中,我们通过添加模板,zabbix自动为我们创建了很多监控项,但是往往模板中的监控项并不能满足我们业务需要,我们时常需要自己根据业务需要创建一系列的监控项,也成为自定义监控项 1.1 监控redis服务: 先在122客户端部署好redis,并且启动redis服务: yum install redis -y systemctl start redis 方式一:利用zabbix自带的功能创建监控项 ,bash /data/sh/redis_status.sh # redis.status: 键(监控项) # bash /data/sh/redis_status.sh 值(获取监控项的方式) 1.1.2 以上是对远程服务器的redis服务的监控,如果是想监控nginx,MySQL服务,则只需要把6379端口改为80或者3306端口即可。 欢迎点赞,收藏,你的喜欢就是我原创的动力,zabbix 5系列将会持续更新。
zabbix监控之redis自动发现并监控 部分资料来源于网上,这里一并谢过。 [root@localhost etc]# python redis_port.py { "data":[ { "{#REDISPORT}":"6379 ,/usr/local/zabbix/etc/redis_port.py UserParameter=redis_stats[*],redis-cli -h 127.0.0.1 -a redis_passwd -p $1 info|grep $2|cut -d : -f2 5,sudo权限 [root@localhost ~]# tail -n 2 /etc/sudoers Defaults:zabbix [6379,blocked_clients]" 0 7,zabbix web界面导入下载的模板,添加监控项后检查监控图像 redis模板见附件 ?
Redis服务器运行时,即使服务正常,我们也需要连接Redis服务期间的情况,比如内存消耗,命令处理等指标。Redis Live是开源的Redis监控套件,包含监控与Web服务。 redis-live.conf 修改配置文件 redis-live.conf { "RedisServers": [ { "server": "192.168.58.100 ,以免容易弄混淆 启动 启动监控脚本 . /redis-live.py 打开监控页面 http://localhost:8888/index.html ? RedisLive页面 注意事项 因为redis-monitor.py执行中会影响Redis的吞吐率,所以需要根据实际情况调整参数--duration 常见问题 redis-monitor.py
被广泛的用于对服务器的运维监控中,Cacti提供了一种插件式的管理,只要按要求写好特定的模板,那么你就可以对任何服务进行流量监控。 本文就是要为大家介绍两个模板,分别是MongoDB和Redis的Cacti模板,使用它,你可以对你的MongoDB和Redis服务进行流量监控。 from redis.client import Redis, StrictRedis File "/usr/local/src/redis-2.4.11/redis/client.py", line mongodb或redis的监控所需到的是你下载目录中的better-cacti-templates-1.1.8\scripts下的 ss_get_by_ssh.php 这个脚本 这个脚本需要放在cacti -1.1.8\templates 在cacti界面导入界面,创建redis服务器的Graph,如下所示: 5,去查看Graph效果图,如下所示: