В 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
Поверните эту символическую ссылку в обычный каталог и перезапустите свой экземпляр.
Если вы запускаете несколько экземпляров, вам придется повторить эти шаги для каждого экземпляра, который не запускается.