본문으로 건너뛰기

Log Lifecycle

Cloud ZCP는 애플리케이션과 플랫폼 자체를 모니터링하고 관리하기 위한 포괄적인 로깅 기능을 제공합니다. 로깅 시스템은 OpenSearch 스택(OpenSearch, Fluentd, OpenSearch DashBoards)을 기반으로 합니다. 로그 라이프사이클을 이해하는 것은 로그가 수집되고, 처리되고, 저장되고, 쿼리되고, 시간이 지남에 따라 관리되는 방식을 포함합니다.

플랫폼은 Application LogsAudit Logs를 포함한 여러 유형의 로그를 관리합니다.

로그 수집

Cloud ZCP에서의 로그 수집은 플랫폼 전반에 걸쳐 다양한 소스에서 로그를 수집하는 것을 포함합니다:

  • Application Logs: Fluent-bit 구성 요소는 실행 중인 컨테이너에서 로그를 수집하기 위해 데이터 플레인 클러스터의 각 노드에 데몬셋으로 설치됩니다. Fluent-bit은 사용자 애플리케이션 컨테이너와 각 노드에서 실행 중인 모든 시스템 구성 요소의 로그를 수집합니다.
  • Audit Logs: 감사 로그는 콘솔, 쿠버네티스 및 키클락의 세 가지 유형의 로그를 관리합니다. 이러한 로그를 수집하기 위한 설정을 구성할 수 있습니다. 쿠버네티스 로그의 경우 관리 클러스터를 선택하고 각 클러스터에 대해 개별적으로 설정을 구성해야 합니다.

로그 처리

수집된 로그는 저장 전에 처리를 거칩니다:

  • Data Plane Processing: FluentD는 데이터 플레인 클러스터에 설치되어 수집된 로그를 컨트롤 플레인 클러스터로 처리하고 전송합니다. 이 FluentD는 초기 처리를 수행합니다.
  • Control Plane Processing: 컨트롤 플레인 클러스터에 추가 FluentD가 배포되어 데이터 플레인 클러스터와 컨트롤 플레인 클러스터 간의 로그 파이프라인을 구성합니다. 이 FluentD는 데이터 플레인의 FluentD에서 전달된 로그의 2차 처리를 수행한 후 Opensearch에 저장됩니다.
  • Integrated Management: OpenSearch는 컨테이너 관리 서비스에 등록된 모든 데이터 플레인 클러스터의 로그를 통합적으로 관리하는 데 적용됩니다.

로그 저장

처리된 로그는 저장 및 관리를 위해 중앙 집중화됩니다:

  • Centralized Storage: 모든 로그는 컨트롤 플레인 클러스터의 Opensearch 중앙 저장소에 저장됩니다.
  • Deployment: Opensearch는 컨트롤 플레인 클러스터 내에서 로깅 전용으로 세 개의 worker nodes에 배포되어 고가용성을 제공합니다.
  • Integrated Management: OpenSearch는 컨테이너 관리 서비스에 등록된 모든 데이터 플레인 클러스터의 로그를 통합적으로 관리하는 데 적용됩니다.
  • Indexing Strategy: 로그 저장 인덱스는 created per project입니다. 데이터 플레인의 Fluent-bit에서 전송된 로그는 형식 [Realm].[Project-Name].[Cluster-Name]-%Y.%m.%d로 인덱싱됩니다. 이 인덱싱 형식은 각 프로젝트의 로그를 별도의 인덱스에 격리하고 저장할 수 있도록 지원하며, 다중 프로젝트 로그 데이터에 대한 보안 기능을 지원합니다.

로그 조회 및 시각화

저장된 로그에 접근하고 분석하는 것은 주로 OpenSearch Dashboards를 통해 이루어지며, 이는 ZCP 콘솔의 Logging 메뉴를 통해 접근할 수 있습니다.

  • Discover: 이는 로그를 쿼리하고 보는 주요 화면입니다. 검색어 또는 필터를 사용하여 지정된 시간 범위 내에서 로그를 좁힐 수 있습니다.
  • Dashboard: 여러 시각화 및 정보 패널을 동시에 볼 수 있습니다.
  • Visualize: 로그 데이터에서 다양한 시각화(차트, 테이블, 메트릭 등)를 생성할 수 있습니다.
  • Dev Tools: OpenSearch Rest API를 호출할 수 있는 인터페이스를 제공합니다.
  • Audit Log Viewing: 수집된 감사 로그를 볼 수 있습니다. 이러한 로그는 이벤트 소스(콘솔, 키클락, 쿠버네티스) 및 날짜 범위로 필터링할 수 있습니다. 개별 항목에 대해 수집 중에 활성화된 경우 페이로드 정보가 포함된 자세한 감사 로그를 볼 수 있습니다.

로그 관리 및 보관

로그 데이터의 양과 보존을 관리하는 것은 매우 중요합니다.

인덱스 관리

OpenSearch Dashboards는 인덱스를 관리하기 위한 메뉴가 포함된 Index Management 화면을 제공합니다. 인덱스를 관리하는 정책(Index Policies)을 생성, 수정 및 삭제할 수 있습니다. 저장된 인덱스를 보고 정책을 적용할 수도 있습니다.

Stack 관리

Stack Management: Stack Management 화면에는 OpenSearch Dashboard의 설정을 관리하기 위한 메뉴가 포함되어 있으며, Index Patterns도 포함됩니다.

인덱스 패턴은 OpenSearch Dashboards에서 검색할 대상 인덱스를 지정합니다. 로그 인덱스 형식 [Realm].[Project-Name].[Cluster-Name]-%Y.%m.%d에 따라 인덱스 패턴을 생성할 수 있습니다.

감사 로그 보관 정책

보존 정책은 상태 관리 정책에서 생성됩니다. 오직 관리자만 OpenSearch Dashboards에서 이를 보고 관리할 수 있습니다.

시스템은 두 가지 상태를 정의합니다: hotdelete. 인덱스는 10일 동안 hot 상태에 유지되며, 이후 delete 상태로 전환되어 삭제 작업이 트리거됩니다.

보안 및 권한

OpenSearch는 로그 관리 및 보안을 위한 역할 및 권한 관리를 지원합니다. OpenSearch Dashboard 보안 메뉴를 통해 인증, 접근 제어, 역할, 사용자, 권한 및 테넌트를 설정하여 다중 클러스터에서 로그 데이터를 관리하고 승인할 수 있습니다. 프로젝트 단위로 분류된 테넌트는 로그 데이터 및 저장된 객체에 대한 안전한 접근을 공유하는 데 중요합니다.