Installation Elasticsearch & Kibana

Installation Elasticsearch

Procédure d’installation


Se reporter à la documentation officielle pour des environnements de production.

Cette partie décrit comment installer Elasticsearch afin de l’utiliser comme backend FlowerDocs.


Afin d’installer Elasticsearch, il est nécessaire de :

  • Télécharger Elasticsearch à partir du site officiel

  • Extraire l’archive elasticsearch-5.2.1.zip dans un répertoire ${ES_HOME}


Ensuite, pour configurer Elasticsearch, éditez le fichier ${ES_HOME}/config/elasticsearch.yml tel que :

  • Pour définir le nom du cluster Elasticsearch, dé-commentez la propriété cluster.name et modifiez sa valeur par flower-es-dev
  • Dans le cas d’un cluster Elasticsearch, dé-commentez la propriété node.name et modifiez sa valeur par celle de votre choix (ex: node-1)
  • Si plusieurs noeuds Elasticsearch sont déployés sur la même machine, il est nécessaire de modifier la valeur de la propriété http.port
  • Ajoutez la propriété action.auto_create_index: false
  • Pour accéder à Elasticsearch depuis un serveur distant, il est nécessaire de dé-commenter la propriété network.host et de définir une des valeurs suivantes :
    • 0.0.0.0
    • nom DNS
    • adresse IP


Pour terminer, démarrez Elasticsearch en allant dans le dossier ${ES_HOME}/bin puis en exécutant le script elasticsearch ou elasticsearch.bat (selon le système d’exploitation)



Pour vérifier son bon fonctionnement, allez sur la page http://localhost:9200/

Sécurité

Suite à la découverte d’une vulnérabilité dans la bibliothèque de journalisation Log4j, la configuration de la journalisation doit impérativement être modifiée telle que :

  • Editer le fichier config/log4j2.properties
  • Utiliser la syntaxe %m{nolookups} pour afficher le message dans le journal


Exemple de configuration Log4j

status = error

# log action execution errors for easier debugging
logger.action.name = org.elasticsearch.action
logger.action.level = debug

appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m{nolookups}%n

appender.rolling.type = RollingFile
appender.rolling.name = rolling
appender.rolling.fileName = ${sys:es.logs}.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%.-10000m{nolookups}%n
appender.rolling.filePattern = ${sys:es.logs}-%d{yyyy-MM-dd}.log
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true

rootLogger.level = info
rootLogger.appenderRef.console.ref = console
rootLogger.appenderRef.rolling.ref = rolling

appender.deprecation_rolling.type = RollingFile
appender.deprecation_rolling.name = deprecation_rolling
appender.deprecation_rolling.fileName = ${sys:es.logs}_deprecation.log
appender.deprecation_rolling.layout.type = PatternLayout
appender.deprecation_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%.-10000m{nolookups}%n
appender.deprecation_rolling.filePattern = ${sys:es.logs}_deprecation-%i.log.gz
appender.deprecation_rolling.policies.type = Policies
appender.deprecation_rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.deprecation_rolling.policies.size.size = 1GB
appender.deprecation_rolling.strategy.type = DefaultRolloverStrategy
appender.deprecation_rolling.strategy.max = 4

logger.deprecation.name = org.elasticsearch.deprecation
logger.deprecation.level = warn
logger.deprecation.appenderRef.deprecation_rolling.ref = deprecation_rolling
logger.deprecation.additivity = false

appender.index_search_slowlog_rolling.type = RollingFile
appender.index_search_slowlog_rolling.name = index_search_slowlog_rolling
appender.index_search_slowlog_rolling.fileName = ${sys:es.logs}_index_search_slowlog.log
appender.index_search_slowlog_rolling.layout.type = PatternLayout
appender.index_search_slowlog_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %marker%.-10000m{nolookups}%n
appender.index_search_slowlog_rolling.filePattern = ${sys:es.logs}_index_search_slowlog-%d{yyyy-MM-dd}.log
appender.index_search_slowlog_rolling.policies.type = Policies
appender.index_search_slowlog_rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.index_search_slowlog_rolling.policies.time.interval = 1
appender.index_search_slowlog_rolling.policies.time.modulate = true

logger.index_search_slowlog_rolling.name = index.search.slowlog
logger.index_search_slowlog_rolling.level = trace
logger.index_search_slowlog_rolling.appenderRef.index_search_slowlog_rolling.ref = index_search_slowlog_rolling
logger.index_search_slowlog_rolling.additivity = false

appender.index_indexing_slowlog_rolling.type = RollingFile
appender.index_indexing_slowlog_rolling.name = index_indexing_slowlog_rolling
appender.index_indexing_slowlog_rolling.fileName = ${sys:es.logs}_index_indexing_slowlog.log
appender.index_indexing_slowlog_rolling.layout.type = PatternLayout
appender.index_indexing_slowlog_rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %marker%.-10000m{nolookups}%n
appender.index_indexing_slowlog_rolling.filePattern = ${sys:es.logs}_index_indexing_slowlog-%d{yyyy-MM-dd}.log
appender.index_indexing_slowlog_rolling.policies.type = Policies
appender.index_indexing_slowlog_rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.index_indexing_slowlog_rolling.policies.time.interval = 1
appender.index_indexing_slowlog_rolling.policies.time.modulate = true

logger.index_indexing_slowlog.name = index.indexing.slowlog.index
logger.index_indexing_slowlog.level = trace
logger.index_indexing_slowlog.appenderRef.index_indexing_slowlog_rolling.ref = index_indexing_slowlog_rolling
logger.index_indexing_slowlog.additivity = false


Pour plus d’informations, consulter le bulletin de sécurité.

Installation Kibana


Se reporter à la documentation officielle pour des environnements de production.

Cette partie décrit comment installer Kibana afin de faire du reporting dans FlowerDocs.


Afin d’installer Kibana, il est nécessaire de :

  • Télécharger Kibana à partir du site officiel

  • Extraire l’archive dans un répertoire ${KIBANA_HOME}


Ensuite, pour configurer Kibana, éditez le fichier ${KIBANA_HOME}/config/kibana.yml tel que :

  • Dans le cas d’un Kibana sur un serveur différent d’Elasticsearch, dé-commentez la propriété elasticsearch.url et renseignez pour valeur l’url d’accès à Elasticsearch (par défaut http://localhost:9200)
  • Dé-commentez la propriété server.basePath et modifiez sa valeur par /flower-docs-gui/plugins/reporting.


Pour terminer, démarrez Kibana en allant dans le dossier ${KIBANA_HOME}/bin puis en exécutant le script kibana ou kibana.bat (selon le système d’exploitation)



Pour vérifier son bon fonctionnement, allez sur la page http://localhost:5601/

Configuration

Afin de configurer l’accès de FlowerDocs à Elasticsearch et Kibana, modifiez le fichier core.properties en fonction des paramètres renseignés lors de l’installation :

Propriété Valeur par défaut Description
es.nodes localhost:9300 Adresses des différents noeuds Elasticsearch séparées par une ,
es.cluster flower-es-dev Le nom du cluster Elasticsearch
es.username Le nom de l’utilisateur (optionnel)
es.password Le mot de passe de l’utilisateur (optionnel)
es.conflict.version true Utilise la notion de version pour gérer les modifications concurrentes
es.aggregation.max.size 100 Nombre de buckets maximum remonté par agrégation
kibana.url http://localhost:5601 URL d’accès à Kibana à partir du FlowerDocs Core