1.6. 로그 수집 및 전달 업그레이드


이제 observability.openshift.io API 그룹의 일부인 새 API 아래에 로그 수집 및 전달 구성이 지정됩니다.

참고

벡터는 지원되는 유일한 수집기 구현입니다.

Red Hat OpenShift Logging Operator를 업그레이드하려면 다음 단계를 따르십시오.

  1. "클러스터 로깅 변경 및 로깅 6에서 전달"에 나열된 변경 사항을 진행하여 로그 수집 및 전달 구성을 업데이트합니다.
  2. Red Hat OpenShift Logging Operator를 업데이트합니다.

1.6.1. 클러스터 로깅 및 로깅 6의 전달 변경

이제 observability.openshift.io API 그룹의 일부인 새 API 아래에 로그 수집 및 전달 구성이 지정됩니다. 다음 섹션에서는 이전 API 리소스의 차이점을 설명합니다.

참고

벡터는 지원되는 유일한 수집기 구현입니다.

1.6.1.1. 관리, 리소스 할당 및 워크로드 스케줄링

관리 상태, 리소스 요청 및 제한, 허용 오차 및 노드 선택에 대한 구성이 이제 새로운 ClusterLogForwarder API의 일부입니다.

로깅 5.x 구성

apiVersion: "logging.openshift.io/v1"
kind: "ClusterLogging"
spec:
  managementState: "Managed"
  collection:
    resources:
      limits: {}
      requests: {}
    nodeSelector: {}
    tolerations: {}
Copy to Clipboard Toggle word wrap

로깅 6 구성

apiVersion: "observability.openshift.io/v1"
kind: ClusterLogForwarder
spec:
  managementState: Managed
  collector:
    resources:
      limits: {}
      requests: {}
    nodeSelector: {}
    tolerations: {}
Copy to Clipboard Toggle word wrap

1.6.1.2. 입력 사양

입력 사양은 ClusterLogForwarder 사양의 선택적 부분입니다. 관리자는 사전 정의된 값 애플리케이션,인프라감사를 계속 사용하여 이러한 소스를 수집할 수 있습니다.

네임스페이스 및 컨테이너 포함 및 제외가 단일 필드에 통합되었습니다.

네임스페이스 및 컨테이너가 포함된 5.x 애플리케이션 입력은 포함 및 제외

apiVersion: "logging.openshift.io/v1"
kind: ClusterLogForwarder
spec:
  inputs:
   - name: application-logs
     type: application
     application:
       namespaces:
       - foo
       - bar
       includes:
       - namespace: my-important
         container: main
       excludes:
       - container: too-verbose
Copy to Clipboard Toggle word wrap

6.x 네임스페이스 및 컨테이너가 포함된 애플리케이션 입력은 포함 및 제외

apiVersion: "observability.openshift.io/v1"
kind: ClusterLogForwarder
spec:
  inputs:
   - name: application-logs
     type: application
     application:
       includes:
       - namespace: foo
       - namespace: bar
       - namespace: my-important
         container: main
       excludes:
       - container: too-verbose
Copy to Clipboard Toggle word wrap

참고

"application", "infrastructure", "audit"는 예약어이며 입력을 정의할 때 이름으로 사용할 수 없습니다.

입력 수신자에 대한 변경 사항은 다음과 같습니다.

  • 수신기 수준에서 유형의 명시적 구성입니다.
  • 포트 설정이 수신자 수준으로 이동했습니다.

5.x 입력 수신자

apiVersion: "logging.openshift.io/v1"
kind: ClusterLogForwarder
spec:
  inputs:
  - name: an-http
    receiver:
      http:
        port: 8443
        format: kubeAPIAudit
  - name: a-syslog
    receiver:
      type: syslog
      syslog:
        port: 9442
Copy to Clipboard Toggle word wrap

6.x 입력 수신자

apiVersion: "observability.openshift.io/v1"
kind: ClusterLogForwarder
spec:
  inputs:
  - name: an-http
    type: receiver
    receiver:
      type: http
      port: 8443
      http:
        format: kubeAPIAudit
  - name: a-syslog
    type: receiver
    receiver:
      type: syslog
      port: 9442
Copy to Clipboard Toggle word wrap

1.6.1.3. 출력 사양

출력 사양에 대한 높은 수준의 변경 사항은 다음과 같습니다.

  • URL 설정은 각 출력 유형 사양으로 이동했습니다.
  • 튜닝 매개변수는 각 출력 유형 사양으로 이동했습니다.
  • TLS 구성을 인증과 분리합니다.
  • TLS 및 인증을 위한 키 및 시크릿/구성 맵의 명시적 구성입니다.

1.6.1.4. 보안 및 TLS 구성

보안 및 TLS 구성은 각 출력에 대한 인증 및 TLS 구성으로 구분됩니다. 관리자가 인식된 키로 시크릿을 정의하는 대신 사양에 명시적으로 정의해야 합니다. TLS 및 권한 부여 구성을 업그레이드하려면 관리자가 기존 보안을 계속 사용하려면 이전에 인식된 키를 이해해야 합니다. 이 섹션의 예제에서는 기존 Red Hat 관리 로그 스토리지 솔루션으로 전달하도록 ClusterLogForwarder 시크릿을 구성하는 방법을 설명합니다.

서비스 계정 토큰 및 구성 맵을 사용하여 6.x 출력 구성 기록

...
spec:
  outputs:
  - lokiStack
      authentication:
        token:
          from: serviceAccount
      target:
        name: logging-loki
        namespace: openshift-logging
    name: my-lokistack
    tls:
      ca:
        configMapName: openshift-service-ca.crt
        key: service-ca.crt
    type: lokiStack
...
Copy to Clipboard Toggle word wrap

시크릿을 사용하여 로깅 6.x 출력 인증 및 TLS 구성

...
spec:
  outputs:
  - name: my-output
    type: http
    http:
      url: https://my-secure-output:8080
    authentication:
      password:
        key: pass
        secretName: my-secret
      username:
        key: user
        secretName: my-secret
    tls:
      ca:
        key: ca-bundle.crt
        secretName: collector
      certificate:
        key: tls.crt
        secretName: collector
      key:
        key: tls.key
        secretName: collector
...
Copy to Clipboard Toggle word wrap

1.6.1.5. 필터 및 파이프라인 구성

이전 릴리스의 파이프라인의 모든 속성이 이 릴리스의 필터로 변환되었습니다. 개별 필터는 필터 사양에 정의되어 파이프라인에서 참조합니다.

5.x 필터

...
spec:
  pipelines:
  - name: app-logs
    detectMultilineErrors: true
    parse: json
    labels:
      <key>: <value>
...
Copy to Clipboard Toggle word wrap

6.x 필터 및 파이프라인 사양

...
spec:
  filters:
  - name: my-multiline
    type: detectMultilineException
  - name: my-parse
    type: parse
  - name: my-labels
    type: openshiftLabels
    openshiftLabels:
      <key>: <label>
  pipelines:
  - name: app-logs
    filterRefs:
    - my-multiline
    - my-parse
    - my-labels
...
Copy to Clipboard Toggle word wrap

참고

drop,Prune, KubeAPIAudit 필터는 변경되지 않습니다.

1.6.1.6. 검증 및 상태

이제 즉각적인 피드백을 제공하는 리소스가 생성 또는 업데이트되면 대부분의 검증이 적용됩니다. 이는 리소스 상태 위치를 검사해야 하는 모든 유효성 검사가 발생한 이전 릴리스의 전환입니다. 일부 검증은 생성 또는 업데이트 시 수행할 수 없는 경우 post resource creation이 계속 발생합니다.

Operator가 로그 수집기를 배포하기 전에 ClusterLogForwarder.observability.openshift.io 리소스의 인스턴스는 다음 조건을 충족해야 합니다.

  • 리소스 상태 조건: Authorized, Valid, Ready
  • 사양 검증: 필터, 입력, 출력, 파이프라인

모두 status 값 True 여야 합니다.

1.6.2. Red Hat OpenShift Logging Operator 업데이트

Red Hat OpenShift Logging Operator는 로깅을 구성할 수 있는 다양한 조합으로 인해 Logging 5.x에서 Logging 6.x로 자동 업그레이드를 제공하지 않습니다. 로깅을 별도로 관리하려면 모든 다양한 Operator를 설치해야 합니다.

OpenShift Container Platform 웹 콘솔에서 서브스크립션 채널을 변경하거나 설치 제거하여 Red Hat OpenShift Logging Operator를 업데이트할 수 있습니다. 다음 절차에서는 OpenShift Container Platform 웹 콘솔에서 서브스크립션 채널을 변경하여 Red Hat OpenShift Logging Operator를 업데이트하는 방법을 보여줍니다.

중요

마이그레이션할 때 압축되지 않은 모든 로그는 Vector에 의해 다시 처리됩니다. 재처리로 인해 다음과 같은 문제가 발생할 수 있습니다.

  • 마이그레이션 중에 중복된 로그입니다.
  • 로그를 수신하는 로그 스토리지의 요청 또는 속도 제한에 도달하는 요청이 너무 많습니다.
  • 수집기의 모든 이전 로그를 읽고 처리하므로 디스크 및 성능에 미치는 영향은 다음과 같습니다.
  • Kube API에 미치는 영향
  • 이전 로그가 모두 처리될 때까지 벡터에서 사용하는 메모리 및 CPU의 최대 순입니다. 로그는 노드당 여러GB일 수 있습니다.

사전 요구 사항

  • observability.openshift.io API로 로그 컬렉션 및 전달 구성을 업데이트했습니다.
  • 관리자 권한이 있습니다.
  • OpenShift Container Platform 웹 콘솔에 액세스하고 관리자 화면을 보고 있습니다.

프로세스

  1. 다음 명령을 실행하여 서비스 계정을 생성합니다.

    참고

    이전 로그 전달자가 네임스페이스 openshift-logging 및 named 인스턴스에 배포된 경우 이전 버전의 Operator에서 logcollector 서비스 계정을 생성했습니다. 이 서비스 계정은 클러스터 로깅을 삭제할 때 제거됩니다. 따라서 새 서비스 계정을 생성해야 합니다. 다른 서비스 계정은 보존되며 로깅 6.x에서 사용할 수 있습니다.

    $ oc create sa logging-collector -n openshift-logging
    Copy to Clipboard Toggle word wrap
  2. 서비스 계정에 필요한 RBAC 권한을 제공합니다.

    1. Red Hat LokiStack에 로그를 작성할 수 있도록 ClusterRole 역할을 서비스 계정에 바인딩

      $ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z logging-collector -n openshift-logging
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 애플리케이션 로그를 수집하고 전달할 수 있는 권한을 할당합니다.

      $ oc adm policy add-cluster-role-to-user collect-application-logs -z logging-collector -n openshift-logging
      Copy to Clipboard Toggle word wrap
    3. 다음 명령을 실행하여 감사 로그를 수집하고 전달할 수 있는 권한을 할당합니다.

      $ oc adm policy add-cluster-role-to-user collect-audit-logs -z logging-collector -n openshift-logging
      Copy to Clipboard Toggle word wrap
    4. 다음 명령을 실행하여 인프라 로그를 수집하고 전달할 수 있는 권한을 할당합니다.

       $ oc adm policy add-cluster-role-to-user collect-infrastructure-log -z logging-collector -n openshift-logging
      Copy to Clipboard Toggle word wrap
  3. Vector 체크포인트를 새 경로로 이동합니다.

    로깅 v5의 벡터 체크포인트는 /var/lib/vector/input*/checkpoints.json 경로에 있습니다. 이러한 체크포인트를 /var/lib/vector/<namespace>/<clusterlogforwarder cr name>/* 경로로 이동합니다. 다음 예제에서는 openshift-logging 을 네임스페이스로 사용하고 수집기 를 ClusterForwarder 사용자 정의 리소스 이름으로 사용합니다.

    $ ns="openshift-logging"
    $ cr="collector"
    $ for node in $(oc get nodes -o name); do oc debug $node -- chroot /host /bin/bash -c "mkdir -p /var/lib/vector/$ns/$cr" ; done
    $ for node in $(oc get nodes -o name); do oc debug $node -- chroot /host /bin/bash -c "chmod -R 755 /var/lib/vector/$ns" ; done
    $ for node in $(oc get nodes -o name); do echo "### $node ###"; oc debug $node -- chroot /host /bin/bash -c "cp -Ra /var/lib/vector/input* /var/lib/vector/$ns/$cr/"; done
    Copy to Clipboard Toggle word wrap
  4. OpenShift Container Platform 웹 콘솔을 사용하여 Red Hat OpenShift Logging Operator를 업데이트합니다.

    1. Operators 설치된 Operator로 이동합니다.
    2. openshift-logging 프로젝트를 선택합니다.
    3. Red Hat OpenShift Logging Operator를 클릭합니다.
    4. 서브스크립션 을 클릭합니다. 서브스크립션 세부 정보 섹션에서 채널 업데이트 링크를 클릭합니다.
    5. 서브스크립션 업데이트 채널 변경 창에서 업데이트 채널, stable-6.x 를 선택하고 저장을 클릭합니다. cluster-logging.v6.y.z 버전을 확인합니다.

      중요

      N+2 버전으로만 업데이트합니다. 여기서 N은 현재 버전입니다. 예를 들어 로깅 5.8에서 업그레이드하는 경우 업데이트 채널로 stable-6.0 을 선택합니다. 두 개 이상의 최신 버전으로 업데이트하는 것은 지원되지 않습니다.

    6. 몇 초 동안 기다린 다음 Operator 설치된 Operator 로 이동하여 Red Hat OpenShift Logging Operator 버전이 최신 cluster-logging.v6.y.z 버전과 일치하는지 확인합니다.
    7. Operator 설치된 Operator 페이지에서 Status 필드가 성공으로 표시될 때까지 기다립니다.

      기존 Logging v5 리소스는 계속 실행되지만 Operator가 더 이상 관리하지 않습니다. 이러한 관리되지 않는 리소스는 새 리소스를 생성할 준비가 되면 제거할 수 있습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat