22장. AMQ Streams에 대한 메트릭 및 대시보드 설정
메트릭을 수집하는 것은 Kafka 배포의 상태 및 성능을 이해하는 데 중요합니다. 메트릭을 모니터링하면 중요 상태가 되기 전에 문제를 적극적으로 식별하고 리소스 할당 및 용량 계획에 대한 정보에 입각한 결정을 내릴 수 있습니다. 메트릭이 없으면 Kafka 배포의 동작에 대한 가시성이 제한되어 문제 해결을 더 어렵고 시간이 많이 소요될 수 있습니다. 메트릭을 설정하면 장기적으로 시간과 리소스를 절약할 수 있으며 Kafka 배포의 안정성을 보장하는 데 도움이 됩니다.
지표는 AMQ Streams의 각 구성 요소에 사용할 수 있으므로 개별 성능에 대한 중요한 통찰력을 제공합니다. 다른 구성 요소에는 메트릭 노출을 노출하기 위한 구성이 필요하지만 AMQ Streams Operator는 기본적으로 Prometheus 지표를 자동으로 노출합니다. 이러한 메트릭에는 다음이 포함됩니다.
- 조정 수
- 처리 중인 사용자 정의 리소스 수
- 조정 기간
- JVM 지표
Kafka 리소스의 리스너 또는 권한 부여 구성에서 enableMetrics 속성을 활성화하여 oauth 인증 및 opa 또는 keycloak 권한과 관련된 메트릭을 수집할 수도 있습니다. 마찬가지로 KafkaBridge,KafkaConnect, KafkaMirrorMaker , 와 같은 사용자 정의 리소스에서 KafkaMirrorMaker 2oauth 인증에 대한 메트릭을 활성화할 수 있습니다.
AMQ Streams Console은 Kafka 클러스터에서 메트릭을 모니터링하기 위한 사용자 인터페이스를 제공합니다. AMQ Streams에서 관리하는 Kafka 클러스터를 AMQ Streams Console에 연결하면 브로커, 주제, 파티션 및 소비자 그룹과 같은 구성 요소에 대한 자세한 정보에 액세스할 수 있습니다.
AMQ Streams Console은 현재 기술 프리뷰로 사용할 수 있습니다.
Prometheus 및 Grafana를 사용하여 AMQ Streams를 모니터링할 수도 있습니다. Prometheus 규칙으로 구성된 경우 Prometheus는 클러스터에서 실행 중인 Pod의 지표를 사용합니다. Grafana는 대시보드에 이러한 메트릭을 시각화하여 모니터링을 위한 직관적인 인터페이스를 제공합니다.
지표 통합을 용이하게 하기 위해 AMQ Streams는 AMQ Streams 구성 요소에 대한 Prometheus 규칙 및 Grafana 대시보드를 제공합니다. 특정 배포 요구 사항에 맞게 Grafana 대시보드를 사용자 지정할 수 있습니다. 규칙을 사용하여 특정 메트릭을 기반으로 경고를 트리거하는 조건을 정의할 수 있습니다.
모니터링 요구 사항에 따라 다음을 수행할 수 있습니다.
또한 분산 추적을 설정하거나 진단 도구 (report.sh)를 사용하여 문제 해결 데이터를 검색하여 메시지를 엔드 투 엔드로 추적 하도록 배포를 구성할 수 있습니다.
AMQ Streams는 AMQ Streams 배포를 모니터링하는 시작점 역할을 할 수 있는 Prometheus 및 Grafana의 설치 파일 예제를 제공합니다. 추가 지원을 받으려면 Prometheus 및 Grafana 개발자 커뮤니티에 참여하십시오.
메트릭 및 모니터링 툴에 대한 지원 문서
메트릭 및 모니터링 툴에 대한 자세한 내용은 지원 문서를 참조하십시오.
- Prometheus
- Prometheus 구성
- Kafka Exporter
- Grafana Labs
- Apache Kafka Monitoring 은 Apache Kafka에서 노출하는 Cryostat 메트릭에 대해 설명합니다.
- Zookeeper Cryostat는 Apache Zoo Cryostat에서 노출하는 Cryostat 메트릭을 설명합니다.
22.1. Kafka 내보내기를 사용하여 소비자 지연 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
Kafka Exporter 는 Apache Kafka 브로커 및 클라이언트의 모니터링을 개선하는 오픈 소스 프로젝트입니다. Kafka 클러스터와 함께 Kafka Exporter를 배포하도록 Kafka 리소스를 구성할 수 있습니다. Kafka Exporter는 오프셋, 소비자 그룹, 소비자 지연 및 주제와 관련된 Kafka 브로커에서 추가 지표 데이터를 추출합니다. 예를 들어 지표 데이터는 느린 소비자를 식별하는 데 사용됩니다. 지연 데이터는 Prometheus 지표로 노출되며 분석을 위해 Grafana에 표시될 수 있습니다.
Kafka Exporter는 소비자 그룹의 커밋된 오프셋에 대한 정보를 저장하는 __consumer_offsets 항목에서 읽습니다. Kafka Exporter가 제대로 작동하려면 소비자 그룹이 사용 중이어야 합니다.
Kafka Exporter용 Grafana 대시보드는 AMQ Streams에서 제공하는 많은 example Grafana 대시보드 중 하나입니다.
Kafka 내보내기는 소비자 지연 및 소비자 오프셋과 관련된 추가 지표만 제공합니다. 일반 Kafka 메트릭의 경우 Kafka 브로커 에서 Prometheus 지표를 구성해야 합니다.
소비자 지연은 메시지의 프로덕션 속도와 사용 속도의 차이를 나타냅니다. 특히 지정된 소비자 그룹의 소비자 지연은 파티션의 마지막 메시지와 해당 소비자가 현재 선택 중인 메시지 사이의 지연을 나타냅니다.
지연은 파티션 로그의 끝과 관련하여 소비자 오프셋의 위치를 반영합니다.
생산자와 소비자 오프셋 간의 소비자 지연
이러한 차이점은 생산자 오프셋과 소비자 오프셋 간의 delta: Kafka 브로커 주제 파티션의 읽기 및 쓰기 위치라고도 합니다.
주제가 1초에 100개의 메시지를 스트리밍한다고 가정합니다. 생산자 오프셋(주파 파티션 헤드)과 소비자가 읽은 마지막 오프셋은 10초 지연을 의미합니다.
소비자 지연 모니터링의 중요성
실시간 데이터의 처리에 의존하는 애플리케이션의 경우 소비자 지연을 모니터링하는 것이 너무 크지 않은지 확인하는 것이 중요합니다. 지연이 많을수록 프로세스가 실시간 처리 목표에서 이동합니다.
예를 들어 소비자 지연은 제거되지 않았거나 계획되지 않은 종료를 통해 오래된 데이터를 너무 많이 소비한 결과일 수 있습니다.
소비자 지연 감소
Grafana 차트를 사용하여 지연을 분석하고 지연을 줄이는 작업이 영향을 받는 소비자 그룹에 영향을 미치는지 확인합니다. 예를 들어 Kafka 브로커가 지연을 줄이기 위해 조정되면 대시보드에는 소비자 그룹 차트가 중단되고 분별 메시지 차트가 가동되는 메시지가 표시됩니다.
지연을 줄이기 위한 일반적인 작업은 다음과 같습니다.
- 새 소비자를 추가하여 소비자 그룹 확장
- 메시지가 주제에 남아 있도록 보존 시간 늘리기
- 메시지 버퍼를 늘리기 위해 디스크 용량을 더 추가
소비자 지연을 줄이기 위한 작업은 기본 인프라에 따라 달라지며 AMQ Streams가 지원하는 사용 사례입니다. 예를 들어, 지연된 소비자는 브로커에서 디스크 캐시의 가져오기 요청을 서비스할 수 있는 이점이 줄어듭니다. 또한 특정 경우에는 소비자가 catch될 때까지 메시지를 자동으로 삭제하는 것이 허용될 수 있습니다.