mongodb分片集群日志的连接定位
本文介绍了mongodb分片集群日志的连接定位的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
如何从mongodb的日志片段I COMMAND [conn10217] 中的conn10217定位到是那个mongos连接过来的发起的command请求,能定位到是哪个服务器(ip)上过来的请求。
解决方案
1.通过查看mongodb的源代码,在客户端线程初始化中有这样一处代码。
string fullDesc = desc;
if ( str::equals( "conn" , desc ) && mp != NULL )
fullDesc = str::stream() << desc << mp->connectionId();
2.从源代码中可以看出conn后面的数字是内部的分配的连接id,且通过观察mongodb的启动日志发现这个id是从1开始每次递增1,在日志会打出对端的信息(ip:port)和#后的connectionId。
3.综上只需要过滤mongodb的日志mongod.log(我这里的日志文件名命名为:mongod.log)即可定位是哪个主机发过来的命令,命令如下:
cat mongod.log | grep accept | grep "#10217"
这篇关于mongodb分片集群日志的连接定位的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文