Estou tentando definir logs criptografados com td-agent entre duas máquinas. Eu segui os exemplos da documentação oficial do fluentd, mas estou preso em uma situação muito estranha. O cliente e o servidor se recusam a negociar devido à incompatibilidade de shared_key.
A frase-chave está correta em ambos os servidores, no entanto, tanto o cliente quanto o servidor afirmam que as chaves não correspondem.
Aqui está a configuração do cliente (texto omitido):
<match uwsgi.**>
type copy
<store>
type secure_forward
shared_key hello
send_timeout 30s
self_hostname client.example.net
<server>
name server.example.net
host server.example.net
port 24225
</server>
</store>
</match>
E aqui está a configuração do servidor:
<source>
type secure_forward
shared_key hello
self_hostname server.example.net
bind 0.0.0.0
port 24225
secure true
ca_cert_path /etc/td-agent/mycert.crt
ca_private_key_path /etc/td-agent/mykey.key
ca_private_key_passphrase ""
Eu continuo recebendo essas mensagens de erro do servidor:
Shared key mismatch from 'client.example.net'
O mesmo do cliente:
[warn]: dead connection found: server.example.net, reconnecting...
[warn]: connection refused to server.example.net:authentication failed: shared_key mismatch
Alguma ideia?
Acontece que o plugin secure_forward do td-agent tinha versões diferentes.
Em mais detalhes, a versão mais recente do plug-in relevante (0.4.5),m "salta" a senha com um "nonce", mas a versão anterior não. Assim, uma senha acaba com uma soma sha diferente.
Duas soluções:
1. Atualize o plugin secure_forward em ambas as extremidades
2. Remova o procedimento de compilação dentro do código.