配置 MongoDB 監視

Monitoring Agent for MongoDB 需要實例名稱。 您必須手動配置及啟動代理程式實例。 MongoDB 代理程式同時支援本端及遠端監視。 請參閱配置 MongoDB 代理程式同時進行遠端和本端監視的下列必要條件。

開始之前

  • 檢查軟硬體必備項目。 如需最新的系統需求資訊,請參閱 e MongoDB 代理程式 的軟體產品相容性報告 (SPCR)
  • 請確定配置 MongoDB 代理程式 的使用者具有必要的角色,以收集所有屬性的資料。
    • 若要在 MongoDB 資料庫 2.4 和 2.6 版上配置代理程式,則必須向使用者指派 clusterAdmin、readAnyDatabase 和 dbAdminAnyDatabase 角色
    • 若要在 MongoDB 資料庫 3.x 和 4.x 版上配置代理程式,則必須向使用者指派 clusterMonitor、readAnyDatabase 和 dbAdminAnyDatabase 角色
    若要瞭解所需的這些使用者角色的屬性群組,請參閱表 1
  • 使用現有使用者或在管理資料庫中新建一個使用者。
    重要: 在建立使用者並向使用者授與必要的角色之前,必須連接至 MongoDB 資料庫,並將資料庫變更為管理資料庫。 如果正以鑑別模式執行 mongod 或 mongos 處理程序,請輸入必要認證,以連接至 MongoDB 資料庫。
    1. 執行下列指令以連接至 MongoDB 資料庫:

      mongo IP:port

      其中
      • IP 是 mongod 或 mongos 處理程序的 IP 位址
      • port 是 mongod 或 mongos 處理程序的埠號
    2. 將資料庫變更為管理資料庫:

      use admin

    3. 執行下列其中一個指令來於 MongoDB 管理資料庫中新增使用者,並向該使用者指派所需的角色:
      • 對於 MongoDB 資料庫 2.4 版,執行下列指令:

        db.addUser({ user: username, pwd: password, roles: [ 'clusterAdmin', 'readAnyDatabase', 'dbAdminAnyDatabase' ] })

      • 對於 MongoDB 資料庫 2.6 版,執行下列指令:

        db.createUser({user: username, pwd: password, roles: [ 'clusterAdmin', 'readAnyDatabase', 'dbAdminAnyDatabase' ] })

      • 對於 MongoDB 資料庫 3.x 和 4.xx 版,執行下列指令:

        db.createUser({user: username, pwd: password, roles: [ 'clusterMonitor', 'readAnyDatabase', 'dbAdminAnyDatabase' ] })

    4. 執行下列指令來驗證使用者已新增至管理資料庫:

      db.auth(username, password)

      回覆碼 1 指示新增了使用者,而回覆碼 0 指示新增使用者失敗。

下表包含使用者角色以及這些使用者角色所需屬性的相關資訊:
表 1. 屬性群組及其所需的使用者角色
角色 MongoDB 資料庫版本 屬性群組
dbAdminAnyDatabase 2.x、3.x 和 4.x 回應時間
readAnyDatabase 2.x、3.x 和 4.x
  • Mongod 清單
  • 一般 Shard 資訊
  • 收集儲存體
  • 資料庫名稱
  • Shard 詳細資料
  • 集合儲存體詳細資料
clusterAdmin 2.x、3.x 和 4.x
  • Mongo 實例資訊
  • Mongo 實例 IO 資訊
  • APMUI 的 MII 副本一
  • APMUI 的 MII 副本二
  • Mongo 實例 DB 鎖定
  • 鎖定
  • MongoDB 鎖定
  • WiredTiger 詳細資料
  • MMAPv1 詳細資料
clusterMonitor 2.x、3.x 和 4.x
  • Mongo 實例資訊
  • Mongo 實例 IO 資訊
  • APMUI 的 MII 副本一
  • APMUI 的 MII 副本二
  • Mongo 實例 DB 鎖定
  • 鎖定
  • MongoDB 鎖定
  • WiredTiger 詳細資料
  • MMAPv1 詳細資料
  • 若要遠端監視 MongoDB 伺服器,請參閱兩個必要條件
    1. 由於 MongoDB 代理程式需要使用 mongo Shell 從遠端收集 MongoDB 伺服器的資訊,因此安裝及配置 MongoDB 代理程式的系統上必須具有 MongoDB 伺服器的實例。代理程式機器上的 MongoDB 伺服器的 mongo Shell 用來連接至遠端 MongoDB 伺服器,以進行監視。
    2. 在管理代理程式之系統的 /etc/hosts 檔中,存在遠端機器的項目。

關於這項作業

受管理系統名稱包括所指定的實例名稱。 例如,您可以將實例名稱指定為 instance_name:host_name:pc,其中 pc 是代理程式的 2 個字元的產品型號。 受管理系統名稱最多可以包含 32 個字元。 實例名稱最多可以包含 28 個字元減去主機名稱長度。 例如,如果您指定 Mongo2 作為實例名稱,則您的受管理系統名稱為 Mongo2:hostname:KJ
重要: 如果您指定長實例名稱,則受管理系統名稱會遭到截斷,因此代理程式碼無法完全顯示。

通常,產品版本與代理程式版本不同。 這裡的指示適用於此代理程式的最新版次。 如需如何檢查您環境中的代理程式版本的相關資訊,請參閱 代理程式版本指令。 如需代理程式版本清單以及每一個版本的新增功能的詳細資訊,請參閱變更歷程

記住:
  • 若要使代理程式順利收集資料,請使用 super (root) 使用者身分來啟動代理程式,或使用相同的使用者 ID 來啟動代理程式及 mongod 處理程序。
  • 在 MongoDB 作為叢集執行的環境中,確保在執行路由器處理程序的相同電腦上安裝代理程式。 在相同電腦上使用該電腦的 IP 位址及埠號配置代理程式,並將 TYPE 設定為 1
  • 在 MongoDB 以鑑別模式作為叢集執行的環境中,確保新增相同的使用者 ID,其含有叢集中所有 Shard 的必要權限。

您可透過使用預設值,透過編輯無聲自動回應檔,或透過回應提示,來配置代理程式。