ElasticSearch 5.0.0-aplha4 не запускается без установки vm.max_map_count

Я хочу обновить версию ES от 2.3 до 5.0.0-alpha4, чтобы иметь возможность использовать узлы Ingest и удалить Logstash из вопроса. Но, похоже, версия ES 5.x не начнется без меня, установив vm.max_map_count на 262144. Я не хочу устанавливать это значение. Я в порядке со значением по умолчанию 65530. Может ли кто-нибудь вести меня, как получить ES 5. x начался без изменения настроек памяти. У меня нет доступа к пользователю root на хосте, на котором я хочу установить ES. Ошибка:

java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
at org.elasticsearch.bootstrap.Seccomp.linuxImpl(Seccomp.java:347)
at org.elasticsearch.bootstrap.Seccomp.init(Seccomp.java:616)
[2016-08-08 07:49:55,436][INFO ][node ] [data-cum-ingest-node] initializing ...
[2016-08-08 07:49:56,048][INFO ][plugins ] [data-cum-ingest-node] modules [percolator, lang-mustache, lang-painless, reindex, aggs-matrix-stats, lang-expression, ingest-common, lang-groovy], plugins []
[2016-08-08 07:49:56,601][INFO ][env ] [data-cum-ingest-node] heap size [7.9gb], compressed ordinary object pointers [true]
[2016-08-08 07:49:57,582][INFO ][node ] [data-cum-ingest-node] initialized
[2016-08-08 07:49:57,582][INFO ][node ] [data-cum-ingest-node] starting ...
[2016-08-08 07:49:57,635][ERROR][bootstrap ] [data-cum-ingest-node] Exception
java.lang.RuntimeException: bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:125)
at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:85)
at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:65)
at org.elasticsearch.bootstrap.Bootstrap$5.validateNodeBeforeAcceptingRequests(Bootstrap.java:178)
at org.elasticsearch.node.Node.start(Node.java:373)
at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:193)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:252)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:96)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:91)
at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:91)
at org.elasticsearch.cli.Command.main(Command.java:53)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:70)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:63)
Suppressed: java.lang.IllegalStateException: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
at java.util.stream.AbstractPipeline.********(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.***************(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:126)
3 ответа

Начиная с ES 5, есть некоторые проверки начальной загрузки, которые принудительно применяются.

Одна из этих проверок - Максимальная проверка количества карт (только для Linux), для которой требуется 262144 области с отображением памяти или она откажется от Начало.

Обратите внимание, что эта проверка выполняется независимо от того, в какой среде ES работает (dev или prod)


Из документации:

Если Elasticsearch находится в режиме разработки, любой бутстрап проверяет, что сбои отображаются как предупреждения в журнале Elasticsearch. Если Elasticsearch в режиме производства любые проверки начальной загрузки, которые Elasticsearch отказывается начинать.

Снова оттуда:

Таким образом, мы считаем, что Elasticsearch находится в режиме разработки, если он не связывать и публиковать на внешний интерфейс (по умолчанию), и в противном случае в режиме производства, если он связывает или публикует внешние интерфейс.

Чтобы полностью отключить проверки, просто установите bootstrap.ignore_system_bootstrap_checks на true.

https://www.elastic.co/guide/en/elasticsearch/reference/master/bootstrap-checks.html


Режим разработки: Если вы используете эластичный поиск в режиме разработки, нам не нужно устанавливать max_map_count. Просто выполните следующим образом

docker run -p 9200: 9200 -p 9300: 9300 -e "discovery.type = single- node" docker.elastic.co/elasticsearch/elasticsearch:5.6.4

Режим производства:. Я запускаю в процессе производства, вам нужно установить свойство, как показано ниже.

Linux

Параметр vm.max_map_count должен быть установлен постоянно в файле /etc/sysctl.conf:

grep vm.max_map_count/etc/sysctl.conf

vm.max_map_count = 262144

ИЛИ

sysctl -w vm.max_map_count = 262144

licensed under cc by-sa 3.0 with attribution.