Configurar Logs de Acesso
A funcionalidade de registo de acesso no Milvus permite aos gestores de servidores registar e analisar o comportamento de acesso dos utilizadores, ajudando a compreender aspectos como as taxas de sucesso das consultas e as razões das falhas.
Este guia fornece instruções detalhadas sobre a configuração dos registos de acesso no Milvus.
A configuração dos registos de acesso depende do método de instalação do Milvus:
- Instalação do Helm: Configurar em
values.yaml
. Para obter mais informações, consulte Configurar o Milvus com gráficos do Helm. - Instalação do Docker: Configurar em
milvus.yaml
. Para obter mais informações, consulte Configurar o Milvus com o Docker Compose. - Instalação do operador: Modificar
spec.components
no ficheiro de configuração. Para obter mais informações, consulte Configurar o Milvus com o Milvus Operator.
Opções de configuração
Escolha entre três opções de configuração com base nas suas necessidades:
- Configuração básica: Para fins gerais.
- Configuração para ficheiros de registo de acesso local: Para armazenar os registos localmente.
- Configuração para carregar os registos de acesso local para o MinIO: Para armazenamento e backup na nuvem.
Configuração de base
A configuração básica envolve a ativação dos registos de acesso e a definição do nome do ficheiro de registo ou a utilização de stdout.
proxy:
accessLog:
enable: true
# If `filename` is emtpy, logs will be printed to stdout.
filename: ""
# Additional formatter configurations...
proxy.accessLog.enable
: Se deve ativar a funcionalidade de registo de acesso. A predefinição é falso.proxy.accessLog.filename
: O nome do ficheiro de registo de acesso. Se deixar este parâmetro vazio, os registos de acesso serão impressos no stdout.
Configuração para ficheiros de registo de acesso local
Configurar o armazenamento local para ficheiros de registo de acesso com parâmetros que incluem o caminho do ficheiro local, o tamanho do ficheiro e o intervalo de rotação:
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...
Estes parâmetros são especificados quando filename
não está vazio.
proxy.accessLog.localPath
: O caminho do ficheiro local onde o ficheiro de registo de acesso é armazenado.proxy.accessLog.maxSize
: O tamanho máximo em MB permitido para um único ficheiro de registo de acesso. Se o tamanho do ficheiro de registo atingir este limite, será desencadeado um processo de rotação. Este processo sela o ficheiro de registo de acesso atual, cria um novo ficheiro de registo e limpa o conteúdo do ficheiro de registo original.proxy.accessLog.rotatedTime
: O intervalo de tempo máximo em segundos permitido para rodar um único ficheiro de registo de acesso. Ao atingir o intervalo de tempo especificado, é desencadeado um processo de rotação, resultando na criação de um novo ficheiro de registo de acesso e na selagem do anterior.proxy.accessLog.maxBackups
: O número máximo de ficheiros de registo de acesso selados que podem ser retidos. Se o número de ficheiros de registo de acesso selados exceder este limite, o mais antigo será apagado.
Configuração para carregar ficheiros de registo de acesso local para o MinIO
Ativar e configurar definições para carregar ficheiros de registo de acesso local para o 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...
Ao configurar os parâmetros do MinIO, certifique-se de que definiu maxSize
ou rotatedTime
. Se não o fizer, pode resultar em carregamentos mal sucedidos de ficheiros de registo de acesso local para o MinIO.
proxy.accessLog.minioEnable
: Se deve carregar ficheiros de registo de acesso local para o MinIO. O padrão é falso.proxy.accessLog.remotePath
: O caminho do armazenamento de objectos para carregar ficheiros de registo de acesso.proxy.accessLog.remoteMaxTime
: O intervalo de tempo permitido para carregar ficheiros de registo de acesso. Se o tempo de carregamento de um ficheiro de registo exceder este intervalo, o ficheiro será eliminado. Definir o valor para 0 desactiva esta funcionalidade.
Configuração do formatador
O formato de registo predefinido utilizado para todos os métodos é o formato base
, que não requer associações de métodos específicas. No entanto, se pretender personalizar a saída de registo para métodos específicos, pode definir um formato de registo personalizado e aplicá-lo aos métodos associados.
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 o formato de registo com métricas dinâmicas. Para obter mais informações, consulte Métricas suportadas.proxy.accessLog.<formatter_name>.methods
: Lista as operações do Milvus que utilizam este formatador. Para obter os nomes dos métodos, consulte MilvusService em Métodos Milvus.
Referência: Métricas suportadas
Métrica Nome | Descrição |
---|---|
$method_name | Nome do método |
$method_status | Estado do acesso: OK ou Falha |
$method_expr | Expressão utilizada para operações de consulta, pesquisa ou eliminação |
$trace_id | TraceID associado ao acesso |
$user_addr | Endereço IP do utilizador |
$user_name | Nome do utilizador |
$response_size | Tamanho dos dados de resposta |
$error_code | Código de erro específico do Milvus |
$error_msg | Mensagem de erro pormenorizada |
$database_name | Nome da base de dados Milvus de destino |
$collection_name | Nome da coleção Milvus de destino |
$partition_name | Nome ou nomes da(s) partição(ões) Milvus de destino |
$time_cost | Tempo necessário para completar o acesso |
$time_now | Hora em que o registo de acesso é impresso (geralmente equivalente a $time_end ) |
$time_start | Hora de início do acesso |
$time_end | Hora em que o acesso termina |
$sdk_version | Versão do Milvus SDK utilizada pelo utilizador |