Не удалось развернуть ELK на одном узле Docker Swarm

Я пытаюсь развернуть ELK на моем небольшом сервере 2 Core / 2G RAM. Но сервер стека ELK просто продолжает перезагружаться и не может работать.

В журнале, напечатанном на этих контейнерах, нет ошибок и только несколько предупреждений об устаревшем методе.

Logstash log:
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.headius.backport9.modules.Modules (file:/usr/share/logstash/logstash-core/lib/jars/jruby-complete-9.2.7.0.jar) to field java.io.FileDescriptor.fd
WARNING: Please consider reporting this to the maintainers of com.headius.backport9.modules.Modules
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Нет ошибок печатает на Kibana и эластичный контейнер для поиска

Вот файл компоновщика стека докеров: https://github.com/deviantony/docker-elk/blob/master/docker-stack.yml. Я ничего не изменил, кроме уменьшения размера кучи.

Но если я использую docker-compose вместо docker stack deploy в режиме роя все идет гладко.

Кроме того, мой процессор подскочил до 100%, в то время как использование памяти только 60% при запуске службы.

Как я могу отладить эту проблему? Заранее спасибо.

1 ответ

Решение

Я думаю, что ваша проблема все еще вызвана нехваткой памяти. Я бы протестировал составной стек, который вы показываете выше. Проверьте docker stats, Использование памяти колебалось в 1.8G.

Вы упомянули, что вы уменьшаете размер кучи в вашем файле compose: ES_JAVA_OPTS: "-Xmx512m -Xms512m" понижать. Но все равно не рекомендую вырубать размер кучи ниже 256m, Любое значение ниже этого приведет к некоторой ошибке, например:

[circuit_breaking_exception] [parent] Data too large, data for [<http_request>] would be xxx, which is larger than the limit of xxx

Любой более сложный запрос или другая операция вызовет больше ошибок.

Кроме того, обратите внимание, что у вас есть один хост, но вы все еще используете swarm в качестве главного и рабочего узла. Любая другая избыточная служба или приложение подтолкнет вас к хосту. 2G оперативного сервера недостаточно для размещения всего стека ELK для наиболее распространенного использования. Если вы настаиваете, попробуйте добавить mem_limit в вашем файле компоновки (вам не нужно использовать v3, v2 достаточно для службы с одним узлом), чтобы ограничить использование памяти вашего контейнера.

Другие вопросы по тегам