Elasticsearch не может записывать файлы журналов

Я хотел бы активировать журналы поиска elastics.

Когда я запускаю двоичные файлы elasticsearch, я понимаю, что у меня проблемы с протоколированием: конфигурация не может быть загружена!

Вот результат:

~ $ sudo /usr/share/elasticsearch/bin/elasticsearch
Failed to configure logging...
org.elasticsearch.ElasticsearchException: Failed to load logging configuration
    at org.elasticsearch.common.logging.log4j.LogConfigurator.resolveConfig(LogConfigurator.java:117)
    at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:81)
    at org.elasticsearch.bootstrap.Bootstrap.setupLogging(Bootstrap.java:94)
    at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:178)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)
Caused by: java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
    at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
    at sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:97)
    at java.nio.file.Files.readAttributes(Files.java:1686)
    at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:109)
    at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:69)
    at java.nio.file.Files.walkFileTree(Files.java:2602)
    at org.elasticsearch.common.logging.log4j.LogConfigurator.resolveConfig(LogConfigurator.java:107)
    ... 4 more
log4j:WARN No appenders could be found for logger (node).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Java HotSpot(TM) Server VM warning: You have loaded library /usr/share/elasticsearch/lib/sigar/libsigar-x86-linux.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.

Я запускаюсь под linuxmint 17 и использую последние ES.

Ответ 1

Если вы установили elasticsearch с помощью диспетчера пакетов, такого как yum или apt-get, вы не должны запускать elasticsearch таким образом. Попробуйте воспользоваться службой: например /etc/init.d/elasticsearch или с помощью команды sudo service elasticsearch start

Вы также должны проверить, находится ли файл logging.yml в месте, указанном в трассировке стека: /usr/share/elasticsearch/config

Использование sudo для запуска elasticsearch не очень хорошо, вы можете сделать sudo elasticsearch для запуска в качестве пользователя elasticsearch, но я предпочитаю использовать служебный вызов, как описано во втором предложении.

Надеюсь, что поможет

Ответ 2

Ваш файл elasticsearch.yml, а также logging.yml будет находиться в папке /etc/elasticsearch.

Создайте папку конфигурации в папке elasticsearch в /usr/share и переместите файлы .yml в папку конфигурации

Теперь запустите /bin/elasticsearch start, и он будет работать.

Ответ 3

После этого сработало для меня.

Ваш файл elasticsearch.yml, а также файл logging.yml будут находиться в папке /etc/elasticsearch.

Создайте папку конфигурации в папке elasticsearch в /usr/share и переместите файлы .yml в папку конфигурации

Ответ 4

Вы можете делать символические ссылки, но если вы просто хотите указать elasticsearch в желаемый каталог конфигурации, вы можете использовать следующее:

/usr/share/elasticsearch/bin/elasticsearch --default.path.conf=/etc/elasticsearch/

Ответ 5

Если вы установили elasticsearch в системах Debian, используя dpkg, конфигурацию по умолчанию можно найти в /etc/elasticsearch/

У вас будет 2 файла yml:

  • elasticsearch.yml
  • logging.yml

Вы можете редактировать файл elasticsearch (изменение права доступа или копирование файла в ваш основной каталог elasticsearch). Чтобы настроить путь к журналу (l.167).

    #path.logs: /path/to/logs
    #e.g:        
    path.logs: /usr/share/elasticsearch/logs

Убедитесь, что у вас есть правильный доступ. Затем попробуйте

    cd /usr/share/elasticsearch/ 
    bin/elasticsearch start

и проверьте publish_adress, указанный в терминале

Вы также можете определить больше параметров. Надеюсь на эту помощь.

Ответ 6

Если вы установили .deb и хотите запустить sudo/usr/share/elasticsearch/bin/elasticsearch

Вам нужно сделать:

cd /usr/share/elasticsearch

sudo ln -s /etc/elasticsearch config

Ответ 7

Я думаю, что вы установили свой elasticsearch с помощью yum или apt-get Лучший способ сделать это, набрав:

$ sudo service elasticsearch start

или что-то подобное, например, как вы начинаете службы, такие как nginx и т.д.

Это работает для меня.

Ответ 8

Если вам нужно запустить его на переднем плане, но не как сервис, просто укажите конфигурационную директорию явно.

$ /usr/share/elasticsearch/bin/elasticsearch -Des.path.conf=/etc/elasticsearch

В этом случае elasticsearch сможет найти все ваши файлы конфигурации.

Ответ 9

В моем случае я пытался запустить elasticsearch из tar-загрузки, чтобы я мог легко запускать несколько отдельных экземпляров без определения сервисов.

Что сработало для меня, так это перейти в каталог и запустить elasticsearch, используя bin/elasticsearch вместо просто elasticsearch, находясь в каталоге bin.

Теперь у него не возникло проблем без каких-либо символических ссылок, служебных файлов или других изменений.

Ответ 10

Я запускаю elasicsearch с пользователем elasticsearch, поэтому я использовал эту команду:

sudo su elasticsearch -c './bin/elasticsearch -d --default.path.conf=/etc/elasticsearch'

из каталога, где установлен elasticsearch. Пришлось делать:

sudo chown -R elasticsearch:elasticsearch .

хотя в противном случае он не будет иметь доступ на запись к файлам журнала. Я не знаю, как это будет работать через сценарии запуска debian, но похоже, что это работает так.

Ответ 11

Я попал в одну и ту же проблему и задавался вопросом, как они могли пропустить это в установке script упругого поиска. Итак, после некоторого рытья вот что я нашел:

  • Похоже, вы установили эластичный поиск с помощью yum или apt-get, иначе у вас был бы каталог "config" в ES_HOME.

  • Проверка init.d/elasticsearch показывает следующее:

    DAEMON_OPTS="-d -p $PID_FILE --default.path.home=$ES_HOME --default.path.logs=$LOG_DIR --default.path.data=$DATA_DIR --default.path.conf=$CONF_DIR"

    :

    # Start Daemon

    start-stop-daemon -d $ES_HOME --start -b --user "$ES_USER" -c "$ES_USER" --pidfile "$PID_FILE" --exec $DAEMON -- $DAEMON_OPTS

  • Итак, все переменные правильно инициализированы, а затем переданы как параметры командной строки.

  • Итак, лучший способ начать использовать сервис:

    >sudo service elasticsearch start

  • Он будет следить за тем, чтобы все параметры конфигурации и журнала были переданы основной команде.

  • Проверьте журналы под /var/log/$NAME, которые будут '/var/log/elasticsearch`