Apache Kafka용 Google Cloud 관리형 서비스 클러스터 모니터링

Google Cloud 콘솔 또는 Cloud Monitoring API를 사용하여 Apache Kafka용 관리형 서비스를 모니터링할 수 있습니다.

이 섹션에서는 Apache Kafka용 관리형 서비스를 모니터링하는 데 사용할 수 있는 모니터링 측정항목을 간략하게 설명합니다. 이 문서에서는 Monitoring을 사용하여 Google Cloud 콘솔에서 Apache Kafka용 관리형 서비스 사용량을 모니터링하는 방법도 보여줍니다.

  • Apache Kafka용 관리형 서비스의 전체 측정항목 외에 다른 Google Cloud 리소스의 측정항목을 보려면 Monitoring을 사용하세요.

  • 또는 Apache Kafka용 관리형 서비스 내에서 제공되는 측정항목을 선택하여 모니터링 대시보드를 사용할 수 있습니다. 자세한 내용은 다음 주제를 참조하세요.

Apache Kafka용 관리형 서비스 측정항목 개요

Apache Kafka용 관리형 서비스는 오픈소스 Kafka 배포에서 사용할 수 있는 여러 측정항목과 소비자 그룹 오프셋 지연과 같은 서비스별 측정항목을 내보냅니다. 모니터링의 경우 Apache Kafka용 관리형 서비스는 서비스 URL managedkafka.googleapis.com로 식별됩니다.

Managed Service for Apache Kafka 측정항목은 다음 네 가지 리소스 카테고리로 구성됩니다.

  • 클러스터: 이러한 측정항목은 전반적인 클러스터 상태를 유지하기 위한 것입니다.

  • 주제: 이러한 측정항목에는 게시자 및 소비자 비율과 오류가 포함됩니다. 이러한 측정항목은 Kafka 애플리케이션의 전반적인 상태와 브로커와 관련된 문제를 모니터링합니다.

  • 주제 파티션: 이러한 측정항목은 개별 파티션과 관련된 성능 문제를 모니터링하고 디버깅하기 위한 것입니다. 예를 들어 키 분포가 고르지 않은 경우입니다.

  • 주제 파티션 소비자 그룹: 이러한 측정항목은 주로 소비자 지연 시간과 같은 소비자 애플리케이션 상태를 모니터링합니다. 소비자 그룹의 오픈소스 Kafka 오류 측정항목은 파티션별로 제공되지 않고 주제 수준에서만 제공됩니다.

일부 측정항목은 브로커별로 그룹화할 수 있습니다. Managed Service for Apache Kafka 서비스 자체는 브로커를 리소스로 노출하지 않지만, 브로커를 모니터링하는 것은 과부하된 브로커로 인한 지연 시간과 같은 장애 시나리오를 감지하는 데 필수적입니다.

측정항목의 이름은 서비스 API URL, 모니터링 리소스, 측정항목을 포함하는 규칙을 따릅니다. 예를 들어 주제 message_in_count 측정항목 식별자는 managedkafka.googleapis.com/Topic/message_in_count입니다.

이러한 측정항목에 액세스하려면 단일 Apache Kafka용 관리형 서비스 측정항목 보기를 참고하세요.

시작하기 전에

Monitoring을 사용하기 전에 결제가 사용 설정된 Apache Kafka용 관리형 서비스 프로젝트를 준비해야 합니다. 이를 수행하는 한 가지 방법은 Apache Kafka용 관리형 서비스 빠른 시작을 완료하는 것입니다.

필수 역할 및 권한

모니터링 차트를 보는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 관리형 Kafka 뷰어 (roles/managedkafka.Viewer) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

이 역할에 대한 자세한 내용은 Apache Kafka용 관리형 서비스 사전 정의된 역할을 참고하세요.

단일 Apache Kafka용 관리형 서비스 측정항목 보기

Google Cloud 콘솔을 사용하여 단일 Apache Kafka용 관리형 서비스 측정항목을 보려면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서 Monitoring 페이지로 이동합니다.

    Monitoring으로 이동

  2. 탐색 창에서 측정항목 탐색기를 선택합니다.

  3. 구성 섹션에서 측정항목 선택을 클릭합니다.

  4. 필터에 Apache Kafka를 입력합니다.

  5. 활성 리소스에서 다음 중 하나를 선택합니다.

    • Apache Kafka 클러스터

    • Apache Kafka 주제

    • Apache Kafka 주제 파티션

    • Apache Kafka 주제 파티션 소비자 그룹

  6. 측정항목을 선택하고 적용을 클릭합니다.

    특정 측정항목의 페이지가 열립니다.

Cloud Monitoring 문서를 읽고 모니터링 대시보드에 대해 자세히 알아볼 수 있습니다.

클러스터 측정항목

측정항목 설명 상응하는 MBean 이름
cpu/core_usage_time 클러스터의 누적 CPU 사용량(vCPU)입니다. 이는 클러스터의 전체 운영 비용을 이해하는 데 유용합니다. 해당 사항 없음
cpu/limit 클러스터에 구성된 현재 CPU 수입니다. cpu/usage 측정항목과의 비율로 CPU 사용률을 모니터링하는 데 사용할 수 있습니다. 해당 사항 없음
memory/usage 클러스터의 현재 RAM 사용량입니다. memory/limit 측정항목과의 비율로 RAM 사용률을 모니터링하는 데 사용할 수 있습니다. 해당 사항 없음
memory/limit 현재 구성된 클러스터의 RAM 크기입니다. memory/usage 측정항목과의 비율로 RAM 사용률을 모니터링하는 데 사용할 수 있습니다. 해당 사항 없음
cluster_byte_in_count 클라이언트에서 모든 주제로 전송된 총 바이트 수입니다. kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec
cluster_byte_out_count 모든 주제에서 클라이언트로 전송된 총 바이트 수입니다. kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec
cluster_message_in_count 모든 주제에 게시된 메시지의 총 개수입니다. kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
request_count 브로커에 수행된 총 요청 수 kafka.network:type=RequestMetrics,name=RequestsPerSec,request= {Produce|FetchConsumer|FetchFollower},version=([0-9]+)
request_byte_count 클러스터에 수행된 요청의 총 크기(바이트)입니다. kafka.network:type=RequestMetrics,name=RequestBytes,request= ([-.\w]+)
partitions 이 클러스터에서 처리하는 현재 파티션 수로, 브로커별로 분류됩니다. kafka.server:type=ReplicaManager,name=PartitionCount
request_latencies 다양한 백분위수에서 각 요청에 걸린 시간(밀리초)입니다. kafka.network:type=RequestMetrics,name=TotalTimeMs,request= {Produce|FetchConsumer|FetchFollower}
consumer_groups 브로커에서 현재 데이터를 소비 중인 소비자 그룹의 개수 kafka.server:type=GroupMetadataManager,name=NumGroups
offline_partitions 컨트롤러에서 모니터링된 오프라인 주제 파티션 수입니다. kafka.controller:type=KafkaController,name=OfflinePartitionCount

주제 측정항목

측정항목 설명 상응하는 MBean 이름
message_in_count 주제에 게시된 메시지의 총수입니다. kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec, topic=([-.\w]+)
byte_in_count 클라이언트에서 토픽으로 전송된 총 바이트 수입니다. kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec,topic=([-.\w]+)
topic_request_count 토픽에 수행된 총 생성 및 가져오기 요청 수입니다. kafka.server:type=BrokerTopicMetrics,name=TotalProduceRequestsPerSec,topic=([-.\w]+)
kafka.server:type=BrokerTopicMetrics,name=TotalFetchRequestsPerSec,topic=([-.\w]+)
topic_error_count 토픽에 수행된 실패한 생성 및 실패한 가져오기 요청의 총수입니다. kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,topic=([-.\w]+)
kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec,topic=([-.\w]+)
byte_out_count 클라이언트로 전송된 총 바이트 수입니다. kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec, topic=([-.\w]+)

파티션 측정항목

측정항목 설명 상응하는 MBean 이름
consumer_lag 리더와 각 팔로어 복제본 간의 메시지 복제 지연입니다. kafka.server:type=FetcherLagMetrics,name=ConsumerLag,clientId=([-.\w]+),topic=([-.\w]+),partition=([0-9]+)
log_segments 현재 로그 세그먼트 수입니다. 이는 스토리지 티어링이 정상적으로 유지되도록 하는 데 유용합니다. kafka.log:type=Log,name=NumLogSegments,topic=([-.\w]+),partition=([0-9]+)
first_offset 주제의 각 파티션의 첫 번째 오프셋입니다. last_offset와 함께 사용하면 저장된 총 메시지 수의 상한을 모니터링하고 가장 오래된 메시지의 실제 오프셋을 찾는 데 사용할 수 있습니다. kafka.log:type=Log,name=LogStartOffset,topic=([-.\w]+),partition=([0-9]+)
last_offset 파티션의 마지막 오프셋입니다. 이는 시간 경과에 따른 각 파티션의 최신 오프셋을 찾는 데 사용할 수 있습니다. 이는 과거의 특정 시점부터 데이터를 다시 처리하는 데 필요한 특정 오프셋을 식별하는 데 유용할 수 있습니다. kafka.log:type=Log,name=LogEndOffset,topic=([-.\w]+),partition=([0-9]+)
byte_size 디스크에 있는 파티션의 크기(바이트)입니다. -

소비자 그룹 측정항목

측정항목 설명 상응하는 MBean 이름
Offset_lag 각 파티션의 소비자 그룹에 대한 최신 오프셋과 마지막 커밋된 오프셋의 차이입니다. 이 측정항목은 소비자가 아직 성공적으로 처리하지 않은 생성된 메시지 수를 추정합니다. 해당 사항 없음

다음 단계