Elasticsearch не запускается: access denied “/etc/elasticsearch/${instance}/scripts”

В Elisalearch появилась не столь очевидная проблема.

После обновления с 6.2.x до 6.4.x elasticsearch не смог запуститься со следующей ошибки в своих журналах.

$ tail -f instance.log...Caused by: java.security.AccessControlException:access denied ("java.io.FilePermission" "/etc/elasticsearch/production/scripts" "read")at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)at java.security.AccessController.checkPermission(AccessController.java:884)at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)...

Логи указали, что он не может прочитать /etc/elasticsearch/production/scripts, но все права были в порядке.

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

В этом случае этот каталог скриптов действительно был символической ссылкой на общий ресурс.

$ ls -alh /etc/elasticsearch/production/scripts /etc/elasticsearch/production/scripts -> /usr/share/elasticsearch/scripts

Исправление было простым, поскольку общий каталог не содержал никаких скриптов.

$ rm -f /etc/elasticsearch/production/scripts$ mkdir /etc/elasticsearch/production/scripts$ chown elasticsearch:elasticsearch /etc/elasticsearch/production/scripts

Поверните эту символическую ссылку в обычный каталог и перезапустите свой экземпляр.

Если вы запускаете несколько экземпляров, вам придется повторить эти шаги для каждого экземпляра, который не запускается.

Отправить комментарий

0 Комментарии