Graylog GELF最大字段大小

时间:2016-06-03 11:21:27

标签: java logging elasticsearch graylog2 gelf

我试图将Web服务输入/输出作为xml插入到Graylog中。为此,我使用" GELFJ - 用于Log4j的GELF Appender和用于JDK日志记录的GELF处理程序"。以下是示例代码:

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输入属性。

enter image description here

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

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

1 个答案:

答案 0 :(得分:4)

Graylog和GELF协议本身没有任何大小限制,但应该注意的是Lucene(Elasticsearch的基础库)对于分析的字段,每个字段的限制为32 KiB(例如" message& #34;以及#34; GELF消息的full_message"字段。)

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

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