У меня есть сервер Fluentd, который настроен на прием данных json через TCP и при совпадении для вывода их на std. Конфигурация:
<source>
@type tcp
tag json_logs
port 12312
format json
bind 0.0.0.0
</source>
<match **>
@type stdout
</match>
При попытке отправить сообщение с помощью netcat все работает нормально - сообщение получено и отображается в выводе. Проблема, с которой я столкнулся, заключается в попытке отправить сообщения через python - сообщение, похоже, получено нормально (я проверяю, используя tcpdump, чтобы увидеть, что получает сервер), но на выходе ничего не отображается, даже некоторые своего рода ошибка. Еще одна деталь заключается в том, что если я попытаюсь отправить неверно отформатированный json из python, на выходе будет отображаться сообщение - сообщение «шаблон не сопоставлен».
Код, который я использую для отправки сообщений:
from pyfluent.client import FluentSender
logdata = '{ "prop1": "val1", "prop2": "val2" }'
fluent = FluentSender("host", 12312, "json_logs")
fluent.send(logdata)