MongoDB のモニター

「 Instana 」エージェントをインストールすると、「 MongoDB 」センサーが自動的に展開およびインストールされます。

サポート情報

MongoDB センサーが現在のお使いの環境に対応しているかどうかを確認するには、以下のサポート情報セクションをご確認ください:

サポート対象のオペレーティング・システム

このセンサーは、 Instana のホストエージェントと同じオペレーティングシステムに対応しています。 詳細については、各ホストエージェントの 「対応OS 」セクションを参照してください。例:

注: OSの対応状況は、技術および監視方法によって異なります。 リモート監視については、 Instana エージェントは、対象となる技術のOSに関係なく、 Instana がサポートするあらゆるOS上で実行可能です。 ネイティブ監視を行うには、 Instana エージェントと対象のテクノロジーの両方が、同じオペレーティングシステムに対応している必要があります。

対応バージョンとサポート方針

このセンサーは、以下のバージョンの MongoDB および MongoDB Atlas に対応しています:

  • MongoDB 3.2.x
  • MongoDB 3.4.x
  • MongoDB 3.6.x
  • MongoDB 4.0.x
  • MongoDB および MongoDB Atlas 4.2.x
  • MongoDB および MongoDB Atlas 4.4.x
  • MongoDB および MongoDB Atlas 5.0.x
  • MongoDB および MongoDB Atlas 6.0.x
  • MongoDB および MongoDB Atlas 7.0.x
  • MongoDB および MongoDB Atlas 8.0.4

以下の表は、最新のサポート対象バージョンとサポート方針を示しています:

テクノロジー サポート・ポリシー 最新技術バージョン サポートされる最新バージョン
MongoDB 45 日間 8.3.4 8.3.3
MongoDB Atlas 45 日間 8.3.4 8.2.7

サポートポリシーに関する詳細については、 「センサーのサポート戦略」 を参照してください。

構成

MongoDB 認証が無効な状態で

アクションは不要です。 認証が無効になっている MongoDB のモニターは、 configuration.yaml ファイルに構成を指定しなくても自動的に行われます。

MongoDB 認証が有効な場合

MongoDBをモニターするには、以下の最小限の役割を持つユーザーを作成する必要があります。

  • read - admin データベース上
  • clusterMonitoer - admin データベース上
  • read - local データベース上

mongo シェルで、 admin データベース内に Instana エージェントのユーザーを作成します。

  1. admin ユーザーとして認証します。
    use admin
    db.auth("admin", "YOUR_MONGODB_ADMIN_PASSWORD")
     
  2. MongoDB 3.x 以降のバージョンの場合は、 createUser コマンドを実行します。
    db.createUser({
      "user":"stan",
      "pwd": "UNIQUEPASSWORD",
      "roles" : [
        {role: 'read', db: 'admin' },
        {role: 'clusterMonitor', db: 'admin'},
        {role: 'read', db: 'local' }
      ]
    })
     
    注:MongoDB Atlas を使用する場合は、 MongoDB Atlas 管理コンソールを通じてのみ、すべてのロールが割り当てられたユーザーを作成してください。
  3. ユーザーが作成された後、エージェント構成ファイルでそのユーザーを構成できます。

    com.instana.plugin.mongodb:
      user: 'stan'
      source: 'admin'
      password: 'UNIQUEPASSWORD'
      poll_rate:
        general_metrics: 1 # general MongoDB metrics (connections, ops, etc.)
        replicaset_metrics: 30 # replica set state metrics
      host: '' # Optional: Explicit hostname or fully qualified domain name (FQDN) for MongoDB connection (for example, 'mongodb.example.com'). If not specified, the first hostname from the MongoDB bindIp configuration is used.
    注: 一般的なメトリクスの間隔のデフォルト値は 1 秒、レプリカセットの間隔は 30 秒です。 seconds.Thesource は、ユーザーが定義されているデータベースまたは認証ソースを指します。 詳細については、 MongoDB のドキュメントを参照してください。
    注:Instana を使用して MongoDB クラスタまたはスタンドアロンインスタンスを監視する場合は、特定の IP アドレス --bind_ip を設定するか、設定しない場合はデフォルト値の 127.0.0.1 を使用するようにしてください。 パラメータ bind_ip_all は使用しないでください。

MongoDB Atlas サポート

Instana エージェントは、異なるプロジェクトや組織にある MongoDB Atlas クラスタのリモート監視をサポートしています。 Instana エージェントが MongoDB Atlas 組織をモニターできるようにするには、 <agent_install_dir>/etc/instana/configuration.yamlで構成する必要があります。

com.instana.plugin.mongodb:
  user: 'stan'
  source: 'admin'
  password: 'UNIQUEPASSWORD'
  poll_rate:
    general_metrics: 1 # general MongoDB metrics (connections, ops, etc.)
    replicaset_metrics: 30 # replica set state metrics
  atlas:
    - publicKey: 'your public key'
      privateKey: 'your private key'
    - publicKey: 'your public key'
      privateKey: 'your private key'
 
注: 一般的なメトリクスの間隔のデフォルト値は1秒、レプリカセットの間隔は30秒です。
注:API キーは公開鍵と秘密鍵で構成されており、 MongoDB Atlas の組織レベルで定義する必要があります。 最低限必要な組織権限は Organization Read Only です。
注:MongoDB Atlas を使用する場合は、 MongoDB Atlas 管理コンソールを通じてのみ、すべてのロールが割り当てられたユーザーを作成してください。

SSL/TLS サポート

Instana エージェントを MongoDB サーバーに安全に接続するには、 <agent_install_dir>/etc/instana/configuration.yamlで構成する必要があります。

com.instana.plugin.mongodb:
  ...
  sslTrustStore: '/path/to/truststore.jks'
  sslTrustStorePassword: 'mongoTsPassword'
  sslKeyStore: '/path/to/sslKeyStoreFile.jks'
  sslKeyStorePassword: 'mongoKsPassword'
 

SSL / TLS のサポート機能を有効にするには、キーが Java キーストア形式(JKS)である必要があります。 これらの鍵の作成には、keytool を使用できます。

注: この機能により、 Instana エージェントは、 SSL または TLS を使用して MongoDB に接続できるようになります。 接続が確立された後、認証情報(ユーザー名とパスワード)を使用して認証データベースにアクセスします。

メトリック収集

メトリクスを表示するには、 Instana のユーザーインターフェースのサイドバーで 「Infrastructure」 を選択し、監視対象のホストをクリックして、収集されたすべてのメトリクスと監視対象のプロセスが表示されたホストダッシュボードを表示します。

構成データ
  • バージョン
  • ポート
  • ストレージ・エンジン
  • データベース
  • mongosノードタイプ:シャーディングされたクラスターの場合、インスタンスを、 config_server、または として識別します。 shard_server
  • DB接続文字列の設定:インスタンス mongos でのみ利用可能です
パフォーマンス・メトリック
データベース・アクティビティー
メトリック 説明
読み取り 読み取られた文書の数
挿入済み 挿入された文書の数
アップロード済み アップロードされた文書の数
削除済み 削除された文書の数
操作カウンタ
メトリック 説明
Update mongodインスタンスが最後に起動してから受信した更新操作の総数。
挿入 mongodインスタンスが最後に起動してから受信した挿入操作の総数。
照会 mongodインスタンスが最後に起動してから受信したクエリの総数。
削除 mongodインスタンスが最後に起動してから実行された削除操作の総数。
getMore mongodインスタンスが最後に起動してから、 getMore 操作の総数。
メモリー
メトリック 説明
仮想 MongoDB プロセス全体の仮想メモリ。 ジャーナリングが有効になっている場合、この値は通常、マップされたメモリの2倍のサイズになります。
マップ済み MongoDB プロセスがデータベースをメモリにマッピングするために使用する仮想メモリの量。 この値は通常、データベースのサイズです。
クライアント
メトリック 説明
接続数 MongoDB サーバーに現在接続中のアクティブなクライアントの数。
ActiveClients ライター 書き込み操作を実行しているアクティブなクライアント接続の数。
ActiveClients リーダー 読み取り操作を実行しているアクティブなクライアント接続の数。
データベース (データベースごと)
メトリック 説明
データベースのサイズ データベース・サイズ
レプリカ・セット (存在する場合)
メトリック 説明
適用操作数 内部適用操作の数
適用バッチ数 内部適用バッチの数
合計適用バッチ (ミリ秒) 適用バッチの期間 (ミリ秒)
バッファ数 バッファーの数
バッファーのサイズ バッファーのサイズ
ネットワーク操作 ネットワーク操作数
ネットワーク・バイト数 ネットワーク操作のサイズ
文書プリロード 文書プリロード操作の数
合計文書プリロード (ミリ秒) 文書プリロードの期間 (ミリ秒)
Idx プリロード Idx プリロード操作の数
合計 Idx プリロード (ミリ秒) Idx プリロードの期間 (ミリ秒)
レプリケーション・ラグ 1 次上の書き込み操作と 2 次へのコピーとの間の遅延 (ミリ秒)
Atlas クラスター (存在する場合)
メトリック 説明
読み取り 読み取られた文書の数
挿入済み 挿入された文書の数
アップロード済み アップロードされた文書の数
削除済み 削除された文書の数
接続数 現在接続されているクライアントの数
ネットワーク操作 ネットワーク操作数
ネットワーク・バイト数 ネットワーク操作のサイズ
シャーディングされたクラスター(MongoDBおよび設定サーバー)

MongoDB のシャーディングされたクラスタの場合、 Instana はmongosルーターインスタンスと設定サーバーの両方を監視し、クラスタの健全性と接続状況を追跡します。

Mongosのメトリクス(存在する場合)

Mongosの設定データ

mongosインスタンスについては、以下の設定情報が収集されます:

構成アイテム 説明
バージョン MongoDB mongosインスタンスで実行中のバージョン
ポート mongosインスタンスがリスニングしているポート番号
ストレージ・エンジン mongosインスタンスで使用されるストレージエンジン
ノード・タイプ MongoDB ノードの種類(ルーターインスタンスの場合はmongos)
構成DB 構成サーバーのレプリカセット用の接続文字列

mongosダッシュボードでは、以下のメトリクスが利用可能です:

メトリック・カテゴリー メトリック 説明
接続数 接続数 mongosに接続中のアクティブなクライアント数
データベース・サイズ 合計データベース・サイズ mongos 経由でアクセス可能なすべてのデータベースの合計サイズ
データベース・アクティビティー 読み取り、挿入、更新、削除 読み込まれた、挿入された、更新された、および削除されたドキュメントの数
クライアント 接続数 アクティブなクライアント接続
メモリー 仮想、マッピング済み mongos プロセスによる仮想メモリとマッピングされたメモリの使用状況
読み取り要求 (秒当たり) クエリ、詳細を表示 1秒あたりのクエリおよび getMore 操作数
書き込み要求 (秒当たり) 挿入、更新、削除 1秒あたりのINSERT、UPDATE、DELETE操作数
読み取り操作を実行するクライアントの数 アクティブなクライアント数、利用可能な接続数 プール内のアクティブな読み取りクライアントと利用可能な接続数
書き込み操作を行うクライアント数 アクティブなクライアント数、ライター数、使用中の接続数 現在アクティブな書き込みクライアントと接続数
データベース 名前、サイズ このmongosインスタンスからアクセス可能なすべてのデータベースの一覧
注: Configサーバーは、アプリケーションデータではなくメタデータを保存するため、ドキュメントレベルのメトリクスは収集しません。
構成サーバーのメトリクス(存在する場合)

構成サーバーの設定データ

設定サーバーについては、以下の設定情報が収集されます:

構成アイテム 説明
バージョン MongoDB 設定サーバーで実行中のバージョン
ポート 設定サーバーがリスニングしているポート番号
ストレージ・エンジン 設定サーバーで使用されるストレージエンジン
ノード・タイプ MongoDB ノードの種類
レプリカ・セット名 構成サーバーのレプリカセット名
役割 レプリカセットにおけるノードの現在の役割

コンフィグサーバーは、クラスタのメタデータと設定を保存する専用のmongodインスタンスです。 これらは、通常のmongodインスタンスと同様に、 MongoDB の標準的なメトリクスを収集します:

メトリック・カテゴリー メトリック 説明
接続数 接続数 mongodに接続しているアクティブなクライアントの数
データベース・サイズ 合計データベース・サイズ mongod 経由でアクセス可能なすべてのデータベースの合計サイズ
データベース・アクティビティー 読み取り、挿入、更新、削除 読み込まれた、挿入された、更新された、および削除されたドキュメントの数
クライアント 接続数 アクティブなクライアント接続
メモリー 仮想、マッピング済み mongod プロセスによる仮想メモリとマッピングされたメモリの使用状況
読み取り要求 (秒当たり) クエリ、詳細を表示 1秒あたりのクエリおよび getMore 操作数
書き込み要求 (秒当たり) 挿入、更新、削除 1秒あたりのINSERT、UPDATE、DELETE操作数
読み取り操作を実行するクライアントの数 アクティブなクライアント数、利用可能な接続数 プール内のアクティブな読み取りクライアントと利用可能な接続数
書き込み操作を行うクライアント数 アクティブなクライアント数、ライター数、使用中の接続数 現在アクティブな書き込みクライアントと接続数
データベース 名前、サイズ このmongodインスタンスからアクセス可能なすべてのデータベースの一覧
注: Configサーバーは、アプリケーションデータではなくメタデータを保存するため、ドキュメントレベルのメトリクスは収集しません。
構成サーバーのレプリカセットのメトリクス(存在する場合)

構成サーバーは、高可用性を確保するためにレプリカセットとして展開されます。 以下のレプリカセットのメトリクスが収集されます:

メトリック・カテゴリー メトリック 説明
データベース・アクティビティー 読み取り、挿入、更新、削除 読み込まれた、挿入された、更新された、および削除されたドキュメントの数
レプリケーション・パフォーマンス レプリケーション・ラグ プライマリへの書き込みとセカンダリへのコピーとの間の遅延(ms)
クライアント 接続数 アクティブなクライアント接続数
操作の適用 操作を適用、バッチを適用、バッチの合計を適用 内部適用操作、バッチ、および合計所要時間(ms)
ネットワーク ネットワーク運用、ネットワーク用語 ネットワーク運用件数および規模
バッファー バッファ数、バッファサイズ バッファの数とバッファサイズ
プリロード ドキュメント、索引、ドキュメント合計、索引合計 ドキュメントおよびインデックスのプリロード処理と所要時間(ms)
モニタリングのメリット

シャーディングされたクラスタの監視により、以下の領域を可視化できます:

  • Mongosルーター :ルーティングクエリにおける接続プールの健全性と使用率
  • 構成サーバーの可用性 :クラスタのメタデータ操作および構成変更において極めて重要
  • シャードの接続性とパフォーマンス :データノードが到達可能であり、応答性があることを保証する
  • シャーディングされたクラスタ全体の健全性 :分散アーキテクチャのエンドツーエンド監視

これらの指標は、以下の条件を満たすのに役立ちます:

  • Mongosサーバーは、設定サーバーおよびシャードとのアクティブな接続を維持します
  • 設定サーバーが利用可能であり、正常に動作している(クラスタの運用において不可欠)
  • シャーディングされたクラスタインフラストラクチャは、すべてのノードで正常に動作しています
  • クエリのルーティング性能は最適です
  • アプリケーションに影響が出る前に、潜在的な接続の問題を早期に検知します
正常性シグニチャー

各センサーについて、厳選された健康状態のシグネチャに関するナレッジベースが、受信したメトリクスと照らし合わせて継続的に評価され、ユーザーへの影響度に応じて問題やインシデントとして通知されます。

組み込みイベントは、エンティティのヘルスシグネチャに異常が検出されたことを受けて課題やインシデントをトリガーし、 カスタムイベントは、任意のエンティティの個別のメトリクスのしきい値に基づいて課題やインシデントをトリガーします。

MongoDB センサーの組み込みイベントに関する詳細については、「組み込みイベントのリファレンス」を参照してください。mongosインスタンスを使用した MongoDB のシャーディングクラスターに関する詳細については、 「 MongoDB シャーディングクラスター(Mongos)」 を参照してください。