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 :
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)
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
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 :
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)
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 |