Не удалось развернуть ELK на одном узле Docker Swarm - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь развернуть 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 Ответ

1 голос
/ 09 июля 2019

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

Вы упомянули, что вы уменьшаете размер кучи в вашем файле для создания : от 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 в ваш файл compose (вам не нужно использовать v3, v2 достаточно для службы с одним узлом), чтобы ограничить использование памяти вашего контейнера.

...