milvus-logo
LFAI
홈페이지
  • 관리 가이드
    • 모니터링, 알림 및 로그

액세스 로그 구성

서버 관리자는 Milvus의 액세스 로그 기능을 통해 사용자 액세스 동작을 기록하고 분석하여 쿼리 성공률 및 실패 이유와 같은 측면을 파악할 수 있습니다.

이 가이드는 Milvus에서 액세스 로그를 구성하는 방법에 대한 자세한 지침을 제공합니다.

액세스 로그의 구성은 Milvus의 설치 방법에 따라 다릅니다:

구성 옵션

필요에 따라 세 가지 구성 옵션 중에서 선택하세요:

  • 기본 구성: 일반적인 용도로 사용합니다.
  • 로컬 액세스 로그 파일용 구성: 로그를 로컬에 저장합니다.
  • 로컬 액세스 로그를 MinIO에 업로드하기 위한 구성: 클라우드 스토리지 및 백업용.

기본 구성

기본 구성에는 액세스 로그를 활성화하고 로그 파일명을 정의하거나 stdout을 사용하는 것이 포함됩니다.

proxy:
  accessLog:
    enable: true
    # If `filename` is emtpy, logs will be printed to stdout.
    filename: ""
    # Additional formatter configurations...
  • proxy.accessLog.enable: 액세스 로그 기능을 활성화할지 여부입니다. 기본값은 false입니다.
  • proxy.accessLog.filename: 접근 로그 파일의 이름입니다. 이 매개변수를 비워두면 액세스 로그가 stdout에 인쇄됩니다.

로컬 액세스 로그 파일 구성

로컬 파일 경로, 파일 크기, 순환 간격 등의 매개변수를 사용하여 액세스 로그 파일의 로컬 저장소를 구성합니다:

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...

이러한 매개변수는 filename 이 비어 있지 않을 때 지정됩니다.

  • proxy.accessLog.localPath: 액세스 로그 파일이 저장되는 로컬 파일 경로입니다.
  • proxy.accessLog.maxSize: 단일 액세스 로그 파일에 허용되는 최대 크기(MB)입니다. 로그 파일 크기가 이 제한에 도달하면 로테이션 프로세스가 트리거됩니다. 이 프로세스는 현재 액세스 로그 파일을 봉인하고 새 로그 파일을 생성하며 원본 로그 파일의 내용을 지웁니다.
  • proxy.accessLog.rotatedTime: 단일 액세스 로그 파일을 순환하는 데 허용되는 최대 시간 간격(초)입니다. 지정된 시간 간격에 도달하면 로테이션 프로세스가 트리거되어 새 액세스 로그 파일이 생성되고 이전 로그 파일이 봉인됩니다.
  • proxy.accessLog.maxBackups: 보관할 수 있는 봉인된 액세스 로그 파일의 최대 개수입니다. 봉인된 액세스 로그 파일 수가 이 제한을 초과하면 가장 오래된 파일이 삭제됩니다.

로컬 액세스 로그 파일을 MinIO에 업로드하기 위한 설정

로컬 액세스 로그 파일을 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...

MinIO 매개변수를 구성할 때 maxSize 또는 rotatedTime 을 설정했는지 확인하세요. 그렇지 않으면 로컬 액세스 로그 파일을 MinIO에 업로드하지 못할 수 있습니다.

  • proxy.accessLog.minioEnable: 로컬 액세스 로그 파일을 MinIO에 업로드할지 여부입니다. 기본값은 false입니다.
  • proxy.accessLog.remotePath: 액세스 로그 파일을 업로드할 오브젝트 스토리지의 경로입니다.
  • proxy.accessLog.remoteMaxTime: 액세스 로그 파일 업로드에 허용되는 시간 간격입니다. 로그 파일의 업로드 시간이 이 간격을 초과하면 파일이 삭제됩니다. 이 값을 0으로 설정하면 이 기능이 비활성화됩니다.

포맷터 구성

모든 메소드에 사용되는 기본 로그 형식은 특정 메소드 연결이 필요하지 않은 base 형식입니다. 그러나 특정 메소드에 대한 로그 출력을 사용자 지정하려면 사용자 지정 로그 형식을 정의하여 연결된 메소드에 적용할 수 있습니다.

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: 동적 메트릭을 사용하여 로그 형식을 정의합니다. 자세한 내용은 지원되는 메트릭을 참조하세요.
  • proxy.accessLog.<formatter_name>.methods: 이 포맷터를 사용하는 Milvus 작업을 나열합니다. 메서드 이름을 얻으려면 Milvus 메서드에서 MilvusService를 참조하세요.

참조: 지원되는 메트릭

메트릭 이름설명
$method_name메서드 이름
$method_status액세스 상태입니다: 확인 또는 실패
$method_expr쿼리, 검색 또는 삭제 작업에 사용된 표현식
$trace_id액세스와 연관된 TraceID
$user_addr사용자의 IP 주소
$user_name사용자 이름
$response_size응답 데이터의 크기
$error_code밀버스 전용 오류 코드
$error_msg자세한 오류 메시지
$database_name대상 Milvus 데이터베이스의 이름
$collection_name대상 Milvus 컬렉션의 이름
$partition_name대상 Milvus 파티션의 이름(또는 이름)
$time_cost액세스를 완료하는 데 걸린 시간
$time_now액세스 로그가 인쇄된 시간(일반적으로 $time_end)과 동일)
$time_start액세스가 시작된 시간
$time_end액세스가 종료된 시간
$sdk_version사용자가 사용한 Milvus SDK 버전

번역DeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
피드백

이 페이지가 도움이 되었나요?