mongodb分片叢集日誌的連接定位
phpcn_u1582
phpcn_u1582 2017-05-02 09:25:04
0
1
552

如何從mongodb的日誌片段「I COMMAND [conn10217]」 中的conn10217定位到是那個mongos連接過來的發起的command請求,能定位到是哪個伺服器(ip)上過來的請求。

phpcn_u1582
phpcn_u1582

全部回覆(1)
刘奇

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"

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板