アクセスログの設定
Milvusのアクセスログ機能を利用することで、サーバ管理者はユーザのアクセス行動を記録・分析し、クエリの成功率や失敗理由などを把握することができます。
本ガイドでは、Milvusにおけるアクセスログの設定方法について詳しく説明します。
アクセスログの設定は、Milvusのインストール方法によって異なります:
- Helm インストール:
values.yaml
。詳細については、HelmチャートによるMilvusの設定を参照してください。 - Docker インストール:
milvus.yaml
。詳細については、Docker Composeを使用したMilvusの設定を参照してください。 - Operator インストール:設定ファイルの
spec.components
。詳細については、Milvus OperatorでMilvusを設定するを参照してください。
設定オプション
ニーズに応じて3つの設定オプションから選択します:
- 基本設定:基本設定: 一般的な目的。
- ローカルアクセスログファイル用設定:ログをローカルに保存します。
- ローカルアクセスログをMinIOにアップロードするための設定:クラウドストレージおよびバックアップ用。
基本設定
基本設定では、アクセスログを有効にし、ログのファイル名を定義するか、標準出力を使用します。
proxy:
accessLog:
enable: true
# If `filename` is emtpy, logs will be printed to stdout.
filename: ""
# Additional formatter configurations...
proxy.accessLog.enable
:アクセスログ機能を有効にするかどうか。デフォルトはfalse。proxy.accessLog.filename
:アクセスログのファイル名。このパラメータを空にすると、アクセスログは標準出力に出力されます。
ローカルアクセスログファイルの設定
ローカルファイルパス、ファイルサイズ、ローテーション間隔などのパラメータを使用して、アクセスログファイルのローカルストレージを設定します:
proxy:
accessLog:
enable: true
filename: "access_log.txt" # Name of the access log file
localPath: "/var/logs/milvus" # Local file path where the access log file is stored
maxSize: 500 # Max size for each single access log file. Unit: MB
rotatedTime: 24 # Time interval for log rotation. Unit: seconds
maxBackups: 7 # Max number of sealed access log files that can be retained
# Additional formatter configurations...
これらのパラメータは、filename
が空でない場合に指定します。
proxy.accessLog.localPath
:アクセスログファイルが保存されるローカルファイルパス。proxy.accessLog.maxSize
:1つのアクセスログファイルに許される最大サイズ(MB)。ログファイルのサイズがこの制限に達した場合、ローテーション処理が開始されます。この処理は、現在のアクセス・ログ・ファイルを封印し、新しいログ・ファイルを作成し、元のログ・ファイルの内容を消去します。proxy.accessLog.rotatedTime
:1つのアクセス・ログ・ファイルをローテーションするために許容される最大時間間隔を秒単位で指定します。指定された時間間隔に達すると、ローテーション処理がトリガーされ、新しいアクセスログファイルが作成され、前のアクセスログファイルが封印されます。proxy.accessLog.maxBackups
:封印されたアクセスログファイルの最大保持数。封印されたアクセスログファイルの数がこの上限を超えると、最も古いアクセスログファイルが削除されます。
ローカルアクセスログファイルのMinIOへのアップロード設定
ローカルアクセスログファイルをMinIOにアップロードする設定を有効にして構成します:
proxy:
accessLog:
enable: true
filename: "access_log.txt"
localPath: "/var/logs/milvus"
maxSize: 500
rotatedTime: 24
maxBackups: 7
minioEnable: true
remotePath: "/milvus/logs/access_logs"
remoteMaxTime: 0
# Additional formatter configurations...
MinIOパラメータを構成する場合、maxSize
またはrotatedTime
のいずれかを設定していることを確認する。この設定を行わないと、ローカルアクセスログファイルのMinIOへのアップロードに失敗する可能性がある。
proxy.accessLog.minioEnable
:ローカルアクセスログファイルをMinIOにアップロードするかどうか。デフォルトはfalseです。proxy.accessLog.remotePath
:アクセスログファイルをアップロードするオブジェクトストレージのパス。proxy.accessLog.remoteMaxTime
:アクセスログファイルのアップロードに許可される時間間隔。ログファイルのアップロード時間がこの間隔を超えると、ファイルは削除されます。値を 0 に設定すると、この機能は無効になります。
フォーマッタ設定
すべてのメソッドで使用されるデフォルトのログフォーマットはbase
フォーマットで、特定のメソッドの関連付けを必要としません。しかし、特定のメソッドのログ出力をカスタマイズしたい場合は、カスタムログフォーマットを定義し、関連するメソッドに適用することができます。
proxy:
accessLog:
enable: true
filename: "access_log.txt"
localPath: "/var/logs/milvus"
# Define custom formatters for access logs with format and applicable methods
formatters:
# The `base` formatter applies to all methods by default
# The `base` formatter does not require specific method association
base:
# Format string; an empty string means no log output
format: "[$time_now] [ACCESS] <$user_name: $user_addr> $method_name-$method_status-$error_code [traceID: $trace_id] [timeCost: $time_cost]"
# Custom formatter for specific methods (e.g., Query, Search)
query:
format: "[$time_now] [ACCESS] <$user_name: $user_addr> $method_status-$method_name [traceID: $trace_id] [timeCost: $time_cost] [database: $database_name] [collection: $collection_name] [partitions: $partition_name] [expr: $method_expr]"
# Specify the methods to which this custom formatter applies
methods: ["Query", "Search"]
proxy.accessLog.<formatter_name>.format
:ダイナミック・メトリクスを使用してログ・フォーマットを定義します。詳細は、「サポートされるメトリッ ク」を参照してください。proxy.accessLog.<formatter_name>.methods
:このフォーマッタを使用するMilvus操作をリストします。メソッド名を取得するには、Milvusメソッドの MilvusServiceを参照してください。
参照:サポートされているメトリクス
メトリック名 | 説明 |
---|---|
$method_name | メソッド名 |
$method_status | アクセスのステータス:OKまたは失敗 |
$method_expr | クエリ、検索、または削除操作に使用される式 |
$trace_id | アクセスに関連するTraceID |
$user_addr | ユーザのIPアドレス |
$user_name | ユーザの名前 |
$response_size | レスポンスデータのサイズ |
$error_code | Milvus特有のエラーコード |
$error_msg | 詳細エラーメッセージ |
$database_name | 対象のMilvusデータベース名 |
$collection_name | 対象のMilvusコレクション名 |
$partition_name | 対象のMilvusパーティション名 |
$time_cost | アクセス完了までの時間 |
$time_now | アクセスログが出力された時刻 (通常$time_end と同じ) |
$time_start | アクセス開始時刻 |
$time_end | アクセス終了時刻 |
$sdk_version | ユーザが使用したMilvus SDKのバージョン |