微信号:ITDevOps

介绍:最新IT运维资讯...

ELK技术实战-导致Redis队列堆积的大日志条目

2016-07-06 07:53 彭东稳

提前说明,ELK是什么?Redis队列是什么?自行了解。

在使用ELK过程中,一般都是使用Redis或kafka做队列,用来缓存。基本架构图如下:

当然,我们的Redis开了多个是实例,用来存储不同的Key,因为日志量太大。

突然报警,说6382 Redis实例队列堆积,上机器看了一下paltform这个key,堆积如下:


然后看了一下此实例的QPS。


会发现QPS太低,一直都在3千到4千左右,偶尔会跑到2万到3万。然后又看了一下这个实例的资源使用情况,如下:


可以发现内存用2G,CPU用6.5%并不高。然后又看了一下其他机器的QPS,基本都在几万,很平稳(Redis机器配置如下:16G 8核)。


然后看了一下此机器的带宽,如下:


会发现,很奇葩,Incoming的带宽很稳定,一直在16MBit/s,而Outgoing的带宽很不稳定,波动太大。最大会跑到65MBit,平时都在2M左右。

根据以上这些条件,考虑了导致Redis队列堆积的原因有这么几个:

1)Redis这台机器的瓶颈,但查看资源使用也很低;

2)ELK中Logstash去redis中取数据的index太少,但我们开了15个index,所以不存在这个问题;

3)ELK打进Redis队列中的日志有非常大的条目,这个是同事说的;

后来去ELK上查看了使用paltform key的所有索引,然后就找到有一个索引有非常大的日志条目。当时挑了一条日志看了一下大小,为44k。


最后,问题找出来了,就去找开发,经过开发确认日志打错了,并做了修改。




ELK

培训

全国首家ELK性能优化培训开课啦!BAT一线高级工程师亲自授课!贴近生产干货连连!详情请联系 小静老师 QQ:3178001965



 
IT自动化运维 更多文章 传统低端运维跟高大上自动化运维的区别 运维的本质究竟是什么? OpenStack集群支持多虚拟化技术的实现方法 何为IT运维自动化? 从携程网的故障中我们应该反思什么?
猜您喜欢 七夕节到了,单身的程序猿在等什么 第八十九讲 综合运用(4) 深度链接——APP用户增长的引擎 英国商务部最新分享经济调查报告(上) Android App 启动优化