tutorial plataforma instalar elk configurar linux logging elasticsearch linuxmint

linux - plataforma - Elasticsearch no puede escribir en archivos de registro



logstash elasticsearch (11)

Creo que ha instalado su elasticsearch usando yum o apt-get. La mejor forma de hacerlo es escribiendo:

$ sudo service elasticsearch start

o algo similar, como la forma en que comenzaría servicios como nginx, etc.

Esto funciona para mi.

Me gustaría activar registros de elasticsearch.

Cuando ejecuto los binarios de elasticsearch, me doy cuenta de que tengo problemas con el registro: ¡la configuración no se puede cargar!

Aquí está el resultado:

~ $ 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''s highly recommended that you fix the library with ''execstack -c <libfile>'', or link it with ''-z noexecstack''.

Me estoy ejecutando bajo linuxmint 17 y usando los últimos ES.


En mi caso, estaba intentando iniciar elasticsearch desde la descarga de tar para que pueda ejecutar múltiples instancias separadas fácilmente sin definiciones de servicio.

Lo que funcionó para mí fue subir un directorio y lanzar elasticsearch usando bin/elasticsearch lugar de simplemente elasticsearch mientras estaba en el directorio bin.

Ahora comenzó sin problemas sin enlaces simbólicos, archivos de servicio u otros cambios.


Estoy ejecutando elasicsearch con el usuario elasticsearch, así que usé este comando:

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

del directorio donde está instalado elasticsearch. Tuve que hacer:

sudo chown -R elasticsearch:elasticsearch .

allí porque de lo contrario no tendrá acceso de escritura a los archivos de registro. No sé cómo funcionaría esto a través de las secuencias de comandos de inicio de Debian, pero parece que funciona bien así.


Me metí en el mismo problema y me preguntaba cómo podrían perderlo en el script de instalación de búsqueda elástica. Entonces, después de excavar aquí, es lo que encontré:

  1. Parece que instaló la búsqueda elástica usando yum o apt-get o de lo contrario habría tenido el directorio ''config'' en ES_HOME.

  2. La comprobación de init.d / elasticsearch muestra lo siguiente:

    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

  3. Entonces, todas las variables se inicializan correctamente y luego pasan como parámetros de línea de comando.

  4. Entonces, la mejor manera para que comiences es usando el servicio:

    >sudo service elasticsearch start

  5. Se asegurará de que todos los parámetros de configuración y registro se pasen al comando principal.

  6. Compruebe los registros en /var/log/$NAME que sería ''/ var / log / elasticsearch`


Puede hacer enlaces simbólicos, pero si simplemente desea señalar elasticsearch al directorio de configuración deseado, puede usar lo siguiente:

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


Si ha instalado elasticsearch en sistemas Debian utilizando dpkg, la configuración predeterminada se puede encontrar en /etc/elasticsearch/

Tendrás 2 archivos yml:

  • elasticsearch.yml
  • logging.yml

Puede editar el archivo elasticsearch (cambiar el derecho de acceso o copiar el archivo en su directorio principal de elasticsearch). Para configurar su ruta de registro (l.167).

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

Asegúrate de tener acceso correcto en él. Entonces intenta

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

y revisa el publish_adress dado en la terminal

También puedes definir más parámetros. Espero que esto ayude.


Si ha instalado un .deb y desea iniciar sudo / usr / share / elasticsearch / bin / elasticsearch

Tu tienes que hacer :

cd /usr/share/elasticsearch sudo ln -s /etc/elasticsearch config


Si instaló elasticsearch utilizando un administrador de paquetes como yum o apt-get no debería iniciar elasticsearch de esta manera. Intente utilizar el servicio: por ejemplo /etc/init.d/elasticsearch o utilizando el comando sudo service elasticsearch start

También debe comprobar si el archivo logging.yml está en la ubicación mencionada en el seguimiento de la pila: /usr/share/elasticsearch/config

Usar sudo para comenzar elasticsearch no es bueno, puedes hacer sudo elasticsearch para ejecutar como el usuario de elasticsearch, pero prefiero usar la llamada de servicio como se describe en la segunda oración.

Espero que ayude


Si necesita ejecutarlo en primer plano, pero no como servicio, simplemente especifique explícitamente el directorio de configuración.

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

En este caso, elasticsearch podrá encontrar todos sus archivos de configuración.


Siguiendo esto funcionó para mí.

Su archivo elasticsearch.yml así como también el archivo logging.yml estarán en la carpeta / etc / elasticsearch.

Cree una carpeta config en su carpeta elasticsearch en / usr / share y mueva los archivos .yml a la carpeta config


Su archivo logging.yml así como logging.yml archivo logging.yml estarán en la carpeta /etc/elasticsearch .

Cree una carpeta config en su carpeta elasticsearch en /usr/share y mueva los archivos .yml a la carpeta config

Ahora ejecuta /bin/elasticsearch start y funcionará.