SASL을 사용한 Filebeat kafka 입력?

SASL을 사용한 Filebeat kafka 입력?

kafka 입력을 사용하여 kafka의 메시지를 소비하도록 filebeat를 얻으려고 합니다. 어떤 이유로 SASL로 인증할 수 없으며 그 이유가 무엇인지 잘 모르겠습니다. SASL과 함께 사용하려고 하면 Kafka와 Filebeat에 대한 문서가 약간 부족합니다.

내 파일비트 구성은 다음과 같습니다.

filebeat.config:
  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false

filebeat.inputs:
- type: kafka
  hosts: 'the.kafka.server.com:9092'
  topics: 'my_topic'
  group_id: 'my_group'
  ssl.enabled: yes
  username: "$ConnectionString"
  password: "org.apache.kafka.common.security.plain.PlainLoginModule required username='my_username' password='my_password';"

processors:
- add_cloud_metadata: ~
- add_docker_metadata: ~

output.console:
  pretty: true

출력은 다음과 같습니다

INFO    input/input.go:114      Starting input of type: kafka; ID: 14409252276502564738
INFO    kafka/log.go:53 kafka message: Initializing new client
INFO    kafka/log.go:53 client/metadata fetching metadata for all topics from broker the.kafka.server.com:9092

INFO    crawler/crawler.go:106  Loading and starting Inputs completed. Enabled inputs: 1
INFO    cfgfile/reload.go:171   Config reloader started
INFO    cfgfile/reload.go:226   Loading of config files completed.
INFO    kafka/log.go:53 kafka message: Successful SASL handshake. Available mechanisms: %!(EXTRA []string=[PLAIN OAUTHBEARER])
INFO    kafka/log.go:53 Failed to read response while authenticating with SASL to broker the.kafka.server.com:9092: EOF

INFO    kafka/log.go:53 Closed connection to broker the.kafka.server.com:9092

INFO    kafka/log.go:53 client/metadata got error from broker -1 while fetching metadata: EOF

여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다. 나는 또한 compression: none서버 인증서를 확인할 수 있다는 것을 openssl로 확인하고 도움이 되지 않는 추가를 시도했습니다. 내가 여기서 뭘 잘못하고 있는 걸까? 문제의 kafka 서버는 클라우드 호스팅 kafka 서버이며 서버 구성을 볼 수 없습니다. kafka의 클라우드 UI에서 "연결 문자열"이 제공되었습니다.

답변1

문제를 발견했습니다. $ConnectionString구문이 합류 클라우드 kafka 클러스터에서 작동하지 않습니다. 올바른 구문은 다음과 같습니다.

filebeat.inputs:
- type: kafka
  hosts: 'the.kafka.server.com:9092'
  topics: 'my_topic'
  group_id: 'my_group'
  ssl.enabled: yes
  username: <API KEY>
  password: <API SECRET>

연결하고 소비하기에 충분합니다.

관련 정보