このドキュメントは、mongostat のバージョン 100.19.0 用です。
Synopsis
mongostat は、現在実行中のmongod またはmongos インスタンスのステータスの概要を簡単に表示するコマンドライン ツールです。mongostat を使用して、システムのボトルネックを特定します。
mongostat UNIX/Linux のファイルシステムユーティリティ vmstat と機能的に似ていますが、mongod および mongos インスタンスに関するデータを提供します。
mongostatシェルではなく、 システムコマンドラインからmongo を実行します。
構文
mongostat 構文:
mongostat <options> <connection-string> <polling interval in seconds>
オプション
--config=<filename>バージョン100.3.0の新機能。
次の
mongostatオプションの機密値を含む YAML 構成ファイルへのフル パスを指定します:これは、
mongostatにパスワードを指定する際に、パスワード プロンプトを使用して指定する以外で推奨される方法です。ファイル内の引数は任意に組み合わせて使用することができます。構成ファイルは以下の形式をとります。
password: <password> uri: mongodb://mongodb0.example.com:27017 sslPEMKeyPassword: <password> uriを指定せずにpasswordオプションを指定する場合は、mongostatコマンドラインオプションを使用して、--usernameや--hostなど、接続文字列の他のコンポーネントを指定できます。このファイルは、必ず適切なファイルシステム権限で保護してください。
重要
--configオプションを使用する際には、次の制限事項と動作にご注意ください。passwordフィールドを指定し、競合するパスワードを含む接続文字列をuriフィールドに指定した場合、mongorestoreはエラーをスローします。--configを使用して構成ファイルを指定し、かつ--password、--uri、または--sslPEMKeyPasswordmongostatコマンドラインオプションも使用している場合、コマンドラインオプションは対応する構成ファイルオプションを上書きします。
--uri=<connectionString>MongoDB 配置の解決可能な URI 接続文字列 を引用符で囲んで指定します。
--uri="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]" のバージョン
100.0mongostat以降では、 オプションを使用せずに、接続文字列を位置指定パラメータとして提供することもできます。--urimongostat mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] 接続文字列は、位置指定パラメータとして
mongodb://またはmongodb+srv://で始まっている限り、コマンドラインの任意の点で指定できます。以下に例を挙げます。mongostat --username joe --password secret1 mongodb://mongodb0.example.com:27017 --ssl 入力できる接続文字列は 1 つのみです。複数の値を含めようとすると、
--uriオプションを使用する場合でも、位置引数として使用する場合でも、エラーになります。接続文字列のコンポーネントの詳細については、「接続文字列 URI 形式」ドキュメントを参照してください。
注意
connection string内の一部のコンポーネントは、--usernameや--passwordなど、独自の明示的コマンドライン オプションを使用して指定することもできます。明示的オプションを使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。注意
mongostatUbuntu で18.04cannot unmarshal DNSを使用している場合、SRV 接続文字列(mongodb+srv://形式)を オプションとともに使用すると、--uriエラー メッセージが表示されることがあります。その場合は、次のいずれかのオプションを代わりに使用します。--uri非 SRV接続文字列(mongodb://形式)と オプション直接接続するホストを指定するための
--hostオプション
--host=<hostname><:port>, -h=<hostname><:port>デフォルト: localhost:27017
MongoDB 配置の解決可能なホスト名を指定します。デフォルトでは、
mongostatによってポート番号27017のローカルホストで実行されている MongoDB インスタンスに接続しようとします。レプリカセットに接続するには、次のように、レポートするセット ノードを指定できます(
--discoverフラグも参照)。--host=<hostname1><:port>,<hostname2><:port>,<...> IPv6 を使用し、
<address>:<port>形式を使用する場合は、アドレスとポートの組み合わせの一部を括弧で囲む必要があります(例:[<address>])。あるいは、
URI connection stringでホスト名を直接指定することもできます。--hostを使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。
--port=<port>デフォルト: 27017
MongoDB インスタンスがクライアント接続のためにリッスンする TCP ポートを指定します。
あるいは、
URI connection stringでポートを直接指定することもできます。接続文字列を提供すると同時に、--portを使用中に競合する情報を指定すると、エラーが発生します。
--sslTLS / SSL
mongodmongosサポートが有効になっている または への接続を有効にします。あるいは、
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オプションを使用して、allowConnectionsWithoutCertificatesなしでmongodmongosCAFileが有効になっている または に接続する場合に必要です。あるいは、
URI connection stringで.pemファイルを直接指定することもできます。--sslPEMKeyFileを使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。
--sslPEMKeyPassword=<value>証明書鍵ファイルの複合化用パスワード(
--sslPEMKeyFile--sslPEMKeyPassword)を指定します。証明書鍵ファイルが暗号化されている場合にのみ、 オプションを使用します。いずれの場合も、mongostatはすべてのログとレポート出力からパスワードを削除します。PEMファイル内の秘密キーが暗号化されており、
--sslPEMKeyPasswordオプションを指定しない場合は、mongostatはパスフレーズの入力を要求します。詳細については、「 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サーバー証明書の検証チェックをバイパスし、無効な証明書を使用できるようにします。 設定を使用すると、 MongoDB
allowInvalidCertificatesは無効な証明書の使用を警告としてログを記録します。警告
--sslAllowInvalidCertificatesオプションは使用可能ですが、可能な限り使用しないでください。--sslAllowInvalidCertificatesの使用が必要な場合は、侵入が不可能なシステムでのみこのオプションを使用してください。mongodサーバー証明書を検証せずに または インスタンスに接続すると、潜在的なセキュリティ上のリスクが発生します。 TLS/SSL 証明書のホスト名の検証を無効にするだけの場合は、 を参照してください。mongos--sslAllowInvalidHostnamesあるいは、
URI connection stringで証明書の検証を直接無効にすることもできます。接続文字列を提供すると同時に、--sslAllowInvalidCertificatesを使用中に競合する情報を指定すると、エラーが発生します。TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。
--sslAllowInvalidHostnamesTLS/SSL 証明書のホスト名の検証を無効にします。証明書内のホスト名が指定されたホスト名と一致しない場合でも、
mongostatによって 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
MONGODB-AWSauthentication mechanismAtlasクラスターに接続する場合は、次の場所でAWSアクセスキーID を指定できます。このフィールド
AWS_ACCESS_KEY_ID環境変数。
それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。
--password=<password>, -p=<password>認証 を使用するMongoDBデータベースに対して認証するためのパスワードを指定します。
--usernameおよび--authenticationDatabaseオプションと組み合わせて使用します。ユーザーにパスワードの入力を求めるには、
--username--password--passwordなしで オプションを渡すか、--password=""のように 値として空の文字列を指定します。あるいは、
URI connection stringでパスワードを直接指定することもできます。--passwordを使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。を使用してMongoDB
MONGODB-AWSauthentication mechanismAtlasクラスターに接続する場合は、次の場所でAWSシークレット アクセスキーを指定できます。このフィールド
AWS_SECRET_ACCESS_KEY環境変数。
それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。
警告
一部のシステムでは、
--passwordオプションを使用して直接提供されたパスワードは、他のユーザーによって呼び出される可能性のあるpsなどのシステム ステータス プログラムに表示される場合があります。そのため、次の代替策を検討しましょう。--passwordオプションを省略し、インタラクティブなパスワード プロンプトを表示する--configオプションを使用して、パスワードを含む構成ファイルを指定します。
--awsSessionToken=<AWS Session Token>を使用してMongoDB Atlasクラスターに接続し、
MONGODB-AWSauthentication mechanismAWSアクセスキーIDとシークレットアクセスキーに加えてセッション トークンを使用する場合は、次の場所にAWSセッション トークンを指定できます。このフィールド
AWS_SESSION_TOKENauthMechanismPropertiesパラメータをconnection stringに、またはAWS_SESSION_TOKEN環境変数。
それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。
MONGODB-AWSauthentication mechanismを使用している場合にのみ有効です。
--authenticationDatabase=<dbname>指定された
--usernameが作成された認証データベースを指定します。詳細については、「 認証データベース 」を参照してください。--authenticationDatabasemongodmongos自己管理型配置で認証を使用する および インスタンスには が必要です。GSSAPI(Kerberos)、PLAIN(LDAP SASL)、または
MONGODB-AWSauthentication mechanismsを使用する場合は、--authenticationDatabaseを$externalに設定する必要があります。あるいは、
URI connection stringで認証データベースを直接指定することもできます。--authenticationDatabaseを使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。
--authenticationMechanism=<name>デフォルト: SCRAM-SHA-1
mongostatインスタンスがmongodまたはmongosへの認証に使用する認証メカニズムを指定します。バージョン 100.1.0 での変更:
バージョン
100.1.0以降、mongostatは MongoDB Atlas クラスターに接続する際、MONGODB-AWS認証メカニズムのサポートを追加します。値説明RFC5802 標準の Salted Challenge Response Authentication Mechanism(SHA-1 ハッシュ関数を使用)。
RFC7677 標準の Salted Challenge Response Authentication Mechanism(SHA-256 ハッシュ関数を使用)。
featureCompatibilityVersion を
4.0に設定する必要があります。MongoDB TLS/SSL 証明書認証。
MONGODB-AWSMongoDB 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=<string>GSSAPI/Kerberos を使用してサービスの名前を指定します。サービスがデフォルト名
mongodbを使用しない場合のみ必要となります。このオプションは MongoDB Enterprise でのみ使用できます。
--gssapiHostName=<string>GSSAPI/Kerberos を使用してサービスのホスト名を指定します。マシンのホスト名が DNS で解決されたホスト名と一致しない場合にのみ必要となります。
このオプションは MongoDB Enterprise でのみ使用できます。
--humanReadable=<boolean>デフォルト: true
trueの場合、mongostatは、日付と数量の値をフォーマットして読みやすくします。次のサンプル出力を参照してください。insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time 991 *0 *0 *0 0 2|0 3.4% 4.5% 0 2.90G 297M 0|0 0|0 12.9m 84.2k 2 Oct 6 09:45:37.478 989 *0 *0 *0 0 2|0 3.6% 4.7% 0 2.91G 310M 0|0 0|0 12.9m 84.1k 2 Oct 6 09:45:38.476 988 *0 *0 *0 0 1|0 3.7% 4.8% 0 2.92G 323M 0|0 0|0 12.8m 83.8k 2 Oct 6 09:45:39.481 976 *0 *0 *0 0 2|0 3.9% 5.0% 0 2.94G 335M 0|0 0|0 12.7m 83.7k 2 Oct 6 09:45:40.476 falseの場合、mongostat次のサンプル出力のように未加工データを返します。insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time 992 *0 *0 *0 0 2|0 1.3 2.4 0 2941255680 149946368 0|0 0|0 12913607 84271 2 2016-10-06T09:45:25-04:00 989 *0 *0 *0 0 1|0 1.5 2.6 0 2974810112 163577856 0|0 0|0 12873225 84087 2 2016-10-06T09:45:26-04:00 996 *0 *0 *0 0 1|0 1.6 2.8 0 2972712960 177209344 0|0 0|0 12955423 84345 2 2016-10-06T09:45:27-04:00 987 *0 *0 *0 0 1|0 1.8 2.9 0 2989490176 190840832 0|0 0|0 12861852 84008 2 2016-10-06T09:45:28-04:00
-o=<field list>出力フィールドが
-oで指定されている場合、指定されたフィールドのみがmongostatの出力に含まれます。serverStatus fieldsを指定するには、metrics.document.insertedのようにドット表記を使用します。カスタム フィールド名にはスペースを含めることができます。スペースを含める場合は、フィールド名の前後に追加の引用符を付けないでください。フィールドにカスタム名を指定するには、次のように
<field>=<customName>を使用します。mongostat -o='host=H,time=T,version=MongoDB Version' -oは、特定の serverStatus フィールドに返される情報を変更するための次のメソッドをサポートしています。.rate()を使用して、 呼び出しから 呼び出しへの serverStatusフィールドの変化率を 1
.rate()秒あたりに表示します。mongostat次のコマンドでフィールドにおける変化率を表示します:
.rate()は、mongostat-oと.rate()メソッドで を使用する方法を説明します。
.diff().diff()を使用して、前回の 呼び出し以降に serverStatusフィールドがどの程度変更されたかを確認します。呼び出し間隔はmongostat<sleeptime>で指定されます。次のコマンドでフィールドにおける変更を表示します:
.diff()は、mongostat-oと.diff()メソッドで を使用する方法を説明します。
mongostat-oは、-Oまたは の いずれか の指定をサポートしています。両方のオプションを含めることはできません。の例については、「
mongostat出力フィールドの指定-o」を参照してください。
-O=<field list>指定すると、
mongostatにはデフォルトのserverStatus出力の後に、指定されたmongostatフィールドが含まれます。serverStatus fieldsを指定するには、metrics.document.insertedのようにドット表記を使用します。カスタム フィールド名にはスペースを含めることができます。スペースを含める場合は、フィールド名の前後に追加の引用符を付けないでください。フィールドにカスタム名を指定するには、次のように
<field>=<customName>を使用します。mongostat -O=host=H,time=T mongostat-Oは、-oまたは の いずれか の指定をサポートしています。両方のオプションを含めることはできません。の例については、「
mongostat出力にフィールドを追加する-O」を参照してください。
--rowcount=<number>, -n=<number>出力される行数を制御します。
mongostat操作の継続時間を制御するために、sleeptime引数と組み合わせて使用します。--rowcountが指定されていない限り、mongostatは無限の数の行を返します(例: の値)。0
--discoverレプリカセットまたはシャーディングされたクラスターのすべてのメンバーから統計を検出し、レポートします。レプリカセットのいずれかのメンバーに接続すると、レプリカセットの
--discover以外のすべての 非表示されていないメンバー は になります。 に接続すると、mongosmongostatはクラスター内のすべての シャード からのデータを返します。レプリカセットがシャーディングされたクラスター内に シャード を提供する場合、mongostatはそのレプリカセットの非表示でないメンバーを報告します。mongostat --hostオプションは必須ではありませんが、この場合は役立つ可能性があります。--discoverを使用して実行中いる場合、mongostat--rowcountは を尊重します。
--allすべての任意の フィールド を返すように
mongostatを構成します。
--jsonmongostatの出力を JSON 形式で返します。
--interactivemongostat出力が、デフォルトのスクロール出力ではなく、インタラクティブな非スクロール インターフェースで表示されます。--interactiveは--jsonオプションでは使用できません。の例については、「 インタラクティブ インターフェースで統計情報を表示する
--interactive」を参照してください。
フィールド
mongostat は、 1秒間の操作に関する値を返します。 mongostat [sleoptime]<sleeptime> の値が1 より大きい場合、 は統計データを平均化し、1mongostat 秒あたりの平均操作を示します。
mongostat は次のフィールドを出力します。
inserts1 秒あたりにデータベースに挿入されるオブジェクトの数。アスタリスクが続く場合(例:
*)、データはレプリケートされた操作を参照します。
query1 秒あたりのクエリ操作の数。
update1 秒あたりのアップデート操作の数。
delete1 秒あたりの削除操作の数。
getmore1 秒あたりの get more(つまり、カーソル バッチ) 操作の数。
flushesWiredTigerストレージ エンジンの場合、
flushesは各ポーリング間隔の間にトリガーされるWiredTigerチェックポイントの数を示します。
dirtyWiredTigerストレージ エンジンのみ。ダーティバイトを含むWiredTigerキャッシュの割合。
wiredTiger.cache.tracked dirty bytes in the cache/wiredTiger.cache.maximum bytes configuredで計算されます。
usedWiredTigerストレージ エンジンのみ。使用中のWiredTigerキャッシュの割合。
wiredTiger.cache.bytes currently in the cache/wiredTiger.cache.maximum bytes configuredで計算されます。
vsize最後の
mongostat呼び出し時にプロセスによって使用された仮想メモリの量(単位: メガバイト)。
res最後の
mongostat呼び出し時にプロセスによって使用された常駐メモリの量(単位: メガバイト)。
lockedグローバル書込みロック(write lock)における時間の割合。
mongostatが MongoDB インスタンスの 3.0 前に対して実行されている場合にのみ表示されます。
qrMongoDB インスタンスからデータを読み取るのを待機しているクライアントのキューの長さ。
qwMongoDB インスタンスからデータを書込むのを待機しているクライアントのキューの長さ。
ar読み取り操作を実行しているアクティブなクライアントの数。
aw書込み操作を実行しているアクティブなクライアントの数。
netInMongoDB インスタンスが受信したネットワークトラフィックの量(単位: バイト)。
これには、
mongostat自体からのトラフィックが含まれます。
netOutMongoDB インスタンスが送信したネットワークトラフィックの量(単位: バイト)。
これには、
mongostat自体からのトラフィックが含まれます。
connオープン コネクションの合計数。
setレプリカセットの名前(該当する場合)。
replノードのレプリケーション状態。
詳細情報
MongoDB の監視について詳しくは、「MongoDB の監視」を参照してください。
MongoDB のその他のステータス出力の背景については、以下を参照してください。
MongoDB メトリクスを提供する追加のユーティリティについては、mongotop を参照してください。