MongoDB エンジニアがサーバーの動作を分析できるように、 mongod および mongos プロセスにはフルタイムの診断データ収集 (FTDC) メカニズムが含まれています。FTDC はデフォルトで有効になっています。配置のデバッグのために重要な機能であることから、FTDC スレッドの障害は致命的なものであり、親の mongod またはmongos プロセスが停止します。
動作
注意
Windows での FTDC ユーザー権限
Windows では、ディスク、CPU、メモリなどのシステム データを収集するために、FTDC に次のグループからの Microsoft アクセス許可が必要です。
パフォーマンス モニター ユーザー
Performance Log Users
mongod と mongosを実行中ユーザーが管理者でない場合は、これらのグループに追加して FTDC データをログ。詳しくは、Microsoft のドキュメント を参照してください。
FTDC では、次のコマンドによって生成された統計情報を定期的に収集します。
local.oplog.rsコレクションのcollStats(mongodのみ)
ホストのオペレーティングシステムによっては、診断データに次の使用率統計が 1 つ以上含まれる場合があります。
CPU使用率
メモリ使用率
パフォーマンスに関連するディスク使用率。FTDC にはストレージ キャパシティーに関するデータは含まれません。
ネットワークパフォーマンスの統計情報。FTDC で取得されるのはメタデータのみで、ネットワーク パケットの取得や検査は行われません。
注意
FTDC は、ファイルのローテーションまたはスタートアップ時に次のコマンドによって生成された統計情報を収集します。
FTDC データファイル
mongod プロセスでは、インスタンス storage.dbPath の下の diagnostic.data ディレクトリに FTDC データファイルを保存します。すべてのデータファイルはこのディレクトリに保存されます。たとえば dbPath が/data/db の場合、データディレクトリは /data/db/diagnostic.data になります。
mongos プロセスでは、systemLog.path ログパス設定に関連付けられた診断ディレクトリに FTDC データファイルが保存されます。MongoDB では、ログパスのファイル拡張子が切り捨てられ、残りの名前に diagnostic.data が連結されます。たとえば path の設定が/var/log/mongodb/mongos.logの場合、診断データディレクトリは/var/log/mongodb/mongos.diagnostic.dataになります。
FTDC プライバシー
FTDC データ ファイルは圧縮されており、人間が判読することはできません。これらは、MongoDB のデータファイルと同じファイル アクセス権限を継承します。FTDC データファイルにアクセスできるユーザーのみが FTDC データを送信できます。
MongoDB エンジニアは、システム所有者またはオペレーターの明示的な許可と支援がなければ、FTDC データにアクセスすることはできません。
FTDCのデータには、以下の情報は一切含まれません。
クエリ、クエリ述語、またはクエリ結果のサンプル
エンドユーザーのコレクションまたはインデックスからサンプリングされたデータ
システムまたは MongoDB のユーザー認証情報またはセキュリティ証明書
FTDC データには、ホスト名、オペレーティング システム情報、mongod または mongos の起動に使用されるオプションや設定など、特定のホストマシン情報が含まれています。この情報は、一部の組織または規制機関によって保護された情報または機密情報とみなされる場合があります。これらのフィールドが保護されたデータまたは機密データで構成されているクラスターの場合は、適切なセキュリティ対策を調整するために、FTDC データを送信する前にMongoDBエンジニアに通知してください。
詳細
You can view the FTDC source code on the MongoDB Github Repository. The ftdc_system_stats_*.ccp files specifically define any system-specific diagnostic data captured.
FTDC のデフォルト
FTDC は、次のデフォルトで動作します。
1 秒ごとのデータキャプチャ
500MB 最大
diagnostic.dataフォルダ サイズ。Changed in version 8.3:
デフォルトは 250 MB(シャーディングされたクラスターの場合は 500 MB)から増加しました。
これらのデフォルトは、パフォーマンスやストレージサイズへの影響を最小限に抑えながら、 MongoDBエンジニアに有用なデータを提供します。これらの値は、 MongoDBエンジニアが特定の診断目的で要求した場合にのみ変更します。
重要
MongoDB は、フォルダーのサイズ制限が近づくと古いデータを上書きします。重要な診断情報が保持されるようにするには、インシデント発生時に diagnostic.dataディレクトリをキャプチャします。MongoDB がFTDC データを消去すると、そのデータは診断分析で使用できなくなります。
オンプレミス環境でのデータ保持
MongoDB はFTDC データをローカル ホスト上にのみ保存します。OTel またはその他のログ転送パイプラインによって転送された FTDC データを診断目的で使用することはできません。
Terraform などのエフェメラルストレージやオートメーションツールを使用するオンプレミス環境では、ホストが終了または再構築されると、FTDC データが失われます。診断調査で FTDC データの可用性を向上させるには、次のアクションのいずれかまたは両方を検討してください。
diagnostic.dataディレクトリを永続的ストレージに保存します。diagnostic.dataディレクトリを永続的な外部ロケーションに定期的にコピーする。
MongoDBエンジニアは、正確な診断のために FTDC データに依存しています。
FTDC を無効化
警告
本番環境には推奨されません。
FTDC を無効にするには、構成ファイルの setParameter 設定内で mongod または mongos をdiagnosticDataCollectionEnabled: false と共に起動します。
setParameter: diagnosticDataCollectionEnabled: false
FTDC を無効にすると、MongoDB エンジニアのサポートを受けて問題を分析またはデバッグする際に必要な時間やリソースが増加する可能性があります。MongoDB サポートの詳細については、 「MongoDB サポートの開始」を参照してください。