Fluentd - 使用 python 发送 json

Fluentd - send json using python

我有一个 Fluentd 服务器,它被配置为通过 TCP 接受 json 数据并在匹配时将其输出到 std。配置为:

<source>
 @type tcp
 tag json_logs
 port 12312
 format json
 bind 0.0.0.0
</source>

<match **>
@type stdout
</match>

尝试使用 netcat 发送消息时一切正常 - 消息已收到并显示在输出中。我面临的问题是尝试通过 python 发送消息 - 消息似乎收到正常(我正在使用 tcpdump 检查服务器接收的内容),但在输出中没有显示任何内容,不是甚至是某种错误。一个额外的细节是,如果我尝试从 python 发送格式错误的 json,则会向输出显示一条消息 - "pattern not matched" 消息。

我用来发送消息的代码:

from pyfluent.client import FluentSender
logdata = '{ "prop1": "val1", "prop2": "val2" }'
fluent = FluentSender("host", 12312, "json_logs")
fluent.send(logdata)

发现问题 - Fluentd 服务器仅接受使用 'ASCII' 编码接收的数据。