Я пытаюсь проанализировать большое сообщение с помощью Logstash, используя ввод файла, фильтр json и вывод elasticsearch. В 99% случаев это работает нормально, но когда одно из моих сообщений журнала слишком велико, я получаю ошибки синтаксического анализа JSON, поскольку исходное сообщение разбивается на два частичных недопустимых потока JSON. Размер таких сообщений составляет около 40 000+ символов. Я посмотрел, есть ли какая-либо информация о размере буфера или какой-то максимальной длине, которую я должен попытаться удержать, но мне не повезло. Единственные ответы, которые я нашел, связаны с вводом udp и возможностью изменения размера буфера.
Имеет ли Logstash предельный размер для каждого сообщения о событии? https://github.com/elastic/logstash/issues/1505
Это также может быть похоже на этот вопрос, но никогда не было ответов или предложений: Фильтр Logstash Json неожиданно ведет себя для больших вложенных JSON
В качестве обходного пути я хотел разделить свое сообщение на несколько сообщений, но я не могу этого сделать, так как мне нужно, чтобы вся информация находилась в одной записи в Elasticsearch. Я не верю, что есть способ вызвать Update API из logstash. Кроме того, большая часть данных находится в массиве, поэтому, хотя я могу обновить массив записей Elasticsearch с помощью скрипта (Elasticsearch вставляет и добавляет к массиву), я не могу сделать это из Logstash.
Записи данных выглядят примерно так:
{ "variable1":"value1",
......,
"variable30": "value30",
"attachements": [ {5500 charcters of JSON},
{5500 charcters of JSON},
{5500 charcters of JSON}..
...
{8th dictionary of JSON}]
}
Кто-нибудь знает, как заставить Logstash обрабатывать эти большие сообщения JSON или как я могу разделить их и поместить в одну и ту же запись Elasticsearch (используя Logstash)?
Любая помощь приветствуется, и я рад добавить любую необходимую информацию!