【问题标题】:Does Logstash has a limit size for each event-message?Logstash 是否对每个事件消息有限制大小?
【发布时间】:2014-07-07 08:25:04
【问题描述】:

我正在我公司服务的服务器上实施监控工具。为此,我正在使用logstash。我们的应用程序通过 log4net udp appender 将它们的日志发送到 logstash(输入 udp),然后 logstash 对它们进行 grok,并将它们发送到 elasticsearch。当我在 kibana 中显示我的日志时,我看到一些日志被截断,最后一个主要部分丢失了(对于大日志)。所以我的问题是,Logstash 是否对收到的每个消息事件都有大小限制。如果是,是否可以增加尺寸。我需要我的所有日​​志,并且没有一个被截断。

【问题讨论】:

    标签: logstash


    【解决方案1】:

    2021 年更新

    最大大小由 UDP 输入中的buffer_size 参数设置。 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-udp.html#plugins-inputs-udp-buffer_size

    默认缓冲区大小为:

    • Lo​​gstash 上 65536 字节 >= 5.1
    • Lo​​gstash 上 8192 字节 >= 2.0
    • 旧版本为 4096 字节。

    UDP 数据报限制为 65535 字节,长度标头为 16 位。

    【讨论】:

      【解决方案2】:

      对于 udp 的情况,我想我已经找到了解决方案: -增加udp.rb文件中的buffer_size参数。

      我现在无法测试它,但我会告诉你它是否有效。

      【讨论】:

      • 你可以只在具体的配置。无需修改 udp.rb。请检查logstash.net/docs/1.4.2/inputs/udp中的buffer_size
      • 在输入过滤器中设置 buffer_size 在 Logstash v5.2 中不起作用。
      【解决方案3】:

      我已经使用 Logstash 1.4.0 和 Logstash 1.3.3 对其进行了测试。 我发现maximum size of an event is 4095!

      因此,如果您的日志大于此大小,您可能必须在将日志发送到 logstash 时将其拆分为多个事件。

      【讨论】:

      • 好的,谢谢您的回答。但是我有一些基本的问题:4095的单位是什么?如何计算我的消息的大小以知道它是否达到 4095(unit)?
      • 我想大概是 4096、4KB。我尝试输入超过 4096 个字符,然后消息仅输出 4095 个字符。也许最后一个字节是'\n'
      • 好的,就我而言,所有字符数少于 8551 的消息都以完整的形式出现。对于其他人,消息在第 8551 个字符处被截断。
      • 你能说出你是如何/在哪里找到这些信息的吗?
      【解决方案4】:

      Logstash 的 属性 buffer_size 默认设置为 8192。这就是为什么通过 UDP 发送到 Logstash 的消息在 8192th 符号处被截断。

      尝试在 Logstash 中增加 UDP buffer_size

      参考文献

      【讨论】:

        猜你喜欢
        • 2013-06-27
        • 2016-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多