mongostat
このドキュメントは、mongostat
のバージョン 100.10.0
用です。
Synopsis
mongostat
は、現在実行中の mongod
または mongos
インスタンスのステータスの概要を簡単に表示するコマンドライン ツールです。mongostat
を使用して、システムのボトルネックを特定します。
mongostat
は、機能的には UNIX/Linux ファイル システム ユーティリティ vmstat
に似ていますが、mongod
および mongos
インスタンスに関するデータを提供します。
mongo
shell ではなく、システム コマンド ラインから mongostat
を実行します。
構文
mongostat
構文:
mongostat <options> <connection-string> <polling interval in seconds>
オプション
--config=<filename>
バージョン 100.3.0 の新機能。
次のオプションの機密値を含む YAML 構成ファイルへのフル パスを
mongostat
に指定します。これは、
mongostat
にパスワードを指定するのに、パスワード プロンプトを使用して指定する以外で推奨される方法です。構成ファイルは以下の形式をとります。
password: <password> uri: mongodb://mongodb0.example.com:27017 sslPEMKeyPassword: <password> password:
フィールドにパスワードを指定し、競合するパスワードを含む接続文字列をuri:
フィールドに指定すると、エラーが発生します。このファイルは、必ず適切なファイルシステム権限で保護してください。
注意
--config
で構成ファイルを指定し、かつmongostat
--password
、--uri
または--sslPEMKeyPassword
オプションも使用する場合、各コマンドライン オプションによって構成ファイルの対応オプションが上書きされます。
--uri=<connectionString>
MongoDB 配置の解決可能な URI 接続文字列 を引用符で囲んで指定します。
--uri="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]" mongostat
のバージョン100.0
以降、接続文字列は、--uri
オプションを使用せずに、位置パラメータとして入力することもできます。mongostat 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
など、独自の明示的コマンドライン オプションを使用して指定することもできます。明示的オプションを使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。注意
mongostat
を Ubuntu 18.04 で使用する場合、(mongodb+srv://
形式で)SRV 接続文字列を--uri
オプションと併用する場合、cannot unmarshal DNS
というエラー メッセージが表示されることがあります。その場合は、次のいずれかのオプションを代わりに使用します。--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
を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。
--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
オプションは、証明書キーファイルが暗号化されている場合にのみ使用してください。いずれの場合も、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
サーバー証明書の検証チェックをバイパスし、無効な証明書を使用できるようにします。
allowInvalidCertificates
設定を使用すると、MongoDB では無効な証明書の使用に対する警告としてログに記録されます。警告
あるいは、
URI connection string
で証明書の検証を直接無効にすることもできます。接続文字列を提供し、さらに--sslAllowInvalidCertificates
を使用して競合する情報を指定すると、エラーが発生します。TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。
--sslAllowInvalidHostnames
TLS/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-AWS
authentication mechanism
を使用して MongoDB Atlas クラスターに接続する場合は、次の場所で 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-AWS
authentication mechanism
を使用して MongoDB Atlas クラスターに接続する場合は、次の場所で AWS シークレットアクセスキーを指定できます。このフィールド
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_SESSION_TOKEN
authMechanismProperties
パラメーターをconnection string
へ、またはAWS_SESSION_TOKEN
環境変数。
それぞれの例については、「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
mongostat
インスタンスがmongod
またはmongos
への認証に使用する認証メカニズムを指定します。バージョン 100.1.0 での変更: バージョン
100.1.0
以降、MongoDB Atlas クラスターへの接続時にMONGODB-AWS
認証メカニズムのサポートがmongostat
に追加されます。値説明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=<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()
.rate()
を使用して、mongostat
呼び出しから呼び出しへの serverStatus フィールドの変化率を 1 秒あたりに表示します。次のコマンドでフィールドにおける変化率を表示します:
.rate()
は、-o
と.rate()
メソッドでmongostat
を使用する方法を示します。
.diff()
.diff()
を使用して、前回のmongostat
呼び出し以降に serverStatus フィールドがどの程度変更されたかを確認します。呼び出し間隔は<sleeptime>
で指定されます。次のコマンドでフィールドにおける変更を表示します:
.diff()
は、-o
と.diff()
メソッドでmongostat
を使用する方法を示します。
mongostat
は、-o
または-O
のいずれかの指定をサポートしています。両方のオプションを含めることはできません。-o
. の例については、「mongostat
出力フィールドを指定する」を参照してください。
-O=<field list>
指定すると、
mongostat
には、デフォルトのmongostat
出力の後に、指定されたserverStatus
フィールドが含まれます。serverStatus fields
を指定するには、metrics.document.inserted
のようにドット表記を使用します。カスタム フィールド名にはスペースを含めることができます。スペースを含める場合は、フィールド名の前後に追加の引用符を付けないでください。フィールドにカスタム名を指定するには、次のように
<field>=<customName>
を使用します。mongostat -O=host=H,time=T mongostat
は、-O
または-o
のいずれかの指定をサポートしています。両方のオプションを含めることはできません。-O
. の例については、「mongostat
出力にフィールドを追加する」を参照してください。
--rowcount=<number>, -n=<number>
出力される行数を制御します。
mongostat
操作の継続時間を制御するために、sleeptime
引数と組み合わせて使用します。--rowcount
が指定されていない限り、mongostat
は無限の数の行を返します(例:0
の値)。
--discover
レプリカセット または シャーディングされたクラスターのすべてのノードから統計を検出し、レポートします。レプリカセットのいずれかのノードに接続すると、レプリカセットの
--discover
以外のすべての非表示されていないノードが接続されます。mongos
に接続すると、mongostat
はクラスター内のすべての シャード からのデータを返します。レプリカセットがシャーディングされたクラスター内にシャードを提供する場合、mongostat
はそのレプリカセットの非表示でないノードを報告します。mongostat --host
オプションは必須ではありませんが、この場合は役立つ可能性があります。--discover
を使用して実行する場合、mongostat
は--rowcount
を尊重します。
--all
すべてのオプションの フィールド を返すように
mongostat
を構成します。
--json
mongostat
の出力を JSON 形式で返します。
--interactive
mongostat
出力が、デフォルトのスクロール出力ではなく、インタラクティブな非スクロール インターフェースで表示されます。--interactive
は、--json
オプションでは使用できません。--interactive
の例については、「インタラクティブ インターフェースで統計情報を表示する」を参照してください。
フィールド
mongostat
は、 1秒間の操作に関する値を返します。 mongostat [sleoptime]<sleeptime> の値が1 より大きい場合、 は統計データを平均化し、1mongostat
秒あたりの平均操作を示します。
mongostat
は次のフィールドを出力します。
inserts
1 秒あたりにデータベースに挿入されるオブジェクトの数。アスタリスクが続く場合(例:
*
)、データはレプリケートされた操作を参照します。
query
1 秒あたりのクエリ操作の数。
update
1 秒あたりのアップデート操作の数。
delete
1 秒あたりの削除操作の数。
getmore
1 秒あたりの get more(つまり、カーソル バッチ) 操作の数。
command
1 秒あたりのコマンド数。セカンダリ システムでは、
mongostat
パイプ文字で区切られた2つの値をlocal|replicated
コマンド形式で表します(例:|
)。
flushes
WiredTiger ストレージ エンジンの場合、
flushes
は各ポーリング間隔の間にトリガーされる WiredTiger チェックポイントの数を示します。
dirty
WiredTiger ストレージ エンジンのみ。ダーティーバイトを含む WiredTiger キャッシュの割合。
wiredTiger.cache.tracked dirty bytes in the cache
/wiredTiger.cache.maximum bytes configured
で計算されます。
used
WiredTiger ストレージ エンジンのみ。使用中の WiredTiger キャッシュの割合。
wiredTiger.cache.bytes currently in the cache
/wiredTiger.cache.maximum bytes configured
で計算されます。
vsize
最後の
mongostat
呼び出し時にプロセスによって使用された仮想メモリの量(単位: メガバイト)。
res
最後の
mongostat
呼び出し時にプロセスによって使用された常駐メモリの量(単位: メガバイト)。
locked
グローバル書込みロック(write lock)における時間の割合。
mongostat
が MongoDB インスタンスの 3.0 前に対して実行されている場合にのみ表示されます。
qr
MongoDB インスタンスからデータを読み取るのを待機しているクライアントのキューの長さ。
qw
MongoDB インスタンスからデータを書込むのを待機しているクライアントのキューの長さ。
ar
読み取り操作を実行しているアクティブなクライアントの数。
aw
書込み操作を実行しているアクティブなクライアントの数。
netIn
MongoDB インスタンスが受信したネットワークトラフィックの量(単位: バイト)。
これには、
mongostat
自体からのトラフィックが含まれます。
netOut
MongoDB インスタンスが送信したネットワークトラフィックの量(単位: バイト)。
これには、
mongostat
自体からのトラフィックが含まれます。
conn
オープン コネクションの合計数。
set
レプリカセットの名前(該当する場合)。
repl
ノードのレプリケーション状態。
詳細情報
MongoDB の監視について詳しくは、「MongoDB の監視」を参照してください。
MongoDB のその他のステータス出力の背景については、以下を参照してください。
MongoDB メトリクスを提供する追加のユーティリティについては、mongotop
を参照してください。