autodiscover_strategy 이 zookeeper 로 설정된 경우 Zookeeper 인증 메커니즘을 사용하여 Zookeeper 프로토콜을 통해 zookeeper_hosts 에 나열된 호스트.
autodiscover_strategy 이 bootstrap 로 설정된 경우 Kafka 브로커의 인증/전송 메커니즘을 사용하여 Kafka 프로토콜을 통해 bootstrap_broker_host 에 정의된 호스트
Kafka 브로커의 인증/전송 메커니즘을 사용하는 Kafka 프로토콜 및 포트를 통한 클러스터의 모든 브로커.
브로커의 JMX 구성에 지정된 인증/전송 메커니즘을 사용하는 JMX 프로토콜 및 포트를 통한 클러스터의 모든 브로커.
생산자/소비자 모니터링을 원하는 경우 JMX 프로토콜 및 포트를 통해 생산자 및 소비자에 지정된 모든 생산자/소비자. 소비자에 대한 JMX 설정은 브로커에 대한 설정과 동일해야 합니다.
중요
기본적으로 AWS의 다른 클라우드 공급자에 있는 보안 그룹 및 이에 상응하는 항목에는 기본적으로 필요한 포트가 열려 있지 않습니다. JMX가 작동하려면 JMX 포트와 RMI 포트라는 두 개의 포트가 필요합니다. JMX를 사용하도록 JVM을 구성할 때 동일한 값으로 설정할 수 있으며 브로커에 연결하고 브로커에서 메트릭을 수집할 수 있도록 통합을 위해 열려 있어야 합니다.
설치 준비
Kafka는 분산 시스템으로 구축된 복잡한 소프트웨어입니다. 이러한 이유로 데이터가 올바르게 수집되도록 통합에서 필요한 모든 호스트 및 서비스에 연결할 수 있는지 확인해야 합니다.
Kafka의 분산 특성을 감안할 때 실제 브로커 수와 목록은 일반적으로 구성에 의해 고정되지 않으며 대신 매우 동적입니다. 이러한 이유로 Kafka 통합은 클러스터에 있는 브로커 목록의 자동 검색을 수행하는 두 가지 메커니즘인 부트스트랩과 주키퍼를 제공합니다. 사용하는 메커니즘은 모니터링 중인 Kafka 클러스터 설정에 따라 다릅니다.
부트스트랩
부트스트랩 메커니즘 으로 통합은 부트스트랩 브로커를 사용하여 자동 검색을 수행합니다. 이것은 주소가 잘 알려진 브로커이며 알고 있는 다른 브로커를 요청합니다. 부트스트랩 검색이 작동하려면 통합에서 bootstrap_broker_host 매개변수에 제공된 주소로 이 브로커에 연결할 수 있어야 합니다.
사육사
또는 Kafka 통합은 브로커 목록을 얻기 위해 Zookeeper 서버 와 통신할 수도 있습니다. 이렇게 하려면 다음과 함께 통합이 제공되어야 합니다.
연락할 Zookeeper 호스트 zookeeper_hosts 의 목록입니다.
호스트와 연결하기 위한 적절한 인증 비밀.
Zookeeper는 알고 있는 브로커 목록과 함께 각 브로커가 지원하는 연결 메커니즘도 알립니다.
preferred_listener 매개변수를 사용하여 이러한 메커니즘 중 하나로 직접 시도하도록 Kafka 통합을 구성할 수 있습니다. 이 매개변수가 제공되지 않으면 통합은 그 중 하나가 성공할 때까지 알려진 모든 구성으로 브로커에 연결을 시도합니다.
팁
통합은 브로커 검색에만 Zookeeper를 사용하고 메트릭을 검색하지 않습니다.
브로커가 처리하는 주제를 올바르게 나열하려면 통합에서 Kafka 프로토콜을 통해 브로커에 연결해야 합니다. 브로커 구성 방법에 따라 브로커 구성과 일치하도록 SSL 및/또는 SASL을 설정해야 할 수 있습니다. 주제에는 DESCRIBE 액세스 권한이 있어야 합니다.
Kafka 통합은 Java 애플리케이션에서 메트릭을 교환하기 위한 표준 Java 확장인 JMX를 쿼리합니다. JMX는 Kafka 브로커에서 기본적으로 활성화되어 있지 않으며 메트릭 수집이 제대로 작동하려면 활성화해야 합니다. JMX를 사용하려면 RMI가 활성화되어야 하며 RMI 포트는 JMX와 동일한 포트로 설정되어야 합니다.
SSL뿐만 아니라 사용자 이름/암호 인증을 사용하도록 JMX를 구성할 수 있습니다. 브로커의 JMX 설정에서 이러한 기능이 활성화된 경우 이에 따라 통합을 구성해야 합니다.
autodiscovery가 부트스트랩으로 설정되면 부트스트랩 브로커에 대해 정의된 JMX 설정이 검색된 다른 모든 브로커에 적용되므로 포트 및 기타 설정은 모든 브로커에서 동일해야 합니다.
중요
공개 또는 신뢰할 수 없는 네트워크 세그먼트에서 익명 및/또는 암호화되지 않은 JMX/RMI 액세스를 활성화하는 것은 큰 보안 위험을 야기하므로 권장하지 않습니다.
주제의 소비자 및 소비자 그룹의 오프셋과 지연은 CONSUMER_OFFSET=true 플래그를 사용하여 KafkaOffsetSample 로 검색할 수 있지만 이 플래그가 활성화되면 인스턴스가 다른 샘플을 수집하지 않기 때문에 별도의 인스턴스에 있어야 합니다.
Java로 작성된 생산자와 소비자는 동일한 메커니즘(JMX)을 통해 보다 구체적인 메타데이터를 얻기 위해 모니터링할 수도 있습니다. 그러면 KafkaConsumerSamples 및 KafkaProducerSamples 가 생성됩니다. JMX는 기본적으로 활성화되어 있지 않은 애플리케이션에서 활성화하고 구성해야 합니다.
Java가 아닌 생산자 및 소비자는 JMX를 지원하지 않으므로 Kafka 통합에서 지원되지 않습니다.
통합 설치 및 활성화
Kafka 통합을 설치하려면 환경에 대한 지침을 따르세요.
리눅스 설치
통합 설치 지침을 따르고 INTEGRATION_FILE_NAME 변수를 nri-kafka 로 바꿉니다.
호스트에 설치된 경우 통합의 YAML 구성 파일 kafka-config.yml 에서 구성을 편집합니다. 통합의 YAML 형식 구성은 필수 로그인 자격 증명을 배치하고 데이터 수집 방법을 구성할 수 있는 곳입니다. 변경하는 옵션은 설정 및 기본 설정에 따라 다릅니다. 구성 파일에는 interval , timeout , inventory_source 같은 모든 통합에 적용할 수 있는 공통 설정이 있습니다. 이러한 공통 설정에 대한 모든 내용을 읽으려면 구성 형식 문서를 참조하십시오.
다른 통합과 마찬가지로 하나의 kafka-config.yml 구성 파일에는 다양한 브로커, 소비자 및 생산자 측정항목을 수집하는 통합 인스턴스가 여러 개 있을 수 있습니다.kafka-config.yml 샘플 파일 에서 하나 이상의 인스턴스가 있는 구성 예를 볼 수 있습니다.
Kafka와 관련된 특정 설정은 kafka-config.yml 구성 파일에 있는 각 인스턴스의 env 섹션을 사용하여 정의됩니다.이러한 설정은 Brokers, Zookeeper 및 JMX에 대한 연결과 기타 보안 설정 및 기능을 제어합니다.유효한 설정 목록은 Kafka의 구성 설정 에 설명되어 있습니다.
통합에는 각 인스턴스에 대해 상호 배타적인 두 가지 작동 모드가 있으며 CONSUMER_OFFSET 매개변수로 설정할 수 있습니다.
소비자 오프셋 수집: KafkaOffsetSample 을 수집하도록 CONSUMER_OFFSET = true 을 설정합니다.
비밀 관리를 사용합니다. 이를 사용하여 구성 파일에서 일반 텍스트로 노출될 암호와 같은 민감한 정보를 보호하십시오. 자세한 내용은 비밀 관리 를 참조하십시오.
오프셋 모니터링
CONSUMER_OFFSET = true 을 설정하면 기본적으로 활성 소비자(및 소비자 측정항목)가 있는 소비자 그룹의 측정항목만 수집됩니다.또한 비활성 소비자가 있는 소비자 그룹에서 측정항목을 수집하려면 INACTIVE_CONSUMER_GROUP_OFFSET 을 true 로 설정해야 합니다.
소비자 그룹이 둘 이상의 주제를 모니터링할 때, 특히 주제 중 하나에 비활성 소비자가 있는 경우 소비자 그룹 메트릭을 주제별로 구분하는 것이 중요합니다. 그러면 소비자 그룹에 지연이 있는 주제와 해당 소비자 그룹 및 주제에 대한 활성 소비자입니다.
주제별로 구분된 소비자 그룹 측정항목을 가져오려면 CONSUMER_GROUP_OFFSET_BY_TOPIC 을 true (기본값은 false )로 설정해야 합니다.