Configuration Logs ElasticSearch

De EjnTricks

Cet article présente la configuration de ces traces pour une installation de ElasticSearch.

Pour rappel, l'installation a été réalisée manuellement avec une externalisation du fichier de configuration.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Study icon.png Pré requis

La configuration des fichiers traces s'effectue à l'aide de deux fichiers dans le répertoire config. Le premier, elasticsearch.yml, permet de positionner des variables d'environnements. Le second, log4j2.properties contient la configuration de l'outil Log4J2.

Dans le cadre de cette installation, le répertoire config a été externalisé dans le répertoire /var/opt/elasticsearch/common.


Icon-Configuration-Settings.png Variables environnement

La première configuration a mettre en place concerne l'option path.logs dans la section Paths du fichier elasticsearch.yml. Il faut spécifier l'emplacement du répertoire où sont créés les fichiers traces. Afin de centraliser les logs, les fichiers seront placés dans le répertoire /var/log/elasticsearch.

#
# Path to log files:
#
#path.logs: /path/to/logs
path.logs: /var/log/elasticsearch

Il est nécessaire de préparer l'environnement.

#sudo mkdir /var/log/elasticsearch
#sudo chown elasticsearch:adm /var/log/elasticsearch
#sudo chmod o-rwx /var/log/elasticsearch

A noter, les permissions sont accordées au groupe adm comme cela est d'usage pour ce type de fichier sur une instance Linux.


Mylogs-icon.png Log4J2

ElasticSearch utilise le framework Log4j2 pour générer les traces d'exécution. La configuration s'effectue simplement à travers le fichier log4j2.properties dans le répertoire config.

La configuration standard permet de générer un ensemble de fichier.

  • CLUSTER.logCLUSTER est remplacé par le nom du cluster configuré, avec une rotation tous les 128 Mo et journalière;
  • CLUSTER_deprecation.logCLUSTER est remplacé par le nom du cluster configuré, avec une rotation tous les gigas;
  • CLUSTER}_index_search_slowlog.logCLUSTER est remplacé par le nom du cluster configuré, avec une rotation journalière;
  • CLUSTER}_index_indexing_slowlog.logCLUSTER est remplacé par le nom du cluster configuré, avec une rotation journalière;


Java format icon.png JVM

Un autre type de trace est configuré pour le garbage collector de la JVM dans le fichier jvm.properties, dans le répertoire config de la distribution.

En fonction de la version utilisée, l'option loggc (version 8 de Java) ou log:gc (version 9) doit être modifiée. Seul le répertoire de stockage est modifié, avec l'emplacement /var/log/elasticsearch au lieu du sous répertoire logs de l'instance.

## JDK 8 GC logging

8:-XX:+PrintGCDetails
8:-XX:+PrintGCDateStamps
8:-XX:+PrintTenuringDistribution
8:-XX:+PrintGCApplicationStoppedTime
#8:-Xloggc:logs/gc.log
8:-Xloggc:/var/log/elasticsearch/gc.log
8:-XX:+UseGCLogFileRotation
8:-XX:NumberOfGCLogFiles=32
8:-XX:GCLogFileSize=64m

# JDK 9+ GC logging
#9-:-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m
9-:-Xlog:gc*,gc+age=trace,safepoint:file=/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m
# due to internationalization enhancements in JDK 9 Elasticsearch need to set the provider to COMPAT otherwise
# time/date parsing will break in an incompatible way for some date patterns and locals
9-:-Djava.locale.providers=COMPAT