Fluentd - отправьте json, используя python - PullRequest
2 голосов
/ 16 июня 2020

У меня есть сервер 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)

1 Ответ

1 голос
/ 22 июня 2020

Обнаружена проблема - сервер Fluentd принимал только данные, полученные в кодировке «ASCII».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...