zabbix监控redis信息

zabbix监控redis信息了解Redis的info要获得Redis的当前情况,使用info命令即可。具体用法:redis-cli-h127.0.0.1-p6379-aredis_passwdinfo[参数]。针对不同的参数就会看到具体的数字,如果没有带参数,那么就会把默认情况写出来,如果带上all参数,那么就会把所有情况都写出来。比如:redis-cli-h127.0.0.1-p6379-aredis_passwdinfoserver,就会看到redis关于server的一些数据,如下:可以看

大家好,又见面了,我是你们的朋友全栈君。

了解Redis的info
要获得Redis的当前情况,使用info命令即可。具体用法:redis-cli -h 127.0.0.1 -p 6379 -a redis_passwd info [参数] 。针对不同的参数就会看到具体的数字,如果没有带参数,那么就会把默认情况写出来,如果带上all参数,那么就会把所有情况都写出来。比如:redis-cli -h 127.0.0.1 -p 6379 -a redis_passwd info server,就会看到redis关于server的一些数据,如下:
在这里插入图片描述
可以看出,从server里可以查询到的是版本号、pid号、配置文件路径等等东西。
如果参数是client,记录了是客户端的相关信息:

[root@func-redis-001 ~]# redis-cli -h 127.0.0.1 -p 6379 info clients
# Clients
connected_clients:64    #已连接客户端的数量(不包括通过从属服务器连接的客户端)
client_longest_output_list:0    #当前连接的客户端当中,最长的输出列表
client_biggest_input_buf:0    #当前连接的客户端当中,最大输入缓存
blocked_clients:0    #正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量

如果参数是memory,记录的是内存的相关信息:

[root@func-redis-001 ~]# redis-cli -h 127.0.0.1 -p 6379 info memory
# Memory
used_memory:2252984    #由 Redis 分配器分配的内存总量,以字节(byte)为单位
used_memory_human:2.15M    #上面的数字加上了单位
used_memory_rss:9293824    #常驻集大小,即Redis已分配的内存总量。这个值和top、ps等命令的输出一致
used_memory_peak:2607520    #Redis 的内存消耗峰值(以字节为单位)
used_memory_peak_human:2.49M    #上面的数字加上了单位
used_memory_lua:33792    #Lua 引擎所使用的内存大小(以字节为单位)
mem_fragmentation_ratio:4.13    #used_memory_rss 和 used_memory 之间的比率
mem_allocator:jemalloc-3.2.0    #在编译时指定的,Redis所使用的内存分配器。可以是libc、jemalloc或者tcmalloc。

这里要注意!在理想情况下, used_memory_rss 的值应该只比 used_memory 稍微高一点儿(我这个机器就已经属于严重的级别了)。当 rss > used ,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。内存碎片的比率可以通过 mem_fragmentation_ratio 的值看出。当 used > rss 时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。
如果参数是stats,那就是统计的相关信息:

[root@func-redis-001 ~]# redis-cli -h 127.0.0.1 -p 6379 info stats
# Stats
total_connections_received:150383    #服务器已接受的连接请求数量
total_commands_processed:500935    #服务器已执行的命令数量
instantaneous_ops_per_sec:0    #服务器每秒钟执行的命令数量
rejected_connections:0    #因为最大客户端数量限制而被拒绝的连接请求数量
sync_full:0    
sync_partial_ok:0    
sync_partial_err:0    #查找数据库键成功的次数
expired_keys:41    #因为过期而被自动删除的数据库键数量
evicted_keys:0    #因为最大内存容量限制而被驱逐(evict)的键数量
keyspace_hits:78121    #查找数据库键成功的次数
keyspace_misses:56    #查找数据库键失败的次数
pubsub_channels:0    #目前被订阅的频道数量
pubsub_patterns:0    #目前被订阅的模式数量
latest_fork_usec:878    #最近一次 fork() 操作耗费的微秒数

如果参数是CPU,那么就会返回CPU的相关信息:

[root@func-redis-001 ~]# redis-cli -h 127.0.0.1 -p 6379 info cpu
# CPU
used_cpu_sys:63.95    #Redis服务器耗费的系统CPU
used_cpu_user:129.54    #Redis服务器耗费的用户CPU 
used_cpu_sys_children:1.70    #子进程耗费的系统CPU
used_cpu_user_children:1.03    #子进程耗费的用户CPU

如果参数是keyspace,那么就会返回数据库相关的统计信息:

[root@func-redis-001 ~]# redis-cli -h 127.0.0.1 -p 6379 info keyspace
# Keyspace
db0:keys=262,expires=183,avg_ttl=284091259423    #据库的键数量、数据库设置有过期时间的key的数量(这个值减少是正常的)

使用zabbix监控redis
用zabbix监控redis是一个很简单的事儿,只需要把需要监控的数据提取出来即可。而提取数据的方法就是利用info去得到对应的数值。
首先先来一个判断redis服务器连接的脚本:

[root@func-redis-001 ~]# cat check_redis.sh
#这个脚本是用来zabbix监控自建redis的
#!/bin/bash
PORT='6379'
PASSWD=‘REDIS密码’ 
STATUS_redis=$(redis-cli -h '127.0.0.1' -p $PORT -a $PASSWD ping)
if [ "$STATUS_redis" == 'PONG' ];then
        echo '1'
else
        echo '0'
fi

然后更改zabbix_agentd.conf,如下:

UserParameter=redis_status[*],redis-cli -h '127.0.0.1' -p $1 info | grep -w $2 | awk -F':' '{print $NF}'
UserParameter=redis_ping,sudo sh /root/check_redis.sh

修改/etc/sudoers文件如下:

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
zabbix  ALL=(ALL)       NOPASSWD:ALL    #这个是新增
Defaults:zabbix !requiretty        #这个是新增

保存之后,重启zabbix-agent服务,由于我这个redis是通过zabbix-proxy监控的,所以在zabbix-proxy一端用zabbix_get来查看结果:
在这里插入图片描述
然后在zabbix-proxy的模板里面添加一些需要监控的item即可,有必要的话可以设置trigger+action用来报警,如图:
在这里插入图片描述
最后就是grafana搞一个炫酷的图表来,如图:
在这里插入图片描述
最后一点,关于redis的内存优化,各位可以来看看,写的很全面了。还有zabbix各种模板整理,有需要的同学也可以去下载:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135781.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月3日 下午10:20
下一篇 2022年5月3日 下午10:20


相关推荐

  • 西门子plc485通讯控制变频器_西门子300plc波特率怎么改

    西门子plc485通讯控制变频器_西门子300plc波特率怎么改品牌:Endaic型号:CHNet-S7300MD产品简介CHNetS7-S7300MD用于西门子S7-200/SMARTS7-200/S7-300/S7-400/西门子数控840D、840DSL等PLC的以太网数据采集,非常方便构建生产管理系统。CHNetS7-S7300MD不占用PLC编程口,即编程软件/上位机软件通过以太网对PLC数据监控和采集的同时,触摸屏可以通过扩展RS485口与PLC进行通讯。CHNetS7-S7300MD支持工控领域内绝大多数SCADA软件,支持西门子S7TCP.

    2022年10月8日
    6
  • war包和jar包的区别

    war包和jar包的区别jar包:对于学习java的人来说应该并不陌生。我们也经常使用也一些jar包。其实jar包就是java的类进行编译生成的class文件就行打包的压缩包而已。里面就是一些class文件。当我们自己使用maven写一些java程序,进行打包生成jar包。同时在可以在其他的工程下使用,但是我们在这个工程依赖的jar包,在其他工程使用该jar包也要导入。这是jar的里面的class文件war包…

    2022年5月24日
    51
  • UFT自动化测试

    UFT自动化测试自动化测试静态自动化:代码检测,类似于编译工具的编译系统动态自动化:基于浏览器和DOM对象的自动化:selemnium,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、MozillaFirefox、MozillaSuite等。这个工具的主要功能包括:测试与浏览器的兼容性–测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能–创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成Net、J…

    2022年5月28日
    66
  • Snappy安装

    Snappy安装1 功能说明使用 snappy 压缩来提升 mapreduce 和 hbase 的性能 其实就是用 CPU 换 IO 吞吐量和磁盘空间 配置并使用 snappy 有如下几点要求 首先需要 hadoop 集群的 native 库已经收到编译好 并且添加了对 snappy 的支持 编译 hadoop 源码之前安装了 snappy 并且编译时指定 Drequire snappy 参数 我使用的版本是 hadoop 2 5 0 cdh5

    2026年3月18日
    1
  • nn.moduleList 和Sequential由来、用法和实例 —— 写网络模型

    nn.moduleList 和Sequential由来、用法和实例 —— 写网络模型对于 cnn 前馈神经网络如果前馈一次写一个 forward 函数会有些麻烦 在此就有两种简化方式 ModuleList 和 Sequential 其中 Sequential 是一个特殊的 module 它包含几个子 Module 前向传播时会将输入一层接一层的传递下去 ModuleList 也是一个特殊的 module 可以包含几个子 module 可以像用 list 一样使用它 但不能直接把输入传给 ModuleList 下

    2026年3月16日
    2
  • 如何删除带有密码的赛门铁克企业版客户端?

    如何删除带有密码的赛门铁克企业版客户端?如何删除带有密码的赛门铁克企业版客户端?NortonAntiVirus的客户或赛门铁克防病毒客户尤其是企业版客户端可以安装作为管理网络安装类型由赛门铁克防病毒服务器。当赛门铁克防病毒客户端的管理,系统会提示输入密码时,卸载客户端通过在本地计算机上控制面板添加或删除程序Applet的。如果您不知道或忘记密码,客户端是无法卸载或删除。客户端卸载的密码是不同的从服务器组密码,可以…

    2022年5月7日
    102

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号