Próbuję parsować dużą wiadomość z Logstash przy użyciu danych wejściowych pliku, filtra json i danych wyjściowych elasticsearch. 99% czasu to działa dobrze, ale gdy jeden z moich komunikatów jest zbyt duży, otrzymuję błędy analizy JSON, ponieważ początkowa wiadomość jest podzielona na dwa częściowe nieprawidłowe strumienie JSON. Rozmiar takich wiadomości ma około 40 000 znaków. Sprawdziłem, czy są jakieś informacje na temat rozmiaru bufora lub jakiejś maksymalnej długości, którą powinienem spróbować pozostać, ale nie miałem szczęścia. Jedyne odpowiedzi, które znalazłem, dotyczą wejścia udp i możliwości zmiany wielkości bufora.Logstash: Obsługa dużych wiadomości
Does Logstash has a limit size for each event-message? https://github.com/elastic/logstash/issues/1505
To może być podobne do tego pytania, ale nigdy nie było żadnych odpowiedzi i sugestie: Logstash Json filter behaving unexpectedly for large nested JSONs
Jako obejście, chciałem podzielić moją wiadomość na wiele wiadomości, ale Nie mogę tego zrobić, ponieważ potrzebuję wszystkich informacji, aby znaleźć się w tym samym rekordzie w Elasticsearch. Nie wierzę, że istnieje sposób wywołania interfejsu API aktualizacji z logstash. Ponadto większość danych znajduje się w tablicy, więc mimo że mogę zaktualizować tablicę rekordu Elasticsearch za pomocą skryptu (Elasticsearch upserting and appending to array), nie mogę tego zrobić z Logstash.
rekordy danych wyglądać tak:
{ "variable1":"value1",
......,
"variable30": "value30",
"attachements": [ {5500 charcters of JSON},
{5500 charcters of JSON},
{5500 charcters of JSON}..
...
{8th dictionary of JSON}]
}
Czy ktoś zna sposób, aby proces Logstash te duże wiadomości JSON, lub sposób, że mogę podzielić je i je skończyć w ten sam rekord Elasticsearch (przy użyciu Logstash)?
Każda pomoc jest doceniana, a ja z radością dodaję wszelkie potrzebne informacje!