【问题标题】:Graylog GELF max field sizeGraylog GELF 最大字段大小
【发布时间】:2016-06-03 11:21:27
【问题描述】:

我正在尝试将 Web 服务输入/输出作为 xml 插入 Graylog。为此,我使用了“GELFJ - A GELF Appender for Log4j and a GELF Handler for JDK Logging”。下面是示例代码:

public static void main(String[] args) throws IOException {
    GelfSender gelfSender = new GelfTCPSender("172.21.120.139", 12201);

    String xmlMessage = readFile("c:\\temp\\xml.xml");

    GelfMessage message = new GelfMessage("short message", "long message", System.currentTimeMillis(), "1");
    message.setHost("localhost");

    message.addField("XML", xmlMessage);
    message.addField("LEN", xmlMessage.length());

    if (message.isValid()) {
        GelfSenderResult result = gelfSender.sendMessage(message);
        Exception exception = result.getException();
        if (exception != null) {
            exception.printStackTrace();
        }
    } else {
        System.err.println("Message is not valid!");
    }
}

这是 GELF TCP 输入属性。

我无法插入大于 20k(字符)的消息字段。并且消息总大小大于 1.6 MB。

我的问题是消息字段的限制和消息总大小(以字节为单位)是什么?

【问题讨论】:

    标签: java logging elasticsearch graylog2 gelf


    【解决方案1】:

    Graylog 和 GELF 协议本身没有任何大小限制,但应注意 Lucene(Elasticsearch 的底层库)对于分析字段(例如“消息”和“完整消息”)的每个字段的限制为 32 KiB GELF 消息的字段)。

    鉴于 Elasticsearch 和 Graylog 中的默认编码是 UTF-8,这 20.000 个字符可以大致匹配 32 KiB 的最大字段大小(对于分析的字段)。未分析的字段可以(几乎)任意大。

    有关 GitHub 上的相关问题,请参阅 https://github.com/Graylog2/graylog2-server/issues/873

    【讨论】:

    • 首先感谢您的快速回复。如何让 graylog 不分析大于 32k 的字段?我只想在 Graylog Web UI 上存储和查看这些字段。我不希望它们被编入索引。
    猜你喜欢
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多