Configurazione dei registri di accesso
La funzione di log degli accessi di Milvus consente ai gestori dei server di registrare e analizzare il comportamento degli utenti, aiutando a comprendere aspetti come la percentuale di successo delle query e i motivi dei fallimenti.
Questa guida fornisce istruzioni dettagliate sulla configurazione dei log di accesso in Milvus.
La configurazione dei log di accesso dipende dal metodo di installazione di Milvus:
- Installazione di Helm: Configurazione in
values.yaml
. Per ulteriori informazioni, vedere Configurazione di Milvus con i grafici Helm. - Installazione di Docker: Configurare in
milvus.yaml
. Per ulteriori informazioni, vedere Configurazione di Milvus con Docker Compose. - Installazione dell'operatore: Modificare
spec.components
nel file di configurazione. Per ulteriori informazioni, vedere Configurazione di Milvus con Milvus Operator.
Opzioni di configurazione
Scegliete tra tre opzioni di configurazione in base alle vostre esigenze:
- Configurazione di base: Per scopi generali.
- Configurazione per i file di log ad accesso locale: Per memorizzare i log a livello locale.
- Configurazione per il caricamento dei registri di accesso locali su MinIO: Per l'archiviazione e il backup nel cloud.
Configurazione di base
La configurazione di base prevede l'abilitazione dei log di accesso e la definizione del nome del file di log o l'utilizzo di stdout.
proxy:
accessLog:
enable: true
# If `filename` is emtpy, logs will be printed to stdout.
filename: ""
# Additional formatter configurations...
proxy.accessLog.enable
: Abilita o meno la funzione di log degli accessi. L'impostazione predefinita è false.proxy.accessLog.filename
: Il nome del file di log degli accessi. Se si lascia vuoto questo parametro, i log degli accessi verranno stampati su stdout.
Configurazione dei file di log di accesso locali
Configura la memorizzazione locale dei file di log degli accessi con parametri quali il percorso del file locale, la dimensione del file e l'intervallo di rotazione:
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...
Questi parametri sono specificati quando filename
non è vuoto.
proxy.accessLog.localPath
: Il percorso del file locale in cui viene memorizzato il file di log degli accessi.proxy.accessLog.maxSize
: La dimensione massima in MB consentita per un singolo file di log degli accessi. Se la dimensione del file di log raggiunge questo limite, viene attivato un processo di rotazione. Questo processo sigilla il file di log di accesso corrente, crea un nuovo file di log e cancella il contenuto del file di log originale.proxy.accessLog.rotatedTime
: L'intervallo di tempo massimo in secondi consentito per la rotazione di un singolo file di log degli accessi. Al raggiungimento dell'intervallo di tempo specificato, viene attivato un processo di rotazione che porta alla creazione di un nuovo file di log degli accessi e alla chiusura di quello precedente.proxy.accessLog.maxBackups
: Numero massimo di file di log di accesso sigillati che possono essere conservati. Se il numero di file di log di accesso sigillati supera questo limite, il più vecchio verrà eliminato.
Configurazione per il caricamento dei file di log degli accessi locali su MinIO
Abilitare e configurare le impostazioni per caricare i file di log degli accessi locali su 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...
Quando si configurano i parametri di MinIO, assicurarsi di aver impostato maxSize
o rotatedTime
. In caso contrario, il caricamento dei file di log degli accessi locali su MinIO potrebbe non andare a buon fine.
proxy.accessLog.minioEnable
: Se caricare o meno i file di log degli accessi locali in MinIO. L'impostazione predefinita è false.proxy.accessLog.remotePath
: Il percorso dell'oggetto di memorizzazione per il caricamento dei file di log degli accessi.proxy.accessLog.remoteMaxTime
: L'intervallo di tempo consentito per il caricamento dei file di log degli accessi. Se il tempo di caricamento di un file di log supera questo intervallo, il file viene eliminato. L'impostazione del valore a 0 disabilita questa funzione.
Configurazione del formato
Il formato di registro predefinito utilizzato per tutti i metodi è il formato base
, che non richiede associazioni specifiche al metodo. Tuttavia, se si desidera personalizzare l'output del log per metodi specifici, è possibile definire un formato di log personalizzato e applicarlo ai metodi associati.
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
: Definisce il formato di log con metriche dinamiche. Per ulteriori informazioni, vedere Metriche supportate.proxy.accessLog.<formatter_name>.methods
: Elenca le operazioni Milvus che utilizzano questo formattatore. Per ottenere i nomi dei metodi, vedere MilvusService in Metodi Milvus.
Riferimento: Metriche supportate
Metrica Nome | Descrizione |
---|---|
$method_name | Nome del metodo |
$method_status | Stato dell'accesso: OK o non riuscito |
$method_expr | Espressione utilizzata per le operazioni di interrogazione, ricerca o cancellazione |
$trace_id | TraceID associato all'accesso |
$user_addr | Indirizzo IP dell'utente |
$user_name | Nome dell'utente |
$response_size | Dimensione dei dati di risposta |
$error_code | Codice di errore specifico di Milvus |
$error_msg | Messaggio di errore dettagliato |
$database_name | Nome del database Milvus di destinazione |
$collection_name | Nome della collezione Milvus di destinazione |
$partition_name | Nome o nomi delle partizioni Milvus di destinazione |
$time_cost | Tempo impiegato per completare l'accesso |
$time_now | Ora in cui viene stampato il log degli accessi (di solito equivalente a $time_end ) |
$time_start | Ora di inizio dell'accesso |
$time_end | Ora in cui l'accesso termina |
$sdk_version | Versione dell'SDK Milvus utilizzata dall'utente |