查找RequestID的方法

今天中午收到金山云的告警短信,发现有几个服务器的CPU飙升,如图:

查找RequestID的方法


这个服务器的用途是用户上传云录像到云存储的,登陆到服务器,使用#curl http://127.0.0.1:9030/online/detect/test之后,发现已经没有任何的反应,在日志里筛选关键词cost后得到的内容如下:

查找RequestID的方法


看见此时的cost值特别高,表明很多录像在上传云存储的时候出现了困难,再详细筛选一下:

查找RequestID的方法

可见上传这个dav文件用时3000多毫秒,初步怀疑是金山云的云存储出现了抖动,于是找金山云的售后反馈这个情况。


金山云售后了解故障之后,需要我们提供“耗时长的RequestID”,但是我们狗日的开发在日志里没有体现这个ID。没有这个ID,金山无法准确定位,只能去大海捞针,痛扁开发不能解决问题,这个时候还能怎么办?


还能通过抓包来获得RequestID!


tcpdump的使用方法在这里省略掉,各位可以自行百度。在这里我们抓所有端口的包,命令是#tcpdump -s 0 -i any -v -w 包名.pcap,然后把这个包sz到windows里,如果windows有WireShark的话,直接双击这个pcap的图标,打开了这个pcap文件。


由于这个“上传”云存储是http协议,在筛选里面选择http,再找到“PUT”字段,如图:

查找RequestID的方法


右击这条,选择“追踪流”---“TCP流”,这样就获得了TCP的流程,上面的是整个上传的总体情况,比如鉴权、上传类型、文件大小以及目标地址等等:

查找RequestID的方法


而我们需要的RequestID 就在最下面:

查找RequestID的方法

这样就获取到了RequestID。


最后的最后,如果您觉得本文对您升职加薪有帮助,那么请不吝赞助之手,刷一下下面的二维码,赞助本人继续写更多的博文!

查找RequestID的方法



 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1961468