Я пытаюсь установить зашифрованные журналы с td-agent между двумя машинами. Я следил за примерами из официальной документации fluentd, но попал в очень странную ситуацию. Клиент и сервер отказываются вести переговоры из-за несоответствия shared_key.
Ключевая фраза верна на обоих серверах, однако и клиент, и сервер заявляют, что ключи не совпадают.
Вот конфигурация клиента (текст опущен):
<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>
А вот конфиг сервера:
<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 ""
Я продолжаю получать эти сообщения об ошибках с сервера:
Shared key mismatch from 'client.example.net'
То же от клиента:
[warn]: dead connection found: server.example.net, reconnecting...
[warn]: connection refused to server.example.net:authentication failed: shared_key mismatch
Любые идеи?
Оказывается, плагин secure_forward td-agent имел разные версии.
Более подробно, последняя версия соответствующего плагина (0.4.5) m «добавляет» к паролю «одноразовый номер», а предыдущая версия - нет. Таким образом, у одного пароля получается другая сумма.
Два решения:
1. Обновите плагин secure_forward на обоих концах.
2. Удалите из кода дайджест-процедуру.