Theory
인프라
Loki 공식 문서 번역
setup
마이그레이션
Thanos 스토리지 클라이언트로 마이그레이션

Thanos 스토리지 클라이언트로 마이그레이션

원본: https://grafana.com/docs/loki/latest/setup/migrate/migrate-storage-clients/ (opens in a new tab)

Loki 릴리스 3.4에서는 Thanos 객체 스토리지 클라이언트 Go 모듈 (opens in a new tab)을 기반으로 하는 새로운 객체 스토리지 클라이언트를 도입했습니다.

이러한 변경을 한 이유 중 하나는 Grafana Loki, Mimir 및 Grafana Labs의 다른 원격 측정 데이터베이스에서 일관된 스토리지 구성을 갖기 위함입니다. 이미 Grafana Mimir 또는 Pyroscope를 사용하고 있다면 해당 스토리지 구성을 재사용하여 Loki를 설정할 수 있습니다.

이것은 Loki 3.4 릴리스의 선택적 기능입니다. 향후 릴리스에서는 Thanos가 스토리지를 구성하는 기본 방법이 되고 기존 스토리지 클라이언트는 더 이상 사용되지 않습니다.

참고: 새 스토리지 구성은 기존 형식과 다릅니다. 다음 섹션에서는 각 공급자에 대한 변경 사항을 자세히 설명합니다. 지원되는 스토리지 공급자 및 해당 구성 옵션의 전체 목록을 보려면 Thanos 스토리지 구성 참조 (opens in a new tab)를 참조하십시오.

새 스토리지 클라이언트 활성화

  1. storage_config 섹션에서 use_thanos_objstoretrue로 설정하거나 -use-thanos-objstore 플래그를 true로 설정하여 Thanos 스토리지 클라이언트를 활성화합니다. 활성화되면 storage_config.object_store 아래의 구성이 기존 스토리지 구성 대신 적용됩니다.

    # gcs 백엔드에 연결하기 위해 새 스토리지 클라이언트를 사용합니다.
    storage_config:
      use_thanos_objstore: true # 새 스토리지 클라이언트 활성화
      object_store:
        gcs:
          bucket_name: "example-bucket"
  2. 또는 common 구성 섹션을 사용하려는 경우 공통 storage 섹션에서 새 클라이언트를 구성할 수도 있습니다.

    storage_config:
      use_thanos_objstore: true # 새 스토리지 클라이언트 활성화
      common:
        storage:
          object_store:
            gcs:
              bucket_name: "example-bucket"
  3. 새 스토리지 클라이언트를 사용할 때 눈금자 스토리지는 ruler_storage 섹션 아래에 구성해야 합니다.

    storage_config:
      use_thanos_objstore: true # 새 스토리지 클라이언트 활성화
      ruler_storage:
        backend: gcs
        gcs:
          bucket_name: "example-bucket"
  4. store.object-prefix 플래그 또는 해당 object_prefix YAML 설정을 사용하는 경우 새 object_store.storage-prefix 플래그 또는 해당 storage_prefix YAML 설정을 사용하도록 구성을 업데이트해야 합니다.

    # 모든 객체에 "prefix"를 접두사로 붙이는 예제 구성
    storage_config:
      use_thanos_objstore: true # 새 스토리지 클라이언트 활성화
      object_store:
        storage_prefix: "prefix"

GCS 스토리지 마이그레이션

기존 Google Cloud Storage (GCS) (opens in a new tab) 스토리지 클라이언트에서 새 Thanos 기반 클라이언트로 마이그레이션할 때 다음과 같이 구성 매개변수를 업데이트해야 합니다.

기존 매개변수새 매개변수필요한 변경 사항
bucket_namebucket_name변경 필요 없음
service_accountservice_account변경 필요 없음
chunk_buffer_sizechunk_buffer_size변경 필요 없음
enable_retriesmax_retriesenable_retries(bool)를 max_retries(int)로 바꿉니다. 재시도를 활성화하려면 1보다 큰 값을 설정하고 비활성화하려면 1을 설정합니다.
request_timeout제거됨매개변수 제거
enable_opencensus제거됨매개변수 제거
enable_http2제거됨매개변수 제거

구성 마이그레이션 예시 (GCS):

기존 구성:

storage_config:
  gcs:
    bucket_name: example-bucket
    chunk_buffer_size: 10MB
    enable_retries: true

새 구성 (Thanos 기반):

storage_config:
  use_thanos_objstore: true
  object_store:
    gcs:
      bucket_name: example-bucket
      chunk_buffer_size: 10MB
      max_retries: 5

Amazon S3 스토리지 마이그레이션

기존 Amazon S3 (opens in a new tab) 스토리지 클라이언트에서 새 Thanos 기반 클라이언트로 마이그레이션할 때 다음과 같이 매개변수를 업데이트하거나 제거합니다.

기존 매개변수새 매개변수필요한 변경 사항
bucket_namesbucket_name이 매개변수의 이름을 바꿉니다. 이전에 여러 버킷을 사용한 경우 단일 버킷으로 통합해야 합니다(Thanos는 하나만 지원).
endpointendpoint변경 필요 없음.
regionregion변경 필요 없음.
access_key_idaccess_key_id변경 필요 없음.
secret_access_keysecret_access_key변경 필요 없음.
session_tokensession_token변경 필요 없음.
insecureinsecure변경 필요 없음.
disable_dualstackdualstack_enabled이름이 바뀌고 반전되었습니다. disable_dualstack: false였다면 dualstack_enabled: true로 설정합니다.
storage_classstorage_class변경 필요 없음.
s3제거됨URL 기반 설정을 사용한 경우 endpoint로 제거하거나 바꿉니다.
S3ForcePathStyle제거 또는 교체됨경로 기반 주소 지정이 필요한 경우 새 구성에서 bucket_lookup_type: path를 설정합니다. 그렇지 않으면 제거합니다.
signature_version제거됨매개변수를 제거합니다. Thanos는 항상 서명 버전 4(V4)를 사용합니다.
http_confighttp하위 필드(예: 시간 초과, CA 파일 등)를 Thanos 구성의 http: 블록으로 이동합니다.
ssesse모든 SSE 설정(예: type, kms_key_id)을 Thanos 구성의 sse: 블록으로 마이그레이션합니다.
backoff_configmax_retries고급 백오프 설정을 단일 정수(max_retries)로 바꿉니다. 재시도를 비활성화하려면 1로 설정하고 활성화하려면 더 높은 값을 설정합니다.

구성 마이그레이션 예시 (S3):

기존 구성

storage_config:
  aws:
    bucket_names: my-bucket1,my-bucket2 # 더 이상 여러 버킷이 지원되지 않음
    endpoint: s3.amazonaws.com
    region: us-west-2
    access_key_id: example-key
    secret_access_key: example-secret
    signature_version: v4
    disable_dualstack: true
    storage_class: STANDARD
    http_config:
      timeout: 1m
      insecure_skip_verify: false
      # ...
    backoff_config:
      max_retries: 5
    sse:
      type: SSE-KMS
      kms_key_id: mySSEKey

새 구성 (Thanos 기반)

storage_config:
  use_thanos_objstore: true
  object_store:
    s3:
      bucket_name: my-bucket1 # 단일 버킷
      endpoint: s3.amazonaws.com
      region: us-west-2
      access_key_id: example-key
      secret_access_key: example-secret
      dualstack_enabled: false # disable_dualstack: true 였음
      storage_class: STANDARD
      max_retries: 5
      http:
        insecure_skip_verify: false
      sse:
        type: SSE-KMS
        kms_key_id: mySSEKey

list_objects_version, bucket_lookup_type 등과 같은 고급 구성 옵션은 Thanos S3 구성 참조 (opens in a new tab)를 참조하십시오.

Azure 스토리지 마이그레이션

기존 Azure (opens in a new tab) 스토리지 클라이언트에서 새 Thanos 기반 클라이언트로 마이그레이션할 때 다음 매개변수를 사용하는 경우 변경이 필요하지 않습니다.

기존 매개변수새 매개변수필요한 변경 사항
account_nameaccount_name변경 필요 없음
account_keyaccount_key변경 필요 없음
container_namecontainer_name변경 필요 없음
endpoint_suffixendpoint_suffix변경 필요 없음
user_assigned_iduser_assigned_id변경 필요 없음
connection_stringconnection_string변경 필요 없음
max_retriesmax_retries변경 필요 없음
chunk_delimiterchunk_delimiter변경 필요 없음

스토리지 계정 키 또는 사용자 할당 관리 ID 이외의 인증 방법을 사용하는 경우 환경 변수를 사용하여 필요한 자격 증명을 전달해야 합니다. 자세한 내용은 Go용 Azure ID 클라이언트 모듈 (opens in a new tab)을 참조하십시오.

파일 시스템 스토리지 마이그레이션

기존 파일 시스템 스토리지 (opens in a new tab) 클라이언트에서 새 Thanos 기반 클라이언트로 마이그레이션할 때 다음과 같이 매개변수를 업데이트하거나 제거합니다.

기존 매개변수새 매개변수필요한 변경 사항
directorydirdirectorydir로 이름을 바꿉니다.

구성 마이그레이션 예시 (파일 시스템):

기존 구성 (FSConfig)

storage_config:
  filesystem:
    directory: /var/loki/chunks

새 구성 (Thanos 기반)

storage_config:
  use_thanos_objstore: true
  object_store:
    filesystem:
      dir: /var/loki/chunks

여기에 나열되지 않은 공급자는 Thanos 스토리지 구성 참조 (opens in a new tab)를 참조하십시오.