Mengonfigurasi Log Akses
Fitur log akses di Milvus memungkinkan manajer server untuk mencatat dan menganalisis perilaku akses pengguna, membantu dalam memahami aspek-aspek seperti tingkat keberhasilan kueri dan alasan kegagalan.
Panduan ini memberikan instruksi terperinci tentang cara mengonfigurasi log akses di Milvus.
Konfigurasi log akses tergantung pada metode instalasi Milvus:
- Instalasi Helm: Konfigurasi di
values.yaml
. Untuk informasi lebih lanjut, lihat Mengkonfigurasi Milvus dengan Helm Charts. - Instalasi Docker: Konfigurasikan di
milvus.yaml
. Untuk informasi lebih lanjut, lihat Mengkonfigurasi Milvus dengan Docker Compose. - Instalasi Operator: Ubah
spec.components
dalam berkas konfigurasi. Untuk informasi lebih lanjut, lihat Mengkonfigurasi Milvus dengan Operator Milvus.
Opsi konfigurasi
Pilih di antara tiga opsi konfigurasi berdasarkan kebutuhan Anda:
- Konfigurasi dasar: Untuk keperluan umum.
- Config untuk file log akses lokal: Untuk menyimpan log secara lokal.
- Config untuk mengunggah log akses lokal ke MinIO: Untuk penyimpanan dan pencadangan cloud.
Konfigurasi dasar
Konfigurasi dasar melibatkan pengaktifan log akses dan menentukan nama file log atau menggunakan stdout.
proxy:
accessLog:
enable: true
# If `filename` is emtpy, logs will be printed to stdout.
filename: ""
# Additional formatter configurations...
proxy.accessLog.enable
: Apakah akan mengaktifkan fitur log akses. Defaultnya adalah false (salah).proxy.accessLog.filename
: Nama file log akses. Jika Anda membiarkan parameter ini kosong, log akses akan dicetak ke stdout.
Konfigurasi untuk file log akses lokal
Mengkonfigurasi penyimpanan lokal untuk file log akses dengan parameter yang mencakup jalur file lokal, ukuran file, dan interval rotasi:
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...
Parameter ini ditentukan bila filename
tidak kosong.
proxy.accessLog.localPath
: Jalur file lokal tempat file log akses disimpan.proxy.accessLog.maxSize
: Ukuran maksimum dalam MB yang diperbolehkan untuk satu file log akses. Jika ukuran file log mencapai batas ini, proses rotasi akan dipicu. Proses ini akan menyegel file log akses saat ini, membuat file log baru, dan menghapus isi file log asli.proxy.accessLog.rotatedTime
: Interval waktu maksimum dalam detik yang diizinkan untuk memutar file log akses tunggal. Setelah mencapai interval waktu yang ditentukan, proses rotasi akan dipicu, menghasilkan pembuatan file log akses baru dan menyegel file log sebelumnya.proxy.accessLog.maxBackups
: Jumlah maksimum file log akses tersegel yang dapat disimpan. Jika jumlah file log akses tersegel melebihi batas ini, file log akses yang paling lama akan dihapus.
Config untuk mengunggah file log akses lokal ke MinIO
Aktifkan dan konfigurasikan pengaturan untuk mengunggah file log akses lokal ke 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...
Saat mengonfigurasi parameter MinIO, pastikan Anda telah menetapkan maxSize
atau rotatedTime
. Jika tidak, hal ini dapat menyebabkan kegagalan pengunggahan file log akses lokal ke MinIO.
proxy.accessLog.minioEnable
: Apakah akan mengunggah file log akses lokal ke MinIO. Defaultnya adalah false.proxy.accessLog.remotePath
: Jalur penyimpanan objek untuk mengunggah file log akses.proxy.accessLog.remoteMaxTime
: Interval waktu yang diizinkan untuk mengunggah file log akses. Jika waktu pengunggahan file log melebihi interval ini, file akan dihapus. Mengatur nilai ke 0 akan menonaktifkan fitur ini.
Konfigurasi pemformat
Format log default yang digunakan untuk semua metode adalah format base
, yang tidak memerlukan asosiasi metode tertentu. Namun, jika Anda ingin menyesuaikan output log untuk metode tertentu, Anda dapat menentukan format log khusus dan menerapkannya pada metode yang terkait.
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
: Menentukan format log dengan metrik dinamis. Untuk informasi lebih lanjut, lihat Metrik yang didukung.proxy.accessLog.<formatter_name>.methods
: Mencantumkan operasi Milvus yang menggunakan pemformat ini. Untuk mendapatkan nama metode, lihat MilvusService di metode Milvus.
Referensi: Metrik yang didukung
Nama Metrik | Deskripsi |
---|---|
$method_name | Nama metode |
$method_status | Status akses: OK atau Gagal |
$method_expr | Ekspresi yang digunakan untuk operasi kueri, pencarian, atau penghapusan |
$trace_id | TraceID yang terkait dengan akses |
$user_addr | Alamat IP pengguna |
$user_name | Nama pengguna |
$response_size | Ukuran data respons |
$error_code | Kode kesalahan khusus untuk Milvus |
$error_msg | Pesan kesalahan terperinci |
$database_name | Nama pangkalan data Milvus target |
$collection_name | Nama koleksi Milvus target |
$partition_name | Nama atau nama-nama partisi Milvus target |
$time_cost | Waktu yang dibutuhkan untuk menyelesaikan akses |
$time_now | Waktu saat log akses dicetak (biasanya setara dengan $time_end ) |
$time_start | Waktu saat akses dimulai |
$time_end | Waktu di mana akses berakhir |
$sdk_version | Versi SDK Milvus yang digunakan oleh pengguna |