Configurar registros de acceso
La función de registro de acceso en Milvus permite a los administradores de servidores registrar y analizar el comportamiento de acceso de los usuarios, ayudando a comprender aspectos como las tasas de éxito de las consultas y las razones de los fallos.
Esta guía proporciona instrucciones detalladas para configurar los registros de acceso en Milvus.
La configuración de los registros de acceso depende del método de instalación de Milvus:
- Instalación de Helm: Configure en
values.yaml
. Para obtener más información, consulte Configurar Milvus con gráficos Helm. - Instalación de Docker: Configure en
milvus.yaml
. Para más información, consulte Configurar Milvus con Docker Compose. - Instalación de Operador: Modifique
spec.components
en el archivo de configuración. Para más información, consulte Configurar Milvus con Milvus Operator.
Opciones de configuración
Elija entre tres opciones de configuración en función de sus necesidades:
- Base config: Para propósitos generales.
- Configuración para archivos de registro de acceso local: Para almacenar registros localmente.
- Configuración para subir los logs de acceso local a MinIO: Para almacenamiento en la nube y copias de seguridad.
Configuración básica
La configuración básica consiste en habilitar los registros de acceso y definir el nombre del archivo de registro o utilizar stdout.
proxy:
accessLog:
enable: true
# If `filename` is emtpy, logs will be printed to stdout.
filename: ""
# Additional formatter configurations...
proxy.accessLog.enable
: Habilitar o no la función de registro de acceso. Por defecto es false.proxy.accessLog.filename
: El nombre del archivo de registro de acceso. Si deja este parámetro vacío, los registros de acceso se imprimirán en stdout.
Configuración de archivos de registro de acceso locales
Configure el almacenamiento local para los archivos de registro de acceso con parámetros que incluyen la ruta del archivo local, el tamaño del archivo y el intervalo de rotación:
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...
Estos parámetros se especifican cuando filename
no está vacío.
proxy.accessLog.localPath
: La ruta del archivo local donde se almacena el archivo de registro de acceso.proxy.accessLog.maxSize
: El tamaño máximo en MB permitido para un único archivo de registro de acceso. Si el tamaño del archivo de registro alcanza este límite, se iniciará un proceso de rotación. Este proceso sella el archivo de registro de acceso actual, crea un nuevo archivo de registro y borra el contenido del archivo de registro original.proxy.accessLog.rotatedTime
: El intervalo de tiempo máximo en segundos permitido para rotar un único archivo de registro de acceso. Al alcanzar el intervalo de tiempo especificado, se desencadenará un proceso de rotación, que resultará en la creación de un nuevo archivo de registro de acceso y el sellado del anterior.proxy.accessLog.maxBackups
: El número máximo de archivos de registro de acceso sellados que se pueden conservar. Si el número de archivos de registro de acceso sellados supera este límite, se eliminará el más antiguo.
Configuración para cargar archivos de registro de acceso local en MinIO
Habilite y configure los parámetros para cargar archivos de registro de acceso local a 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...
Al configurar los parámetros de MinIO, asegúrese de haber establecido maxSize
o rotatedTime
. Si no lo hace, es posible que los archivos de registro de acceso local no se carguen en MinIO.
proxy.accessLog.minioEnable
: Si desea cargar archivos de registro de acceso local a MinIO. Por defecto es false.proxy.accessLog.remotePath
: La ruta del objeto de almacenamiento para cargar los archivos de registro de acceso.proxy.accessLog.remoteMaxTime
: El intervalo de tiempo permitido para cargar archivos de registro de acceso. Si el tiempo de carga de un archivo de registro supera este intervalo, el archivo se eliminará. El valor 0 desactiva esta función.
Configuración del formateador
El formato de registro por defecto utilizado para todos los métodos es el formato base
, que no requiere asociaciones específicas de métodos. Sin embargo, si desea personalizar la salida de registro para métodos específicos, puede definir un formato de registro personalizado y aplicarlo a los métodos asociados.
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
: Define el formato de registro con métricas dinámicas. Para obtener más información, consulte Métricas admitidas.proxy.accessLog.<formatter_name>.methods
: Lista las operaciones Milvus que utilizan este formateador. Para obtener los nombres de los métodos, consulte MilvusService en Métodos Milvus.
Referencia: Métricas admitidas
Métrica Nombre | Descripción |
---|---|
$method_name | Nombre del método |
$method_status | Estado del acceso: OK o Fail |
$method_expr | Expresión utilizada para las operaciones de consulta, búsqueda o eliminación |
$trace_id | TraceID asociado al acceso |
$user_addr | Dirección IP del usuario |
$user_name | Nombre del usuario |
$response_size | Tamaño de los datos de respuesta |
$error_code | Código de error específico de Milvus |
$error_msg | Mensaje de error detallado |
$database_name | Nombre de la base de datos Milvus de destino |
$collection_name | Nombre de la colección Milvus de destino |
$partition_name | Nombre o nombres de la(s) partición(es) Milvus de destino |
$time_cost | Tiempo necesario para completar el acceso |
$time_now | Hora a la que se imprime el registro de acceso (normalmente equivalente a $time_end ) |
$time_start | Hora de inicio del acceso |
$time_end | Hora a la que finaliza el acceso |
$sdk_version | Versión del SDK de Milvus utilizada por el usuario |