Zugriffsprotokolle konfigurieren
Die Zugriffsprotokollfunktion in Milvus ermöglicht es Servermanagern, das Zugriffsverhalten der Benutzer aufzuzeichnen und zu analysieren, um Aspekte wie die Erfolgsrate von Abfragen und die Gründe für Fehler zu verstehen.
Dieser Leitfaden enthält detaillierte Anweisungen zur Konfiguration von Zugriffsprotokollen in Milvus.
Die Konfiguration der Zugriffsprotokolle hängt von der Installationsmethode von Milvus ab:
- Helm-Installation: Konfigurieren Sie unter
values.yaml
. Weitere Informationen finden Sie unter Konfigurieren von Milvus mit Helm Charts. - Docker-Installation: Konfigurieren Sie unter
milvus.yaml
. Weitere Informationen finden Sie unter Konfigurieren von Milvus mit Docker Compose. - Operator-Installation: Ändern Sie
spec.components
in der Konfigurationsdatei. Weitere Informationen finden Sie unter Konfigurieren von Milvus mit Milvus Operator.
Konfigurationsoptionen
Wählen Sie je nach Ihren Bedürfnissen zwischen drei Konfigurationsoptionen:
- Basiskonfiguration: Für allgemeine Zwecke.
- Konfiguration für lokale Zugriffsprotokolldateien: Für die lokale Speicherung von Protokollen.
- Konfiguration für das Hochladen lokaler Zugriffsprotokolle zu MinIO: Für die Speicherung und Sicherung in der Cloud.
Basis-Konfiguration
Die Basiskonfiguration umfasst die Aktivierung von Zugriffsprotokollen und die Definition des Dateinamens für das Protokoll oder die Verwendung von stdout.
proxy:
accessLog:
enable: true
# If `filename` is emtpy, logs will be printed to stdout.
filename: ""
# Additional formatter configurations...
proxy.accessLog.enable
: Ob die Zugriffsprotokollfunktion aktiviert werden soll. Die Voreinstellung ist false.proxy.accessLog.filename
: Der Name der Zugriffsprotokolldatei. Wenn Sie diesen Parameter leer lassen, werden die Zugriffsprotokolle auf stdout ausgegeben.
Config für lokale Zugriffsprotokolldateien
Konfigurieren Sie die lokale Speicherung für Zugriffsprotokolldateien mit Parametern wie dem lokalen Dateipfad, der Dateigröße und dem Rotationsintervall:
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...
Diese Parameter werden angegeben, wenn filename
nicht leer ist.
proxy.accessLog.localPath
: Der lokale Dateipfad, in dem die Zugriffsprotokolldatei gespeichert wird.proxy.accessLog.maxSize
: Die maximal zulässige Größe in MB für eine einzelne Zugriffsprotokolldatei. Wenn die Größe der Protokolldatei diese Grenze erreicht, wird ein Rotationsprozess ausgelöst. Dieser Prozess versiegelt die aktuelle Zugriffsprotokolldatei, erstellt eine neue Protokolldatei und löscht den Inhalt der ursprünglichen Protokolldatei.proxy.accessLog.rotatedTime
: Das maximale Zeitintervall in Sekunden, das für die Rotation einer einzelnen Zugriffsprotokolldatei zulässig ist. Bei Erreichen des angegebenen Zeitintervalls wird ein Rotationsprozess ausgelöst, der zur Erstellung einer neuen Zugriffsprotokolldatei und zur Versiegelung der vorherigen Datei führt.proxy.accessLog.maxBackups
: Die maximale Anzahl der versiegelten Zugriffsprotokolldateien, die aufbewahrt werden können. Wenn die Anzahl der versiegelten Zugriffsprotokolldateien diese Grenze überschreitet, wird die älteste Datei gelöscht.
Konfiguration für das Hochladen lokaler Zugriffsprotokolldateien zu MinIO
Aktivieren und konfigurieren Sie die Einstellungen zum Hochladen lokaler Zugriffsprotokolldateien zu 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...
Stellen Sie bei der Konfiguration der MinIO-Parameter sicher, dass Sie entweder maxSize
oder rotatedTime
eingestellt haben. Andernfalls kann der Upload lokaler Zugriffsprotokolldateien zu MinIO fehlschlagen.
proxy.accessLog.minioEnable
: Ob lokale Zugriffsprotokolldateien zu MinIO hochgeladen werden sollen. Die Voreinstellung ist false.proxy.accessLog.remotePath
: Der Pfad des Objektspeichers für das Hochladen von Zugriffsprotokolldateien.proxy.accessLog.remoteMaxTime
: Das zulässige Zeitintervall für das Hochladen von Zugriffsprotokolldateien. Wenn die Hochladezeit einer Protokolldatei dieses Intervall überschreitet, wird die Datei gelöscht. Wird der Wert auf 0 gesetzt, wird diese Funktion deaktiviert.
Formatierungskonfiguration
Das Standardprotokollformat, das für alle Methoden verwendet wird, ist das Format base
, das keine spezifischen Methodenzuordnungen erfordert. Wenn Sie jedoch die Protokollausgabe für bestimmte Methoden anpassen möchten, können Sie ein benutzerdefiniertes Protokollformat definieren und es auf die zugehörigen Methoden anwenden.
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
: Definiert das Protokollformat mit dynamischen Metriken. Weitere Informationen finden Sie unter Unterstützte Metriken.proxy.accessLog.<formatter_name>.methods
: Listet die Milvus-Operationen auf, die diesen Formatierer verwenden. Um Methodennamen zu erhalten, siehe MilvusService in Milvus-Methoden.
Referenz: Unterstützte Metriken
Metrik Name | Beschreibung |
---|---|
$method_name | Name der Methode |
$method_status | Status des Zugriffs: OK oder Fehlgeschlagen |
$method_expr | Für Abfrage-, Such- oder Löschvorgänge verwendeter Ausdruck |
$trace_id | Mit dem Zugriff verbundene TraceID |
$user_addr | IP-Adresse des Benutzers |
$user_name | Name des Benutzers |
$response_size | Größe der Antwortdaten |
$error_code | Fehlercode speziell für Milvus |
$error_msg | Detaillierte Fehlermeldung |
$database_name | Name der Milvus-Zieldatenbank |
$collection_name | Name der Milvus-Zielsammlung |
$partition_name | Name oder Namen der Milvus-Zielpartition(en) |
$time_cost | Zeit, die für die Beendigung des Zugriffs benötigt wurde |
$time_now | Zeitpunkt, zu dem das Zugriffsprotokoll gedruckt wird (entspricht in der Regel $time_end ) |
$time_start | Uhrzeit, zu der der Zugriff beginnt |
$time_end | Uhrzeit, zu der der Zugriff endet |
$sdk_version | Version des vom Benutzer verwendeten Milvus-SDK |