我打算将日志发送到我们合作的ElasticSearch集群。
我使用td-agent将日志转发到连接到协作ElasticSearch集群的Kafka端点。我已经安装了fluent-plugin-Kafka plugin with td-agent来将日志发送到连接到协作ElasticSearch集群的Kafka端点
插件URL:https://github.com/fluent/fluent-plugin-kafka
日志发送路径如下:
logs --> td-agent+fluent-plugin-kafka --> kafka cluster --> elasticsearch --> kibana
问题是,Kafka端点被配置为支持SASL认证而不支持SSL,因为日志只通过合作网络路由,我想不需要SSL支持。
我得到下面的错误:
2019-04-30 17:46:39 +0900 [error]: #0 /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.3.3/bin/fluentd:8:in `<top (required)>'
2019-04-30 17:46:39 +0900 [error]: #0 /opt/td-agent/embedded/bin/fluentd:23:in `load'
2019-04-30 17:46:39 +0900 [error]: #0 /opt/td-agent/embedded/bin/fluentd:23:in `<main>'
2019-04-30 17:46:39 +0900 [error]: #0 unexpected error error_class=ArgumentError error="SASL authentication requires that SSL is configured"
2019-04-30 17:46:39 +0900 [error]: #0 suppressed same stacktrace
2019-04-30 17:46:39 +0900 [info]: Worker 0 finished unexpectedly with status 1
^C
我的TD代理服务器是:
#
<source>
@type dummy
dummy {"hello":"world"}
tag test
</source>
<match test>
@type kafka2
brokers stg-ageapdsk101.stg.hnd2.bdd.local:9002,stg-ageapdsk102.stg.hnd2.bdd.local:9002,stg-ageapdsk103.stg.hnd2.bdd.local:9002
principal '[email protected]'
keytab 'appuser.keytab'
client_id 'kafka'
sasl_over_ssl false
get_kafka_client_log true
<format>
@type json
</format>
topic_key 'stg_esd_app_elk_1'
get_kafka_client_log true
<buffer topic>
flush_interval 10s
</buffer>
</match>
请帮助我解决这个问题。
3条答案
按热度按时间qyswt5oh1#
在cloudera 6.3的环境中,带有身份验证(GSSAPI),fluentd v1.9.2 plugin fluent-plugin-kafkav0.13.0,out_kafka2不工作。作为同一个插件中的替代模块,我尝试了rdkafka 2,它现在可以工作了。
详情;
principal和keytab与kafka 2相同
特定于rdkafka 2 service_name 'kafka'的参数
您可以检查the code,因为它填充了GSSAPI,SASL_PAINTEXT场景的所有必要参数。
添加到这里,不要忘记添加环境变量-Djava.security.auth.login.config=/home/user/jaas.conf,以获得jaas conf this link的详细信息。
nfeuvbwi2#
这为我解决了使用
sasl_over_ssl: false
5hcedyr03#
使用不带值的ssl_ca_cert,而不是sasl_over_ssl false
例如
客户端_id 'Kafka'
ssl_ca_cert
keytab 'appuser.keytab
谢谢