Configuration des journaux d'accès
La fonction de journal des accès de Milvus permet aux gestionnaires de serveurs d'enregistrer et d'analyser le comportement des utilisateurs en matière d'accès, ce qui permet de comprendre des aspects tels que les taux de réussite des requêtes et les raisons des échecs.
Ce guide fournit des instructions détaillées sur la configuration des journaux d'accès dans Milvus.
La configuration des journaux d'accès dépend de la méthode d'installation de Milvus :
- Installation de Helm: Configurer dans
values.yaml
. Pour plus d'informations, voir Configurer Milvus avec Helm Charts. - Installation Docker: Configurer à l'adresse
milvus.yaml
. Pour plus d'informations, voir Configurer Milvus avec Docker Compose. - Installation de l'opérateur: Modifier
spec.components
dans le fichier de configuration. Pour plus d'informations, voir Configurer Milvus avec Milvus Operator.
Options de configuration
Choisissez parmi trois options de configuration en fonction de vos besoins :
- Configuration de base: Pour les besoins généraux.
- Config pour les fichiers journaux d'accès local: Pour stocker les journaux localement.
- Configuration pour le téléchargement des journaux d'accès locaux vers MinIO: Pour le stockage et la sauvegarde dans le nuage.
Configuration de base
La configuration de base consiste à activer les journaux d'accès et à définir le nom du fichier journal ou à utiliser stdout.
proxy:
accessLog:
enable: true
# If `filename` is emtpy, logs will be printed to stdout.
filename: ""
# Additional formatter configurations...
proxy.accessLog.enable
: Activation ou non de la fonction de journal d'accès. La valeur par défaut est false.proxy.accessLog.filename
: Le nom du fichier journal d'accès. Si vous laissez ce paramètre vide, les journaux d'accès seront imprimés sur stdout.
Configuration des fichiers journaux d'accès locaux
Configurez le stockage local des fichiers journaux d'accès avec des paramètres tels que le chemin d'accès au fichier local, la taille du fichier et l'intervalle de rotation :
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...
Ces paramètres sont spécifiés lorsque filename
n'est pas vide.
proxy.accessLog.localPath
: Le chemin d'accès au fichier local où le fichier journal d'accès est stocké.proxy.accessLog.maxSize
: La taille maximale en Mo autorisée pour un seul fichier journal d'accès. Si la taille du fichier journal atteint cette limite, un processus de rotation est déclenché. Ce processus scelle le fichier journal d'accès actuel, crée un nouveau fichier journal et efface le contenu du fichier journal d'origine.proxy.accessLog.rotatedTime
: Intervalle de temps maximum en secondes autorisé pour la rotation d'un seul fichier journal d'accès. Lorsque l'intervalle de temps spécifié est atteint, un processus de rotation est déclenché, ce qui entraîne la création d'un nouveau fichier journal d'accès et le scellement du précédent.proxy.accessLog.maxBackups
: Nombre maximal de fichiers journaux d'accès scellés pouvant être conservés. Si le nombre de fichiers journaux d'accès scellés dépasse cette limite, le plus ancien sera supprimé.
Configuration du téléchargement des fichiers journaux d'accès locaux vers MinIO
Activez et configurez les paramètres pour télécharger les fichiers journaux d'accès locaux vers 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...
Lors de la configuration des paramètres de MinIO, assurez-vous que vous avez défini maxSize
ou rotatedTime
. Si vous ne le faites pas, le téléchargement des fichiers journaux d'accès locaux vers MinIO risque d'échouer.
proxy.accessLog.minioEnable
: Indique si les fichiers journaux d'accès locaux doivent être téléchargés vers MinIO. La valeur par défaut est false.proxy.accessLog.remotePath
: Le chemin d'accès au stockage d'objets pour le téléchargement des fichiers journaux d'accès.proxy.accessLog.remoteMaxTime
: L'intervalle de temps autorisé pour le téléchargement des fichiers journaux d'accès. Si le temps de téléchargement d'un fichier journal dépasse cet intervalle, le fichier sera supprimé. La valeur 0 désactive cette fonctionnalité.
Formatter config
Le format d'enregistrement par défaut utilisé pour toutes les méthodes est le format base
, qui ne nécessite pas d'associations de méthodes spécifiques. Toutefois, si vous souhaitez personnaliser la sortie du journal pour des méthodes spécifiques, vous pouvez définir un format de journal personnalisé et l'appliquer aux méthodes associées.
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
: Définit le format de journalisation avec des métriques dynamiques. Pour plus d'informations, voir Métriques prises en charge.proxy.accessLog.<formatter_name>.methods
: Liste les opérations Milvus utilisant ce formateur. Pour obtenir les noms des méthodes, voir MilvusService dans Méthodes Milvus.
Référence : Métriques prises en charge
Nom de la métrique | Description |
---|---|
$method_name | Nom de la méthode |
$method_status | Statut de l'accès : OK ou Échec |
$method_expr | Expression utilisée pour les opérations d'interrogation, de recherche ou de suppression |
$trace_id | TraceID associé à l'accès |
$user_addr | Adresse IP de l'utilisateur |
$user_name | Nom de l'utilisateur |
$response_size | Taille des données de la réponse |
$error_code | Code d'erreur spécifique à Milvus |
$error_msg | Message d'erreur détaillé |
$database_name | Nom de la base de données Milvus cible |
$collection_name | Nom de la collection Milvus cible |
$partition_name | Nom de la ou des partition(s) Milvus cible(s) |
$time_cost | Temps nécessaire pour terminer l'accès |
$time_now | Heure d'impression du journal d'accès (généralement équivalent à $time_end ) |
$time_start | Heure de début de l'accès |
$time_end | Heure de fin de l'accès |
$sdk_version | Version du Milvus SDK utilisée par l'utilisateur |