如何使用带 SSL 的 Telegraf 连接 RabbitMQ 和 Kafka?
我正在尝试使用带有 SSL 选项的 Telegraf 连接 RabbitMQ 和 Kafka。我已经使用 RabbitMQ 版本 3.11.8 / 3.10.7、Erlang 版本 25.2.2 / 24.2.1 和 Telegraf 版本 1.26.1.
测试了设置我能够在没有 SSL 选项的情况下成功连接 Telegraf 和 RabbitMQ。但是,当我尝试使用 SSL 选项连接时,我在 Telegraf 日志中收到一条错误消息:
D! [inputs.amqp_consumer] Error connecting to "amqp://$rabbitmqurl:5671/"
E! [telegraf] Error running agent: starting input inputs.amqp_consumer: could not connect to any broker
我在RabbitMQ的日志中也发现了如下错误信息:
[notice] <0.3848.0> TLS server: In state hello at tls_record.erl:564 generated SERVER ALERT: Fatal - Unexpected Message
[notice] <0.3848.0> - {unsupported_record_type,65}
我使用以下命令测试连接并收到成功响应:
openssl s_client -connect $rabbitmqurl:5671 -cert clientcert.pem -key clientkey.pem -CAfile cacert.pem
SSL handshake has read 2625 bytes and written 2564 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
我测试了我的 Python 代码并且能够成功连接。 下面是我的 telegraf.conf 片段:
[[inputs.amqp_consumer]]
brokers = ["amqp://$rabbitmqurl:5671/"]
username = "$username"
password = "$password"
exchange = "test.exchange"
queue = "test.queue"
tls_ca = "/etc/telegraf/cert/cacert.pem"
tls_cert = "/etc/telegraf/cert/clientcert.pem"
tls_key = "/etc/telegraf/cert/clientkey.pem"
有人可以告诉我如何修复错误消息并使用带 SSL 选项的 Telegraf 连接 RabbitMQ 吗?