Docs Menu
Docs Home
/
MongoDB データベース ツール

mongotop

項目一覧

  • Synopsis
  • 構文
  • オプション
  • フィールド
  • 詳細情報
  • 詳細

このドキュメントは、mongotop のバージョン 100.10.0 用です。

mongotop は、MongoDB インスタンス mongod がデータの読み取りと書き込みに費やす時間を追跡する方法を提供するコマンドライン ツールです。mongotop により、各コレクションごとに統計情報を取得できます。デフォルトでは、mongotop により、1 秒ごとに値が返されます。

mongotop 構文:

mongotop <options> <connection-string> <polling interval in seconds>

コマンドライン オプションなしで mongotop を実行すると、ポート 27017 経由で localhost で実行されている mongod インスタンスに接続し、デフォルトで 1 秒ごとに値を返します。

mongotop

mongotop が 30 秒ごとにレポートするようにするには、ポーリング間隔を指定します。

mongotop 30

mongod インスタンスに接続すると、プログラムは最初に接続について報告し、次に設定された頻度で統計について報告します。

2019-04-29T15:35:27.785-0400 connected to: 127.0.0.1
ns total read write <timestamp>
<db.collection> 81802ms 0ms 81802ms
...
mongotop [options] [frequency]

さまざまな コマンドライン オプション を使用して mongotop を実行できます。

たとえば、mongotop をリモート ホスト mongodb0.example.com で実行されている mongod インスタンスに接続し、30 秒ごとにレポートするには、次のようにします。

  • 必要なレポート頻度 (この例では 30 秒) と、ホストとポートを指定するための --uri オプションを含めることができます。

    mongotop 30 --uri='mongodb://mongodb0.example.com:27017' [additional options]

    mongod インスタンスに認証が必要な場合は、URI 接続文字列の一部としてユーザー、パスワード、および認証データベースを指定できます。

    mongotop 30 --uri='mongodb://user:password@mongodb0.example.com:27017/?authSource=admin' [additional options]

    mongotop を実行するユーザーには、serverStatus および top 権限が必要です。

    URI 接続文字列について詳しくは、--uri. を参照してください。

  • または、--host および --port オプションを使用して、ホストとポートを指定することもできます。

    mongotop 30 --host=mongodb0.example.com --port=27017 [additional options]

    mongod インスタンスに認証が必要な場合は、ユーザー -u と認証データベース --authenticationDatabase を指定できます。--password オプションを省略すると、 mongoexport がパスワードの入力を求めます。

    mongotop 30 --host=mongodb0.example.com --port=27017 -u=user --authenticationDatabase=admin [additional options]

    mongotop を実行するユーザーには、serverStatus および top 権限が必要です。

利用可能なオプションの詳細については、「オプション」を参照してください。

mongod インスタンスに接続すると、プログラムは最初に接続について報告し、次に設定された頻度で統計について報告します。

2019-04-29T15:35:27.785-0400 connected to: 127.0.0.1
ns total read write <timestamp>
<db.collection> 81802ms 0ms 81802ms
...
--help

mongotop のオプションと使用に関する情報を返します。

--verbose, -v

標準出力またはログファイルに返される内部レポートの量が増えます。-v フォームでの冗長性を高めるには、オプションを複数回含めてください(例: -vvvvv)。

--quiet

出力量を制限する quiet モードで mongotop を実行します。

このオプションにより次の項目が抑制されます。

  • データベースコマンドからの出力

  • レプリケーション アクティビティ

  • 接続を受け付けたイベント

  • 接続を終了したイベント

--version

mongotop のリリース番号を返します。

--config=<filename>

バージョン 100.3.0 の新機能

次のオプションの機密値を含む YAML 構成ファイルへのフル パスを mongotop に指定します。

これは、mongotop にパスワードを指定するのに、パスワード プロンプトを使用して指定する以外で推奨される方法です。

構成ファイルは以下の形式をとります。

password: <password>
uri: mongodb://mongodb0.example.com:27017
sslPEMKeyPassword: <password>

password: フィールドにパスワードを指定し、競合するパスワードを含む接続文字列を uri: フィールドに指定すると、エラーが発生します。

このファイルは、必ず適切なファイルシステム権限で保護してください。

注意

--config で構成ファイルを指定し、かつ mongotop--password--uri または --sslPEMKeyPassword オプションも使用する場合、各コマンドライン オプションによって構成ファイルの対応オプションが上書きされます。

--uri=<connectionString>

MongoDB 配置の解決可能な URI 接続文字列 を引用符で囲んで指定します。

--uri="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"

mongotop のバージョン 100.0 以降、接続文字列は、--uri オプションを使用せずに、位置パラメータとして入力することもできます。

mongotop mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

接続文字列は、位置指定パラメータとして mongodb:// または mongodb+srv:// で始まっている限り、コマンドラインの任意の点で指定できます。以下に例を挙げます。

mongotop --username joe --password secret1 mongodb://mongodb0.example.com:27017 --ssl

入力できる接続文字列は 1 つのみです。複数の値を含めようとすると、--uri オプションを使用する場合でも、位置引数として使用する場合でも、エラーになります。

接続文字列のコンポーネントの詳細については、「接続文字列 URI 形式」ドキュメントを参照してください。

注意

connection string 内の一部のコンポーネントは、--username や --password など、独自の明示的コマンドライン オプションを使用して指定することもできます。明示的オプションを使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

注意

mongotop を Ubuntu 18.04 で使用する場合、(mongodb+srv:// 形式で)SRV 接続文字列--uri オプションと併用する場合、cannot unmarshal DNS というエラー メッセージが表示されることがあります。その場合は、次のいずれかのオプションを代わりに使用します。

警告

一部のシステムでは、--uri オプションで接続文字列に設定されたパスワードが、他のユーザーによって呼び出される可能性のある ps などのシステム ステータス プログラムに表示される場合があります。そのため、次の代替策を検討しましょう。

  • 接続文字列のパスワードを省略し、インタラクティブなパスワード プロンプトを受け取る

  • --config オプションを使用して、パスワードを含む構成ファイルを指定します。

--host=<hostname><:port>, -h=<hostname><:port>

デフォルト: localhost:27017

MongoDB 配置の解決可能なホスト名を指定します。デフォルトでは、mongotop によってポート番号 27017 のローカルホストで実行されている MongoDB インスタンスに接続しようとします。

レプリカセットに接続するには、replSetName とセットノードのシードリストを次のように指定します。

--host=<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>

レプリカセット リスト形式を指定する場合、mongotop は常にプライマリに接続します。

また、レプリカセットの任意の 1 つのノードに接続するには、そのノードのみのホストとポートを指定します。

--host=<hostname1><:port>

IPv6 を使用し、<address>:<port> 形式を使用する場合は、アドレスとポートの組み合わせの一部を括弧で囲む必要があります(例: [<address>])。

あるいは、URI connection string でホスト名を直接指定することもできます。--host を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

プライマリ に到達できないレプリカセットに接続した場合、mongotop はエラー メッセージを返します。

--port=<port>

デフォルト: 27017

MongoDB インスタンスがクライアント接続のためにリッスンする TCP ポートを指定します。

あるいは、URI connection string でポートを直接指定することもできます。--port を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

--ssl

TLS/SSL サポートが有効になっている mongod または mongos への接続を有効にします。

あるいは、URI connection string で TLS/SSL サポートを直接構成することもできます。--ssl を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

--sslCAFile=<filename>

証明書認証機関からのルート証明書チェーンを含む .pem ファイルを指定します。相対パスまたは絶対パスを使用して .pem ファイルのファイル名を指定します。

あるいは、URI connection string.pem ファイルを直接指定することもできます。接続文字列を提供し、さらに --sslCAFile を使用中に競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

--sslPEMKeyFile=<filename>

TLS/SSL 証明書とキーの両方を含む .pem ファイルを指定します。相対パスまたは絶対パスを使用して、.pem ファイルのファイル名を指定します。

このオプションが必要になるのは、--ssl オプションを使用して mongod または mongos に接続し、かつこれらで allowConnectionsWithoutCertificates. がない状態で CAFile が有効化されている場合です。

あるいは、URI connection string.pem ファイルを直接指定することもできます。接続文字列を提供し、さらに --sslPEMKeyFile を使用中に競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

--sslPEMKeyPassword=<value>

証明書キーファイル(例: --sslPEMKeyFile)を復号化するためのパスワードを指定します。--sslPEMKeyPassword オプションは、証明書キーファイルが暗号化されている場合にのみ使用してください。いずれの場合も、mongotop はログおよびレポート出力でパスワードを非表示にします。

PEM ファイル内の秘密キーが暗号化されており、--sslPEMKeyPassword オプションを指定しない場合は、mongotop によってパスフレーズの入力が求められます。詳しくは、「TLS/SSL 証明書のパスフレーズ」を参照してください。

あるいは、URI connection string でパスワードを直接指定することもできます。--sslPEMKeyPassword を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

警告

一部のシステムでは、--sslPEMKeyPassword オプションを使用して直接提供されたパスワードは、他のユーザーによって呼び出される可能性のある ps などのシステム ステータス プログラムに表示される場合があります。代わりに --config オプションを使用して、パスワードを含む構成ファイルを指定することを検討してください。

--sslCRLFile=<filename>

証明書失効リストを含む .pem ファイルを指定します。相対パスまたは絶対パスを使用して .pem ファイルのファイル名を指定します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

--sslAllowInvalidCertificates

サーバー証明書の検証チェックをバイパスし、無効な証明書を使用できるようにします。allowInvalidCertificates 設定を使用すると、MongoDB では無効な証明書の使用に対する警告としてログに記録されます。

警告

--sslAllowInvalidCertificates オプションは使用可能ですが、可能な限り使用しないでください。--sslAllowInvalidCertificates の使用が必要な場合は、侵入が不可能なシステムでのみこのオプションを使用してください。

サーバー証明書を検証せずに mongod または mongos インスタンスに接続すると、潜在的なセキュリティ上のリスクが発生します。TLS/SSL 証明書のホスト名の検証を無効にするだけの場合は、--sslAllowInvalidHostnames を参照してください。

あるいは、URI connection string で証明書の検証を直接無効にすることもできます。接続文字列を提供し、さらに --sslAllowInvalidCertificates を使用して競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

--sslAllowInvalidHostnames

TLS/SSL 証明書のホスト名の検証を無効にします。証明書内のホスト名が指定されたホスト名と一致しない場合でも、mongotop によって MongoDB インスタンスへの接続が許可されます。

あるいは、URI connection string でホスト名の検証を直接無効にすることもできます。--sslAllowInvalidHostnames を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

--username=<username>, -u=<username>

認証を使用する MongoDB データベースへの認証すに使用するユーザー名を指定します。--password オプションおよび --authenticationDatabase オプションと組み合わせて使用します。

あるいは、URI connection string でユーザー名を直接指定することもできます。--username を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

MONGODB-AWS authentication mechanism を使用して MongoDB Atlas クラスターに接続する場合は、次の場所で AWS アクセス キー ID を指定できます。

それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。

--password=<password>, -p=<password>

認証を使用する MongoDB データベースに対して認証するためのパスワードを指定します。--username オプションおよび --authenticationDatabase オプションと組み合わせて使用します。

ユーザーにパスワードの入力を求めるには、--username オプションを --password なしで渡すか、--password "" のように --password の値に空の文字列を指定します。

あるいは、URI connection string でパスワードを直接指定することもできます。--password を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

MONGODB-AWS authentication mechanism を使用して MongoDB Atlas クラスターに接続する場合は、次の場所で AWS シークレットアクセスキーを指定できます。

  • このフィールド

  • connection string、または

  • AWS_SECRET_ACCESS_KEY 環境変数。

それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。

警告

一部のシステムでは、--password オプションを使用して直接提供されたパスワードは、他のユーザーによって呼び出される可能性のある ps などのシステム ステータス プログラムに表示される場合があります。そのため、次の代替策を検討しましょう。

  • --password オプションを省略し、インタラクティブなパスワード プロンプトを表示する

  • --config オプションを使用して、パスワードを含む構成ファイルを指定します。

--awsSessionToken=<AWS Session Token>

MONGODB-AWS authentication mechanism を使用して MongoDB Atlas クラスターに接続し、AWS アクセスキー ID とシークレットアクセスキーに加えてセッション トークンを使用する場合は、次の場所に AWS セッション トークンを指定できます。

それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。

MONGODB-AWS authentication mechanism を使用している場合にのみ有効です。

--authenticationDatabase=<dbname>

指定された--usernameが作成された認証データベースを指定します。 --authenticationDatabase自己管理型配置での認証mongod mongosを使用する と インスタンスには が必要です。詳細については、「認証データベース 」を参照してください。

GSSAPI(Kerberos)、PLAIN(LDAP SASL)、またはMONGODB-AWS authentication mechanisms を使用する場合は、--authenticationDatabase$externalに設定する必要があります。

あるいは、URI connection string で認証データベースを直接指定することもできます。--authenticationDatabase を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

--authenticationMechanism=<name>

デフォルト: SCRAM-SHA-1

mongotop インスタンスがmongod または mongos への認証に使用する認証メカニズムを指定します。

バージョン 100.1.0 での変更: バージョン 100.1.0 以降、MongoDB Atlas クラスターへの接続時に MONGODB-AWS 認証メカニズムのサポートが mongotop に追加されます。

説明
SHA-1 ハッシュ関数を使用する RFC5802 標準の Salted Challenge Response Authentication Mechanismです。

SHA-256 ハッシュ関数を使用する RFC 7677 標準の Salted Challenge Response Authentication Mechanism。

featureCompatibilityVersion を 4.0 に設定する必要があります。

MongoDB TLS/SSL 証明書認証。
MONGODB-AWS

MongoDB Atlas クラスターへの接続に使用する AWS IAM 認証情報を使用した外部認証。「AWS IAM 認証情報を使用して MongoDB Atlas クラスターに接続する」を参照してください。

バージョン 100.1.0 の新機能

GSSAPI(Kerberos)
Kerberos を使用する外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。
PLAIN(LDAP SASL)
LDAP を使用する外部認証。データベース内のユーザー認証には、PLAIN を使用することもできます。PLAIN はパスワードをプレーン テキストで送信します。このメカニズムは MongoDB Enterprise でのみ使用できます。

あるいは、URI connection string で認証メカニズムを直接指定することもできます。--authenticationMechanism を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

--gssapiServiceName=<serviceName>

GSSAPI/Kerberos を使用してサービスの名前を指定します。サービスがデフォルト名 mongodb を使用しない場合のみ必要となります。

このオプションは MongoDB Enterprise でのみ使用できます。

--gssapiHostName=<hostname>

GSSAPI/Kerberos を使用してサービスのホスト名を指定します。マシンのホスト名が DNS で解決されたホスト名と一致しない場合にのみ必要となります。

このオプションは MongoDB Enterprise でのみ使用できます。

--locks

mongotop のモードを切り替えて、データベースごとの ロック の使用状況を報告します。このデータは、MongoDB 2.6 またはそれ以前のインスタンスに接続されている場合にのみ使用できます。

--locks は、データベースごとのロックの使用状況を報告しない mongod 3.0 以降のインスタンスに対して呼び出されるとエラーを返します。

--rowcount=<int>, -n=<int>

mongotop が印刷するデータの行数。「無期限 0」

--json

mongotop の出力を JSON 形式で返します。タイミング データに加えて、--json オプションはポーリング間隔中に実行された操作の数も返します。

<sleeptime>

最後の引数は、mongotop が呼び出し間で待機する時間の長さ(秒単位)です。デフォルトでは、mongotop は 1 秒ごとにデータを返します。

mongod インスタンスに接続すると、プログラムは最初に接続について報告し、次に設定された頻度で統計について報告します。mongotop はミリ秒(ms)単位で指定された時間値を返します。

2019-04-29T15:35:27.785-0400 connected to: 127.0.0.1
ns total read write <timestamp>
<db.collection> 81802ms 0ms 81802ms
...
ns total read write <timestamp>
<db.collection> 0ms 0ms 0ms
...

mongotop --locks オプションに応じて、アクティブな名前空間またはデータベースのみを報告します。データベースかコレクションが表示されない場合、最近のアクティビティはありません。mongo shell で簡単な操作を発行して、mongotop の出力に影響を与えるアクティビティを生成できます。

mongotop.ns

データベース名とコレクションを組み合わせたデータベース名前空間が含まれます。

mongotop --locks を使用すると、ns フィールドは mongotop 出力に表示されません。

mongotop.db

データベースの名前が含まれます。. という名前のデータベースは、特定のデータベースではなく、グローバル ロックを参照します。

このフィールドは、--locks オプションを使用して mongotop を呼び出さない限り表示されません。

mongotop.total

この mongod がこの名前空間で操作に費やした合計時間を提供します。

mongotop.read

この mongod がこの名前空間で読み取り操作を実行するのに費やした時間を提供します。

mongotop.write

この mongod がこの名前空間で書き込み操作を実行するのに費やした時間を提供します。

mongotop.<timestamp>

返されるデータのタイムスタンプを提供します。

MongoDB の監視について詳しくは、「MongoDB の監視」を参照してください。

MongoDB のその他のさまざまなステータス出力に関する追加の背景情報については、以下を参照してください。

MongoDB メトリクスを提供する追加のユーティリティについては、mongostat を参照してください。

戻る