搜尋

首頁  >  問答  >  主體

mongodb分片叢集日誌的連接定位

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

phpcn_u1582phpcn_u15822768 天前540

全部回覆(1)我來回復

  • 怪我咯

    怪我咯2017-05-02 09:27:04

    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"

    回覆
    0
  • 取消回覆