使用node-rdkafka进行Kerberos SASL身份验证

时间:2019-02-05 17:46:02

标签: node.js docker apache-kafka kerberos alpine

我在尝试使用node-rdkafka npm模块连接到使用Kerberos SASL身份验证的Kafka实例时遇到问题,并且由于缺少文档和示例,因此很难解决该问题。我使用的是here的Alpine设置  提取所有必需的librdkafka和node-rdkafka依赖项并创建映像。我正在尝试使用以下配置对象运行容器,以使node-rdkafka生产者连接到Kafka实例:

'debug': 'all',
'client.id': 'kafka',
'metadata.broker.list': KAFKA_DOMAINS,
'sasl.kerberos.principal': '<id>@<REALM>',
'sasl.kerberos.keytab': '/path/to/<id>.keytab',
'sasl.kerberos.service.name': 'kafka',
'security.protocol': 'sasl_plaintext',
'sasl.kerberos.kinit.cmd': 'kinit -kt /path/to/<id>.keytab <id>@<REALM>',
'dr_cb': true,
'event_cb': true

当我尝试运行容器时,它挂了,然后引发以下错误:

[2019-02-05T17:09:59.637Z] ERROR: kafka/7 on 95c927d11411: broker transport failure (err.code=-195)
Error: Local: Broker transport failure
    at Function.createLibrdkafkaError [as create] (/opt/rdkafka/node_modules/node-rdkafka/lib/error.js:261:10)
    at /opt/rdkafka/node_modules/node-rdkafka/lib/client.js:339:28

以下是功能部件和libkafkaversion日志语句的输出:

[2019-02-05T17:09:29.519Z]  INFO: kafka/7 on 95c927d11411:
[ 'gzip',
  'snappy',
  'ssl',
  'sasl',
  'regex',
  'lz4',
  'sasl_gssapi',
  'sasl_plain',
  'sasl_scram',
  'plugins' ]
[2019-02-05T17:09:29.521Z]  INFO: kafka/7 on 95c927d11411: 0.11.5

我无法连接什么?我是否缺少一些环境变量?我知道librdkafka的Java实现涉及传递REALM,KDC_HOST和一些.conf文件(krb5和jaas)。我是否需要设置某种环境变量?我找不到任何示例或解决方案。

0 个答案:

没有答案