6.3.2. OpenShift Container Storage를 사용하도록 클러스터 로깅 구성

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

참고

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

사전 요구 사항

  • OpenShift 웹 콘솔에 대한 관리자 액세스 권한이 있습니다.
  • OpenShift Container Storage 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 Container Storage 노드를 테인트한 경우 로깅을 위해 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 상태로 표시되는지 확인합니다.

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

      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 Container Storage에서 클러스터 로깅 운영자를 제거하는 절차를 사용하십시오.