4.4. OpenShift Data Foundation의 클러스터 로깅

클러스터 로깅을 배포하여 다양한 OpenShift Container Platform 서비스의 로그를 집계할 수 있습니다. 클러스터 로깅을 배포하는 방법에 대한 자세한 내용은 클러스터 로깅 배포를 참조하십시오.

초기 OpenShift Container Platform 배포 시 OpenShift Data Foundation은 기본적으로 구성되지 않으며 OpenShift Container Platform 클러스터는 노드에서 사용할 수 있는 기본 스토리지를 전적으로 사용합니다. OpenShift Data Foundation에서 지원하는 OpenShift 로깅(ElasticSearch)의 기본 구성을 편집하여 OpenShift Data Foundation 백업 로깅(Elasticsearch)을 사용할 수 있습니다.

중요

이러한 서비스를 위한 다양한 스토리지 용량이 항상 있는지 확인합니다. 이러한 중요한 서비스의 스토리지 공간이 부족하면 로깅 애플리케이션이 작동할 수 없게 되며 복구하기가 매우 어려워집니다.

이러한 서비스를 위해 더 짧은 큐레이션 및 보존 간격을 구성하는 것이 좋습니다. 자세한 내용은 OpenShift Container Platform 설명서의 클러스터 로깅 큐레이터 를 참조하십시오.

이러한 서비스의 스토리지 공간이 부족할 경우 Red Hat 고객 지원에 문의하십시오.

4.4.1. 영구 스토리지 구성

스토리지 클래스 이름 및 크기 매개변수를 사용하여 Elasticsearch 클러스터의 영구 스토리지 클래스 및 크기를 구성할 수 있습니다. Cluster Logging Operator는 이러한 매개변수를 기반으로 Elasticsearch 클러스터의 각 데이터 노드에 대한 영구 볼륨 클레임을 생성합니다. 예를 들면 다음과 같습니다.

spec:
    logStore:
      type: "elasticsearch"
      elasticsearch:
        nodeCount: 3
        storage:
          storageClassName: "ocs-storagecluster-ceph-rbd”
          size: "200G"

이 예제에서는 클러스터의 각 데이터 노드가 200GiBocs-storagecluster-ceph-rbd 스토리지를 요청하는 영구 볼륨 클레임에 바인딩되도록 지정합니다. 각 기본 분할은 단일 복제본에서 지원합니다. shard 복사본은 모든 노드에 복제되며 항상 사용 가능하며 단일 중복 정책으로 인해 두 개 이상의 노드가 있는 경우 복사본을 복구할 수 있습니다. Elasticsearch 복제 정책에 대한 자세한 내용은 클러스터 로깅 배포 및 구성 정보 에서 Elasticsearch 복제 정책을 참조하십시오.

참고

storage 블록을 생략하면 기본 스토리지에서 지원하는 배포가 생성됩니다. 예를 들면 다음과 같습니다.

spec:
    logStore:
      type: "elasticsearch"
      elasticsearch:
        nodeCount: 3
        storage: {}

자세한 내용은 클러스터 로깅 구성을 참조하십시오.

4.4.2. OpenShift data Foundation을 사용하도록 클러스터 로깅 구성

이 섹션의 지침에 따라 OpenShift 클러스터 로깅 스토리지로 OpenShift Data Foundation을 구성합니다.

참고

OpenShift Data Foundation에서 로깅을 처음 구성할 때 모든 로그를 가져올 수 있습니다. 그러나 로깅을 제거하고 다시 설치한 후에는 이전 로그가 제거되고 새 로그만 처리됩니다.

사전 요구 사항

  • OpenShift 웹 콘솔에 대한 관리자 액세스 권한이 있습니다.
  • OpenShift Data Foundation Operator가 openshift-storage 네임스페이스에 설치 및 실행됩니다.
  • openshift-logging 네임스페이스에 클러스터 로깅 Operator가 설치되고 실행됩니다.

절차

  1. OpenShift 웹 콘솔의 왼쪽 창에서 Administration → Custom Resource Definitions 를 클릭합니다.
  2. 사용자 정의 리소스 정의 페이지에서 ClusterLogging 을 클릭합니다.
  3. 사용자 정의 리소스 정의 개요 페이지의 작업 메뉴에서 인스턴스 보기를 선택하거나 Instances 탭을 클릭합니다.
  4. 클러스터 로깅 페이지에서 클러스터 로깅 생성을 클릭합니다.

    데이터를 로드하기 위해 페이지를 새로 고쳐야 할 수도 있습니다.

  5. YAML에서 the storageClassName 을 프로비저너 openshift-storage.rbd.csi.ceph.com을 사용하는 스토리지 클래스로 바꿉니다. storageclass 의 이름 아래에 지정된 예에서는 ocs-storagecluster-ceph-rbd 입니다.

    apiVersion: "logging.openshift.io/v1"
    kind: "ClusterLogging"
    metadata:
      name: "instance"
      namespace: "openshift-logging"
    spec:
      managementState: "Managed"
      logStore:
        type: "elasticsearch"
        elasticsearch:
          nodeCount: 3
          storage:
            storageClassName: ocs-storagecluster-ceph-rbd
            size: 200G # Change as per your requirement
          redundancyPolicy: "SingleRedundancy"
      visualization:
        type: "kibana"
        kibana:
          replicas: 1
      curation:
        type: "curator"
        curator:
          schedule: "30 3 * * *"
      collection:
        logs:
          type: "fluentd"
          fluentd: {}

    OpenShift Data Foundation 노드를 테인트한 경우 로깅을 위해 daemonset Pod를 예약할 수 있도록 허용 오차를 추가해야 합니다.

    spec:
    [...]
      collection:
        logs:
          fluentd:
            tolerations:
            - effect: NoSchedule
              key: node.ocs.openshift.io/storage
              value: 'true'
          type: fluentd
  6. 저장을 클릭합니다.

검증 단계

  1. 영구 볼륨 클레임이 elasticsearch 포드에 바인딩되었는지 확인합니다.

    1. 스토리지영구 볼륨 클레임 으로 이동합니다.
    2. 프로젝트 드롭다운을 openshift-logging 으로 설정합니다.
    3. 영구 볼륨 클레임이 elasticsearch-* 포드에 연결된 Bound 상태로 표시되는지 확인합니다.

      그림 4.4. 클러스터 로깅 생성 및 바인딩

      elasticsearch Pod에 바인딩된 상태가 있는 영구 볼륨 클레임의 스크린샷
  2. 새 클러스터 로깅이 사용 중인지 확인합니다.

    1. 워크로드 → 포드를 클릭합니다.
    2. 프로젝트를 openshift-logging 으로 설정합니다.
    3. 새로운 elasticsearch-* 포드가 Running 상태로 표시되는지 확인합니다.
    4. elasticsearch-* pod를 클릭하여 포드 세부 정보를 확인합니다.
    5. Volumes(볼륨) 까지 아래로 스크롤하고 elasticsearch 볼륨에 새 영구 볼륨 클레임(예: elasticsearch-elasticsearch-cdm-9r624biv-3)일치하는 유형이 있는지 확인합니다.
    6. 영구 볼륨 클레임 이름을 클릭하고 PersistentVolumeClaim Overview(개요) 페이지에서 스토리지 클래스 이름을 확인합니다.
참고

Elasticsearch Pod에 연결된 PV에서 PV 전체 시나리오를 방지하려면 더 짧은 큐레이터 시간을 사용해야 합니다.

보존 설정에 따라 Elasticsearch 데이터를 삭제하도록 Curator를 구성할 수 있습니다. 다음 기본 인덱스 데이터 보존을 기본값으로 5일로 설정하는 것이 좋습니다.

config.yaml: |
    openshift-storage:
      delete:
        days: 5

자세한 내용은 Elasticsearch 데이터 Curation을 참조하십시오.

참고

영구 볼륨 클레임에서 지원하는 클러스터 로깅을 설치 제거하려면 해당 배포 가이드의 설치 제거 장에서 OpenShift Data Foundation에서 클러스터 로깅 운영자를 제거하는 절차를 사용하십시오.