6.2. CLI를 사용하여 Elasticsearch로 로깅 설치


Elasticsearch는 메모리를 많이 사용하는 애플리케이션입니다. 기본적으로 OpenShift Container Platform은 메모리 요청 및 제한이 16GB인 3 개의 Elasticsearch 노드를 설치합니다. 이 초기 3개의 OpenShift Container Platform 노드 세트에는 클러스터 내에서 Elasticsearch를 실행하기에 충분한 메모리가 없을 수 있습니다. Elasticsearch와 관련된 메모리 문제가 발생하는 경우 기존 노드의 메모리를 늘리는 대신 클러스터에 Elasticsearch 노드를 더 추가합니다.

사전 요구 사항

  • Elasticsearch에 필요한 영구 스토리지가 있는지 확인합니다. 각 Elasticsearch 노드에는 자체 스토리지 볼륨이 필요합니다.

    참고

    영구 스토리지에 로컬 볼륨을 사용하는 경우 LocalVolume 개체에서 volumeMode: block에 설명된 원시 블록 볼륨을 사용하지 마십시오. Elasticsearch는 원시 블록 볼륨을 사용할 수 없습니다.

프로세스

  1. OpenShift Elasticsearch Operator의 Namespace 오브젝트를 생성합니다.

    Namespace 오브젝트의 예

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-operators-redhat 
    1
    
      annotations:
        openshift.io/node-selector: ""
      labels:
        openshift.io/cluster-monitoring: "true" 
    2

    1
    openshift-operators-redhat 네임스페이스를 지정해야 합니다. openshift-operators 네임스페이스에 신뢰할 수 없는 Community Operator가 포함될 수 있고, 여기에서 OpenShift Container Platform 지표와 동일한 이름의 지표를 게시하면 충돌이 발생합니다.
    2
    클러스터 모니터링이 openshift-operators-redhat 네임스페이스를 스크랩하도록 하기 위해 표시된 대로 라벨을 지정하는 문자열 값입니다.
  2. 다음 명령을 실행하여 Namespace 오브젝트를 적용합니다.

    $ oc apply -f <filename>.yaml
  3. Red Hat OpenShift Logging Operator의 Namespace 오브젝트를 생성합니다.

    Namespace 오브젝트의 예

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-logging 
    1
    
      annotations:
        openshift.io/node-selector: ""
      labels:
        openshift.io/cluster-monitoring: "true"

    1
    로깅 버전 5.7 및 이전 버전의 네임스페이스로 openshift-logging 을 지정해야 합니다. 로깅 5.8 이상의 경우 모든 네임스페이스를 사용할 수 있습니다.
  4. 다음 명령을 실행하여 Namespace 오브젝트를 적용합니다.

    $ oc apply -f <filename>.yaml
  5. OpenShift Elasticsearch Operator에 대한 OperatorGroup 오브젝트를 생성합니다.

    OperatorGroup 오브젝트의 예

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: openshift-operators-redhat
      namespace: openshift-operators-redhat 
    1
    
    spec: {}

    1
    openshift-operators-redhat 네임스페이스를 지정해야 합니다.
  6. 다음 명령을 실행하여 OperatorGroup 오브젝트를 적용합니다.

    $ oc apply -f <filename>.yaml
  7. OpenShift Elasticsearch Operator에 네임스페이스를 서브스크립션할 Subscription 오브젝트를 생성합니다.

    참고

    stable 채널은 최신 로깅 릴리스에 대한 업데이트만 제공합니다. 이전 릴리스에 대한 업데이트를 계속 받으려면 서브스크립션 채널을 stable-x.y 로 변경해야 합니다. 여기서 x.y 는 설치한 로깅 및 마이너 버전을 나타냅니다. 예를 들면 stable-5.7 입니다.

    Subscription 개체 예

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: elasticsearch-operator
      namespace: openshift-operators-redhat 
    1
    
    spec:
      channel: <channel> 
    2
    
      installPlanApproval: Automatic 
    3
    
      source: redhat-operators 
    4
    
      sourceNamespace: openshift-marketplace
      name: elasticsearch-operator

    1
    openshift-operators-redhat 네임스페이스를 지정해야 합니다.
    2
    stable 또는 stable- 을 채널로 지정합니다.
    3
    자동 을 사용하면 새 버전이 사용 가능할 때 OLM(Operator Lifecycle Manager)이 Operator를 자동으로 업데이트할 수 있습니다. 수동 을 사용하려면 적절한 인증 정보가 있는 사용자가 Operator 업데이트를 승인해야 합니다.
    4
    redhat-operators를 지정합니다. OpenShift Container Platform 클러스터가 제한된 네트워크(연결이 끊긴 클러스터)에 설치된 경우 OLM(Operator Lifecycle Manager)을 구성할 때 생성된 CatalogSource 오브젝트의 이름을 지정합니다.
  8. 다음 명령을 실행하여 서브스크립션을 적용합니다.

    $ oc apply -f <filename>.yaml
  9. 다음 명령을 실행하여 Operator 설치를 확인합니다.

    $ oc get csv --all-namespaces

    출력 예

    NAMESPACE                                          NAME                            DISPLAY                            VERSION          REPLACES                        PHASE
    default                                            elasticsearch-operator.v5.8.3   OpenShift Elasticsearch Operator   5.8.3            elasticsearch-operator.v5.8.2   Succeeded
    kube-node-lease                                    elasticsearch-operator.v5.8.3   OpenShift Elasticsearch Operator   5.8.3            elasticsearch-operator.v5.8.2   Succeeded
    kube-public                                        elasticsearch-operator.v5.8.3   OpenShift Elasticsearch Operator   5.8.3            elasticsearch-operator.v5.8.2   Succeeded
    kube-system                                        elasticsearch-operator.v5.8.3   OpenShift Elasticsearch Operator   5.8.3            elasticsearch-operator.v5.8.2   Succeeded
    openshift-apiserver-operator                       elasticsearch-operator.v5.8.3   OpenShift Elasticsearch Operator   5.8.3            elasticsearch-operator.v5.8.2   Succeeded
    openshift-apiserver                                elasticsearch-operator.v5.8.3   OpenShift Elasticsearch Operator   5.8.3            elasticsearch-operator.v5.8.2   Succeeded
    openshift-authentication-operator                  elasticsearch-operator.v5.8.3   OpenShift Elasticsearch Operator   5.8.3            elasticsearch-operator.v5.8.2   Succeeded
    openshift-authentication                           elasticsearch-operator.v5.8.3   OpenShift Elasticsearch Operator   5.8.3            elasticsearch-operator.v5.8.2   Succeeded
    openshift-cloud-controller-manager-operator        elasticsearch-operator.v5.8.3   OpenShift Elasticsearch Operator   5.8.3            elasticsearch-operator.v5.8.2   Succeeded
    openshift-cloud-controller-manager                 elasticsearch-operator.v5.8.3   OpenShift Elasticsearch Operator   5.8.3            elasticsearch-operator.v5.8.2   Succeeded
    openshift-cloud-credential-operator                elasticsearch-operator.v5.8.3   OpenShift Elasticsearch Operator   5.8.3            elasticsearch-operator.v5.8.2   Succeeded

  10. Red Hat OpenShift Logging Operator에 대한 OperatorGroup 오브젝트를 생성합니다.

    OperatorGroup 오브젝트의 예

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: cluster-logging
      namespace: openshift-logging 
    1
    
    spec:
      targetNamespaces:
      - openshift-logging 
    2

    1
    로깅 버전 5.7 및 이전 버전의 네임스페이스로 openshift-logging 을 지정해야 합니다. 로깅 5.8 이상의 경우 모든 네임스페이스를 사용할 수 있습니다.
    2
    로깅 버전 5.7 및 이전 버전의 네임스페이스로 openshift-logging 을 지정해야 합니다. 로깅 5.8 이상의 경우 모든 네임스페이스를 사용할 수 있습니다.
  11. 다음 명령을 실행하여 OperatorGroup 오브젝트를 적용합니다.

    $ oc apply -f <filename>.yaml
  12. Red Hat OpenShift Logging Operator에 네임스페이스를 서브스크립션하는 Subscription 오브젝트를 생성합니다.

    Subscription 개체 예

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: cluster-logging
      namespace: openshift-logging 
    1
    
    spec:
      channel: stable 
    2
    
      name: cluster-logging
      source: redhat-operators 
    3
    
      sourceNamespace: openshift-marketplace

    1
    로깅 버전 5.7 이상에는 openshift-logging 네임스페이스를 지정해야 합니다. 로깅 5.8 이상 버전의 경우 모든 네임스페이스를 사용할 수 있습니다.
    2
    stable 또는 stable-x.y 를 채널로 지정합니다.
    3
    redhat-operators를 지정합니다. OpenShift Container Platform 클러스터가 제한된 네트워크(연결이 끊긴 클러스터)에 설치된 경우 OLM(Operator Lifecycle Manager)을 구성할 때 생성된 CatalogSource 오브젝트의 이름을 지정합니다.
  13. 다음 명령을 실행하여 서브스크립션 오브젝트를 적용합니다.

    $ oc apply -f <filename>.yaml
  14. ClusterLogging 오브젝트를 YAML 파일로 생성합니다.

    ClusterLogging 오브젝트의 예

    apiVersion: logging.openshift.io/v1
    kind: ClusterLogging
    metadata:
      name: instance 
    1
    
      namespace: openshift-logging
    spec:
      managementState: Managed 
    2
    
      logStore:
        type: elasticsearch 
    3
    
        retentionPolicy: 
    4
    
          application:
            maxAge: 1d
          infra:
            maxAge: 7d
          audit:
            maxAge: 7d
        elasticsearch:
          nodeCount: 3 
    5
    
          storage:
            storageClassName: <storage_class_name> 
    6
    
            size: 200G
          resources: 
    7
    
              limits:
                memory: 16Gi
              requests:
                memory: 16Gi
          proxy: 
    8
    
            resources:
              limits:
                memory: 256Mi
              requests:
                memory: 256Mi
          redundancyPolicy: SingleRedundancy
      visualization:
        type: kibana 
    9
    
        kibana:
          replicas: 1
      collection:
        type: fluentd 
    10
    
        fluentd: {}

    1
    이름은 instance이어야 합니다.
    2
    OpenShift Logging 관리 상태입니다. 경우에 따라 OpenShift Logging 기본값을 변경하는 경우 이를 Unmanaged로 설정해야 합니다. 그러나 관리되지 않는 배포는 OpenShift Logging이 다시 Managed 상태로 될 때까지 업데이트를 받지 않습니다.
    3
    Elasticsearch 구성을 위한 설정입니다. CR을 사용하여 shard 복제 정책 및 영구 스토리지를 구성할 수 있습니다.
    4
    Elasticsearch가 각 로그 소스를 유지해야 하는 시간을 지정합니다. 정수 및 시간 지정을 입력합니다(주(w), 시간(h/H), 분(m) 및 초(s)). 예를 들어 7일은 7d입니다. maxAge보다 오래된 로그는 삭제됩니다. 각 로그 소스에 대한 보존 정책을 지정해야 합니다. 그렇지 않으면 해당 소스에 대해 Elasticsearch 인덱스가 생성되지 않습니다.
    5
    Elasticsearch 노드 수를 지정합니다.
    6
    Elasticsearch 스토리지의 기존 스토리지 클래스 이름을 입력합니다. 최상의 성능을 위해서는 블록 스토리지를 할당하는 스토리지 클래스를 지정합니다. 스토리지 클래스를 지정하지 않으면 OpenShift Logging은 임시 스토리지를 사용합니다.
    7
    필요에 따라 Elasticsearch에 대한 CPU 및 메모리 요청을 지정합니다. 이 값을 비워 두면 OpenShift Elasticsearch Operator가 대부분의 배포에 충분한 기본값으로 설정합니다. 기본값은 메모리 요청 시 16Gi이고 CPU 요청 시 1입니다.
    8
    필요에 따라 Elasticsearch 프록시에 대한 CPU 및 메모리 요청을 지정합니다. 이 값을 비워 두면 OpenShift Elasticsearch Operator가 대부분의 배포에 충분한 기본값으로 설정합니다. 기본값은 메모리 요청 시 256Mi이고 CPU 요청 시 100m입니다.
    9
    Kibana 구성을 위한 설정입니다. CR을 사용하여 중복성을 위해 Kibana를 확장하고 Kibana 노드의 CPU 및 메모리를 구성할 수 있습니다.
    10
    Fluentd 구성을 위한 설정입니다. CR을 사용하여 Fluentd CPU 및 메모리 제한을 구성할 수 있습니다.
    참고

    마스터 노드의 최대 수는 3입니다. 3보다 큰 nodeCount를 지정하면 OpenShift Container Platform은 마스터, 클라이언트 및 데이터 역할을 가진 마스터 적격 노드인 Elasticsearch 노드 3개를 생성합니다. 추가 Elasticsearch 노드는 클라이언트 및 데이터 역할을 사용하여 데이터 전용 노드로 생성됩니다. 마스터 노드는 인덱스 작성 또는 삭제, shard 할당 및 추적 노드와 같은 클러스터 전체 작업을 수행합니다. 데이터 노드는 shard를 보유하고 CRUD, 검색 및 집계와 같은 데이터 관련 작업을 수행합니다. 데이터 관련 작업은 I/O, 메모리 및 CPU 집약적입니다. 현재 노드에 과부하가 걸리면 이러한 리소스를 모니터링하고 더 많은 데이터 노드를 추가하는 것이 중요합니다.

    예를 들어 nodeCount = 4인 경우 다음 노드가 생성됩니다.

    $ oc get deployment

    출력 예

    cluster-logging-operator-66f77ffccb-ppzbg       1/1     Running   0          7m
    elasticsearch-cdm-ftuhduuw-1-ffc4b9566-q6bhp    2/2     Running   0          2m40s
    elasticsearch-cdm-ftuhduuw-2-7b4994dbfc-rd2gc   2/2     Running   0          2m36s
    elasticsearch-cdm-ftuhduuw-3-84b5ff7ff8-gqnm2   2/2     Running   0          2m4s

  15. 다음 명령을 실행하여 ClusterLogging CR을 적용합니다.

    $ oc apply -f <filename>.yaml
  16. 다음 명령을 실행하여 설치를 확인합니다.

    $ oc get pods -n openshift-logging

    출력 예

    NAME                                            READY   STATUS    RESTARTS   AGE
    cluster-logging-operator-66f77ffccb-ppzbg       1/1     Running   0          7m
    elasticsearch-cdm-ftuhduuw-1-ffc4b9566-q6bhp    2/2     Running   0          2m40s
    elasticsearch-cdm-ftuhduuw-2-7b4994dbfc-rd2gc   2/2     Running   0          2m36s
    elasticsearch-cdm-ftuhduuw-3-84b5ff7ff8-gqnm2   2/2     Running   0          2m4s
    collector-587vb                                 1/1     Running   0          2m26s
    collector-7mpb9                                 1/1     Running   0          2m30s
    collector-flm6j                                 1/1     Running   0          2m33s
    collector-gn4rn                                 1/1     Running   0          2m26s
    collector-nlgb6                                 1/1     Running   0          2m30s
    collector-snpkt                                 1/1     Running   0          2m28s
    kibana-d6d5668c5-rppqm                          2/2     Running   0          2m39s

중요

s3 버킷 또는 LokiStack 사용자 정의 리소스(CR)에 정의된 보존 기간이 없으면 로그가 정리되지 않고 s3 스토리지를 채울 수 있습니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동