AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

logRotate(データベースコマンド)

logRotate

logRotateコマンドは、 MongoDBサーバーログや監査するログをローテーションして、1 つのログファイルがディスク領域を消費しすぎるのを防ぐ管理コマンドです。

logRotate管理データベースに対して コマンドを発行する必要があります。

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

重要

このコマンドは、MongoDB Atlas クラスターではサポートされていません。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。

このコマンドの構文は、次のとおりです。

db.adminCommand(
{
logRotate: <integer or string>,
comment: <string>
}
)

このコマンドは、次のフィールドを使用します。

フィールド
タイプ
説明

logRotate

整数または文字列

ローテーションするログは、次のように表示されます。

  • 1 -- サーバーログと監査ログの両方をローテーション

  • "server" -- サーバーログのみをローテーション

  • "audit" -- 監査ログのみをローテーション

comment

string

任意。ログローテーション時にサーバーがログファイルと監査ファイルに記録するメッセージ。

SIGUSR1 シグナルを mongod プロセスに送信してログをローテーションすることもできます。

たとえば、実行中の mongod インスタンスのプロセス ID(PID)が 2200 の場合、次のコマンドは Linux 上でそのインスタンスのログファイルをローテーションします。

kill -SIGUSR1 2200
  • logRotate を使用するには、mongodインスタンスが --logpath [file] オプションで実行中ている必要があります

  • 監査ログをローテーションするには、監査を有効にする必要があります。

systemLog.logRotate設定または オプションは、--logRotate logRotateの動作を指定します。

またはsystemLog.logRotate--logRotaterename に設定されている場合、logRotate は現在のタイムスタンプをファイル名に追加して、既存のログファイルの名前を変更します。追加されたタイムスタンプの形式は次のとおりです。

<YYYY>-<mm>-<DD>T<HH>-<MM>-<SS>

次に、 は、logRotate systemLog.pathmongod設定で またはmongos に最初に指定された名前と同じ名前の新しいログファイルを作成します。

またはsystemLog.logRotate--logRotatereopen に設定されている場合、 は一般的なLinux/UnixlogRotate の動作に従い、ログファイルを閉じてから同じ名前のログファイルを再度開きます。reopen では、mongod は、ローテーションの前に別のプロセスによってファイルの名前が変更され、その結果新しいファイルが作成されることが予想されています。

次の例では、サーバーログと監査ログの両方をローテーションしています。

db.adminCommand( { logRotate: 1 } )

次の例では、監査ログのみをローテーションし、ローテーション時にログファイルにカスタムメッセージを提供します。

db.adminCommand( { logRotate: "audit", comment: "Rotating audit log" } )