正文
Redis命令监控与简单分析
前言
为了能够快速识别分析redis的命令
自己在环境上面进行了一些简单的跟踪以及脚本
这里不全是进行metrics, 细致到具体的命令分析
脚本部分-1
mkdir -p /redismonitor/
cd /redismonitor/
find . -mtime +10 -iname *redis_monitor.log.tar.gz -exec rm -rf {} \;
sleep 10
kill -9 `ps -ef |grep redis-cli |grep monitor |grep -v grep | awk '{print $2}'`
for i in `ls *monitor.log ` ; do tar -czvf ${i}.tar.gz $i ; rm -rf ${i} ; done
sleep 10
nohup /bin/redis-cli monitor > /redismonitor/`date +%Y%m%d%H`_redis_monitor.log &
删除十天前的备份.
将上一天的文件打包成tar包并且执行删除验文件操作.
执行monitor监控redis, 存储文日期时间的文件.
脚本部分-2
cd /redismonitor
cat `date +%Y%m%d`01_redis_monitor.log |egrep '"SCAN" "0"' >/redismonitor/`date +%Y%m%d%H`_redis_monitor_scan.log
cat `date +%Y%m%d`01_redis_monitor.log | awk '{print $4}' |awk -F "\"" '{print $2}' |sort |uniq -c |sort -k1h >/redismonitor/`date +%Y%m%d%H`_redis_monitor_type.log
/bin/redis-cli dbsize >/redismonitor/`date +%Y%m%d%H`_redis_monitor_dbsize.log
分析所有的scan命令.
分析所有的指令类型并且进行排序.
分析当前redis的键值对数量.
非自动执行的脚本
cat 2023041201_redis_monitor.log |grep -in "\"match\" \"functionDistributedCacheName" > scanfunctionDistributedCacheName.log
分析scan命令分组情况.
计划任务处理
1 1 * * * /deploy/redismo
1 */2 * * * /deploy/redismocheck
每天凌晨一点一份开始监控.
每两个小时查看一下redis信息 归集出接过来.