定義
logRotatelogRotateコマンドは、 MongoDBサーバーログや監査するログをローテーションして、1 つのログファイルがディスク領域を消費しすぎるのを防ぐ管理コマンドです。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
重要
このコマンドは、MongoDB Atlas クラスターではサポートされていません。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { logRotate: <integer or string>, comment: <string> } )
コマンドフィールド
このコマンドは、次のフィールドを使用します。
フィールド | タイプ | 説明 |
|---|---|---|
| 整数または文字列 | ローテーションするログは、次のように表示されます。
|
| string | 任意。ログローテーション時にサーバーがログファイルと監査ファイルに記録するメッセージ。 |
SIGUSR1 シグナルを mongod プロセスに送信してログをローテーションすることもできます。
たとえば、実行中の mongod インスタンスのプロセス ID(PID)が 2200 の場合、次のコマンドは Linux 上でそのインスタンスのログファイルをローテーションします。
kill -SIGUSR1 2200
制限
監査ログをローテーションするには、監査を有効にする必要があります。
動作
systemLog.logRotate設定または オプションは、--logRotate logRotateの動作を指定します。
またはsystemLog.logRotate--logRotate がrename に設定されている場合、logRotate は現在のタイムスタンプをファイル名に追加して、既存のログファイルの名前を変更します。追加されたタイムスタンプの形式は次のとおりです。
<YYYY>-<mm>-<DD>T<HH>-<MM>-<SS>
次に、 は、logRotate systemLog.pathmongod設定で またはmongos に最初に指定された名前と同じ名前の新しいログファイルを作成します。
またはsystemLog.logRotate--logRotate がreopen に設定されている場合、 は一般的なLinux/UnixlogRotate の動作に従い、ログファイルを閉じてから同じ名前のログファイルを再度開きます。reopen では、mongod は、ローテーションの前に別のプロセスによってファイルの名前が変更され、その結果新しいファイルが作成されることが予想されています。
例
次の例では、サーバーログと監査ログの両方をローテーションしています。
db.adminCommand( { logRotate: 1 } )
次の例では、監査ログのみをローテーションし、ローテーション時にログファイルにカスタムメッセージを提供します。
db.adminCommand( { logRotate: "audit", comment: "Rotating audit log" } )