Apache Kafka용 관리형 서비스는 Kafka 클러스터를 모니터링하는 데 사용할 수 있는 측정항목을 수집합니다. 이 페이지에서는콘솔에서 이러한 측정항목을 보는 방법을 설명합니다. Google Cloud
다음과 같은 방법으로 측정항목을 볼 수 있습니다.
클러스터 세부정보 페이지에는 클러스터, 주제, 소비자 그룹의 모니터링 대시보드가 포함되어 있습니다. 이러한 대시보드에는 클러스터의 전반적인 상태와 성능을 확인할 수 있는 사전 정의된 차트가 포함되어 있습니다.
측정항목 탐색기를 사용하여 사용 가능한 모든 측정항목을 보거나, 커스텀 차트를 만들거나, 여러 클러스터에서 측정항목을 집계할 수 있습니다.
개요
Apache Kafka용 관리형 서비스는 오픈소스 Kafka 배포에서 사용할 수 있는 여러 측정항목과 소비자 그룹 오프셋 지연과 같은 서비스별 측정항목을 내보냅니다. 모니터링을 위해 Apache Kafka용 관리형 서비스는 서비스 URL managedkafka.googleapis.com으로 식별됩니다.
측정항목은 다음 네 가지 리소스 카테고리로 구성됩니다.
클러스터: 이러한 측정항목은 클러스터의 전반적인 상태를 유지하는 데 유용합니다.
주제: 이러한 측정항목에는 게시자 및 소비자 비율과 오류가 포함됩니다. Kafka 애플리케이션의 전반적인 상태와 브로커와 관련된 문제를 모니터링합니다.
주제 파티션: 이러한 측정항목은 고르지 않은 키 배포와 같은 개별 파티션과 관련된 성능 문제를 모니터링하고 디버깅하기 위한 것입니다.
주제 파티션 소비자 그룹: 이러한 측정항목은 소비자 애플리케이션의 상태(주로 소비자 지연)를 모니터링합니다. 소비자 그룹의 오픈소스 Kafka 오류 측정항목은 파티션별로 제공되지 않고 주제 수준에서만 제공됩니다.
일부 측정항목은 브로커 색인별로 그룹화할 수 있습니다. 브로커 색인을 기반으로 해당 브로커가 프로비저닝된 영역을 조회할 수 있습니다. 자세한 내용은 브로커 보기를 참고하세요.
시작하기 전에
- 계정에 로그인합니다. Google Cloud 를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. Google Cloud신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Managed Kafka API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Managed Kafka API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
필수 역할 및 권한
모니터링 차트를 보는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 관리형 Kafka 뷰어 (roles/managedkafka.Viewer) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참고하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
이 역할에 대한 자세한 내용은 Apache Kafka용 관리형 서비스 사전 정의된 역할을 참고하세요.
모니터링 대시보드 보기
Apache Kafka용 관리형 서비스 클러스터의 모니터링 대시보드를 보려면 다음 단계를 수행하세요.
콘솔에서 클러스터 페이지로 이동합니다. Google Cloud
클러스터 이름을 클릭합니다.
클러스터의 측정항목을 보려면 모니터링 탭을 선택합니다.
클러스터의 주제 측정항목을 보려면 다음 단계를 따르세요.
리소스 탭을 선택합니다.
주제 목록에서 주제 이름을 클릭합니다.
주제 세부정보 페이지에서 모니터링 탭을 선택합니다.
클러스터의 소비자 그룹 측정항목을 보려면 다음 단계를 따르세요.
리소스 탭을 선택합니다.
소비자 그룹 목록에서 소비자 그룹 이름을 클릭합니다.
소비자 그룹 세부정보 페이지에서 모니터링 탭을 선택합니다.
자세한 내용은 Kafka 클러스터 보기를 참고하세요.
측정항목 탐색기에서 측정항목 보기
측정항목 탐색기를 사용하여 Apache Kafka용 관리형 서비스 측정항목을 보려면 다음 단계를 수행하세요.
콘솔에서 측정항목 탐색기 페이지로 이동합니다. Google Cloud
구성 섹션에서 측정항목 선택 을 클릭합니다.
필터에
Apache Kafka를 입력합니다.활성 리소스에서 다음 중 하나를 선택합니다.
Apache Kafka 클러스터
Apache Kafka 주제
Apache Kafka 주제 파티션
Apache Kafka 주제 파티션 소비자 그룹
측정항목을 선택하고 적용 을 클릭합니다.
측정항목 탐색기에 대한 자세한 내용은 측정항목 탐색기로 차트 만들기를 참고하세요.
Apache Kafka용 관리형 서비스 측정항목
다음 표에는 Kafka 클러스터 및 클러스터 리소스를 모니터링하는 데 일반적으로 사용되는 측정항목이 나와 있습니다. 사용 가능한 측정항목의 전체 목록은 Google Cloud 측정항목을 참고하세요.
클러스터 측정항목
다음 측정항목은 클러스터에 적용됩니다. 특정 클러스터의 측정항목을 보려면 cluster_id 라벨로 필터링합니다.
| 측정항목 | 설명 | 상응하는 MBean 이름 |
|---|---|---|
cpu/core_usage_time |
클러스터의 누적 CPU 사용량(vCPU) 이는 클러스터의 전반적인 운영 비용을 파악하는 데 유용할 수 있습니다. | 해당 사항 없음 |
cpu/limit |
클러스터에 구성된 현재 CPU 수입니다.
측정항목과의 비율로 CPU 사용률을 모니터링하는 데 사용할 수 있습니다.cpu/usage |
해당 사항 없음 |
memory/usage |
클러스터의 현재 RAM 사용량입니다.
측정항목과의 비율로 RAM 사용률을 모니터링하는 데 사용할 수 있습니다.memory/limit |
해당 사항 없음 |
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 |
주제 측정항목
다음 측정항목은 주제에 적용됩니다. 특정 주제의 측정항목을 보려면 cluster_id 및 topic_id 라벨로 필터링합니다.
| 측정항목 | 설명 | 상응하는 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]+) |
파티션 측정항목
다음 측정항목은 파티션에 적용됩니다. 주제의 특정 파티션 측정항목을 보려면 cluster_id, topic_id, partition_index 라벨로 필터링합니다.
| 측정항목 | 설명 | 상응하는 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 |
디스크에 있는 파티션의 크기(바이트)입니다. | 해당 사항 없음 |
소비자 그룹 측정항목
다음 측정항목은 소비자 그룹에 적용됩니다. 특정 소비자 그룹의 측정항목을 보려면 consumer_group_id 라벨로 필터링합니다.
| 측정항목 | 설명 | 상응하는 MBean 이름 |
|---|---|---|
offset_lag |
각 파티션의 소비자 그룹에 대한 최신 오프셋과 마지막으로 커밋된 오프셋 간의 차이입니다. 이 측정항목은 소비자가 아직 성공적으로 처리하지 않은 생성된 메시지 수를 추정합니다. | 해당 사항 없음 |