Fluentd - “传入的块已损坏”

Gör*_*zer 7 logging fluentd

我在 docker 容器上运行 fluentd 图像。当我使用 telnet(或 netcat)打开 TCP 连接并发送“消息”字符串时,会出现以下消息:

2017-01-24 10:22:00 +0000 [warn]: incoming chunk is broken: source="host: 192.168.99.1, 
addr: 192.168.99.1, port: 12345" msg=109

2017-01-24 10:22:00 +0000 [warn]: incoming chunk is broken: source="host: 192.168.99.1, 
addr: 192.168.99.1, port: 12345" msg=101

2017-01-24 10:22:00 +0000 [warn]: incoming chunk is broken: source="host: 192.168.99.1, 
addr: 192.168.99.1, port: 12345" msg=115

2017-01-24 10:22:00 +0000 [warn]: incoming chunk is broken: source="host: 192.168.99.1, 
addr: 192.168.99.1, port: 12345" msg=115

2017-01-24 10:22:00 +0000 [warn]: incoming chunk is broken: source="host: 192.168.99.1, 
addr: 192.168.99.1, port: 12345" msg=97

2017-01-24 10:22:00 +0000 [warn]: incoming chunk is broken: source="host: 192.168.99.1, 
addr: 192.168.99.1, port: 12345" msg=103

2017-01-24 10:22:00 +0000 [warn]: incoming chunk is broken: source="host: 192.168.99.1, 
addr: 192.168.99.1, port: 12345" msg=101
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我的“消息”是逐个字符发送的,并且在流利的一侧显示为这样。如何整体显示我的“消息”?

此外,当我发送 JSON 格式的字符串时,我仍然收到“传入块已损坏”警告。我该如何解决这个问题?

小智 0

我在使用 Fluent-bit 作为客户端时遇到了这个问题,因为发送的内容与预期的格式不匹配。

以下为我解决了这个问题(两个配置都需要设置为http):

流利的位.conf

[INPUT]
  name cpu
  tag  cpu.local
  interval_sec 2

[OUTPUT]
  Name  http
  Match *
  Host  12.345.678.9
  Port  1234
  URI   /tagname
  Format json
Run Code Online (Sandbox Code Playgroud)

td-agent.conf

<source>
  @type http
  port 1234
  <parse>
    @type json
  </parse>
</source>

<match tagname>
  @type copy
  <store>
    @type stdout
    @id output_stdout
  </store>
</match>
Run Code Online (Sandbox Code Playgroud)