1
votes

Échec du démarrage d'Elasticsearch. Erreur lors de l'ouverture du fichier journal '/gc.log': autorisation refusée

Chère communauté StackOverflow,

J'utilisais Kibana / Elasticsearch sans problème jusqu'à l'installation d'un plugin Kibana. Ensuite, le service a échoué et j'ai remarqué que le problème est qu'Elasticsearch s'est arrêté. J'ai essayé plusieurs façons de le réparer, puis j'ai même tout réinstallé. Mais le problème est toujours d'éviter de lancer Elasticsearch, même avec une nouvelle installation.

Installation sur Debian 9 en utilisant apt install.

systemctl start elasticsearch.service

résultats sur:

Exception dans le thread "main" java.lang.RuntimeException: le démarrage de java a échoué avec [1]

[0.000s] [error] [logging] Erreur lors de l'ouverture du fichier journal '/gc.log': Autorisation refusée

Journal complet avec journalctl -xe

-- Unit elasticsearch.service has begun starting up.
Feb 07 14:09:06 Debian-911-stretch-64-minimal kibana[576]: {"type":"log","@timestamp":"2020-02-07T13:09:06Z","tags":["warning","elasticsearch","admin"],"pid":576,"message":"Unable to revive connection: http://localhost:9200/"}
Feb 07 14:09:06 Debian-911-stretch-64-minimal kibana[576]: {"type":"log","@timestamp":"2020-02-07T13:09:06Z","tags":["warning","elasticsearch","admin"],"pid":576,"message":"No living connections"}
Feb 07 14:09:06 Debian-911-stretch-64-minimal kibana[576]: {"type":"log","@timestamp":"2020-02-07T13:09:06Z","tags":["warning","elasticsearch","admin"],"pid":576,"message":"Unable to revive connection: http://localhost:9200/"}
Feb 07 14:09:06 Debian-911-stretch-64-minimal kibana[576]: {"type":"log","@timestamp":"2020-02-07T13:09:06Z","tags":["warning","elasticsearch","admin"],"pid":576,"message":"No living connections"}
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]: Exception in thread "main" java.lang.RuntimeException: starting java failed with [1]
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]: output:
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]: [0.000s][error][logging] Error opening log file '/gc.log': Permission denied
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]: [0.000s][error][logging] Initialization of output 'file=/var/log/elasticsearch/gc.log' using options 'filecount=32,filesize=64m' failed.
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]: error:
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]: OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]: Invalid -Xlog option '-Xlog:gc*,gc+age=trace,safepoint:file=/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m', see error log for details.
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]: Error: Could not create the Java Virtual Machine.
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]: Error: A fatal exception has occurred. Program will exit.
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]:         at org.elasticsearch.tools.launchers.JvmErgonomics.flagsFinal(JvmErgonomics.java:118)
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]:         at org.elasticsearch.tools.launchers.JvmErgonomics.finalJvmOptions(JvmErgonomics.java:86)
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]:         at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:59)
Feb 07 14:09:06 Debian-911-stretch-64-minimal elasticsearch[2312]:         at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:92)
Feb 07 14:09:06 Debian-911-stretch-64-minimal systemd[1]: elasticsearch.service: Main process exited, code=exited, status=1/FAILURE
Feb 07 14:09:06 Debian-911-stretch-64-minimal systemd[1]: Failed to start Elasticsearch.
-- Subject: Unit elasticsearch.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- Unit elasticsearch.service has failed.

Le fichier gc.log mentionné ne se trouvait pas dans ce dossier. Et les permissions étaient:

drwxr-s --- 2 elasticsearch elasticsearch 4096 15 janvier 13:20 elasticsearch

J'ai créé le fichier et j'ai aussi joué avec autorisations jusqu'à avoir ces:

-rwxrwxrwx 1 root elasticsearch 0 février 7 15:19 gc.log

... et même changé la propriété:

-rwxrwxrwx 1 root root 0 7 février 15:19 gc.log

Mais sans succès, j'ai toujours le même problème.

Merci


3 commentaires

avez-vous essayé de définir l'autorisation sur le journal et le dossier de données elasticsearch? ou juste gc.log?


J'ai changé les autorisations pour le fichier gc.log et le dossier / var / log / elasticsearch. Même avec 777, le même problème se produit encore ...


pouvez-vous publier elasticsearch.log?


3 Réponses :


0
votes

sudo systemctl -l status elasticsearch.service

Renvoie ce journal:

● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/elasticsearch.service.d
           └─override.conf
   Active: failed (Result: exit-code) since Sun 2020-02-09 17:09:02 CET; 2min 48s ago
     Docs: http://www.elastic.co
  Process: 2199 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet (code=exited, status=1/FAILURE)
 Main PID: 2199 (code=exited, status=1/FAILURE)

Feb 09 17:09:02 server elasticsearch[2199]: Invalid -Xlog option '-Xlog:gc*,gc+age=trace,safepoint:file=/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m', see error log for details.
Feb 09 17:09:02 server elasticsearch[2199]: Error: Could not create the Java Virtual Machine.
Feb 09 17:09:02 server elasticsearch[2199]: Error: A fatal exception has occurred. Program will exit.
Feb 09 17:09:02 server elasticsearch[2199]:         at org.elasticsearch.tools.launchers.JvmErgonomics.flagsFinal(JvmErgonomics.java:118)
Feb 09 17:09:02 server elasticsearch[2199]:         at org.elasticsearch.tools.launchers.JvmErgonomics.finalJvmOptions(JvmErgonomics.java:86)
Feb 09 17:09:02 server elasticsearch[2199]:         at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:59)
Feb 09 17:09:02 server elasticsearch[2199]:         at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:92)
Feb 09 17:09:02 server systemd[1]: elasticsearch.service: Main process exited, code=exited, status=1/FAILURE
Feb 09 17:09:02 server systemd[1]: elasticsearch.service: Failed with result 'exit-code'.
Feb 09 17:09:02 server systemd[1]: Failed to start Elasticsearch.

À ce stade, je fais une nouvelle installation . Impossible de trouver la solution dont j'ai besoin pour continuer à travailler ...


0 commentaires

0
votes

Premièrement, je ne savais pas pourquoi le fichier gc.log n'était pas présent. Avez-vous changé le chemin du dossier des journaux ou quelque chose? Le chemin d'accès gc.log peut être défini dans le fichier jvm.options . Par défaut, les journaux ES et les journaux de récupération de place java sont introduits dans le dossier des journaux du répertoire $ ES_HOME.

À propos de la perspective user , la recherche élastique ne peut pas être exécutée en tant qu'utilisateur root. strong> Donc, à partir du répertoire ES, il montre que vous avez créé un utilisateur elasticsearch et que vous essayez d'exécuter le cluster par cet utilisateur.

Le problème ici peut être résolu en changeant les permissions des fichiers dans le répertoire ES auquel il appartient. Maintenant, le fichier gc.log appartient à l'utilisateur root et il n'est pas accessible par l'utilisateur elasticsearch.

Essayez ceci: sudo chown -R

Ici, cela devient: sudo chown elasticsearch elasticsearch / -R

Si le problème persiste, vérifiez les jvm.options fichier si tout est configuré correctement. À moins que vous ne changiez l'option -Xloggc: logs / gc.log , le gc.log ne poussera pas vers / var / log .

Feb 09 17:09:02 server elasticsearch[2199]: Invalid -Xlog option '-Xlog:gc*,gc+age=trace,safepoint:file=/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m', see error log for details.

Votre journal dit, l'option est donnée comme file = / var / log / elasticsearch / gc.log . Corrigez toute mauvaise configuration selon la documentation: https: // www.elastic.co/guide/en/elasticsearch/reference/master/jvm-options.html


0 commentaires

1
votes

Assurez-vous que vous exécutez CMD en tant qu'administrateur .


2 commentaires

Remarque: les réponses très brèves et / ou des questions adressées à l'affiche doivent probablement être des commentaires. Vous n'avez besoin que de 50 points de répétition pour commenter sous une question - pouvez-vous déplacer cela là-bas?


Je vais respectueusement en désaccord ici @ Tyler2P. C'est une réponse complète dans mon cas et probablement pour beaucoup d'autres.