Répertoire logs Nifi
Cet article présente la configuration standard de l'emplacement des fichiers traces.
L'instance NiFi est déployée sous C:\Apps\Nifi\1.9.2
.
Votre avis
Nobody voted on this yet
|
|
Etude
Par défaut, trois fichiers trace sont créés dans le répertoire logs
d'une instance NiFi :
- nifi-app.log
- nifi-bootstrap.log
- nifi-user.log
Or pour centraliser les fichiers traces, il peut être nécessaire de stocker ces fichiers dans un autre répertoire, comme /var/log
sur un système Linux par exemple.
Configuration
Le système de trace embarqué est Logback et le fichier de configuration logback.xml
, dans le répertoire conf
, est utilisé pour spécifier les fichiers traces mis en place.
Par exemple, la configuration de la trace nifi-app.log
est la suivante :
<appender name="APP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${org.apache.nifi.bootstrap.config.log.dir}/nifi-app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--
For daily rollover, use 'app_%d.log'.
For hourly rollover, use 'app_%d{yyyy-MM-dd_HH}.log'.
To GZIP rolled files, replace '.log' with '.log.gz'.
To ZIP rolled files, replace '.log' with '.log.zip'.
-->
<fileNamePattern>${org.apache.nifi.bootstrap.config.log.dir}/nifi-app_%d{yyyy-MM-dd_HH}.%i.log</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<!-- keep 30 log files worth of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<immediateFlush>true</immediateFlush>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
</encoder>
</appender>
Donc, le répertoire est spécifié à l'aide de la variable d'environnement org.apache.nifi.bootstrap.config.log.dir
.
Démarrage
Pour un démarrage sous Windows, la console indique les messages suivants.
c:\Apps\Nifi\1.9.2>bin\run-nifi.bat The JAVA_HOME environment variable is not defined correctly. Instead the PATH will be used to find the java executable. 2019-10-15 09:28:09,936 INFO [main] org.apache.nifi.bootstrap.Command Starting Apache NiFi... 2019-10-15 09:28:09,936 INFO [main] org.apache.nifi.bootstrap.Command Working Directory: c:\Apps\Nifi\1997F9~1.2 2019-10-15 09:28:09,937 INFO [main] org.apache.nifi.bootstrap.Command Command: java -classpath c:\Apps\Nifi\1997F9~1.2\.\conf; c:\Apps\Nifi\1997F9~1.2\.\lib\javax.servlet-api-3.1.0.jar;c:\Apps\Nifi\1997F9~1.2\.\lib\jcl-over-slf4j-1.7.25.jar; c:\Apps\Nifi\1997F9~1.2\.\lib\jetty-schemas-3.1.jar;c:\Apps\Nifi\1997F9~1.2\.\lib\jul-to-slf4j-1.7.25.jar; c:\Apps\Nifi\1997F9~1.2\.\lib\log4j-over-slf4j-1.7.25.jar;c:\Apps\Nifi\1997F9~1.2\.\lib\logback-classic-1.2.3.jar; c:\Apps\Nifi\1997F9~1.2\.\lib\logback-core-1.2.3.jar;c:\Apps\Nifi\1997F9~1.2\.\lib\nifi-api-1.9.2.jar; c:\Apps\Nifi\1997F9~1.2\.\lib\nifi-framework-api-1.9.2.jar;c:\Apps\Nifi\1997F9~1.2\.\lib\nifi-nar-utils-1.9.2.jar; c:\Apps\Nifi\1997F9~1.2\.\lib\nifi-properties-1.9.2.jar;c:\Apps\Nifi\1997F9~1.2\.\lib\nifi-runtime-1.9.2.jar; c:\Apps\Nifi\1997F9~1.2\.\lib\slf4j-api-1.7.25.jar -Dorg.apache.jasper.compiler.disablejsr199=true -Xmx512m -Xms512m -Djavax.security.auth.useSubjectCredsOnly=true -Djava.security.egd=file:/dev/urandom -Dsun.net.http.allowRestrictedHeaders=true -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -XX:+UseG1GC -Djava.protocol.handler.pkgs=sun.net.www.protocol -Dnifi.properties.file.path=c:\Apps\Nifi\1997F9~1.2\.\conf\nifi.properties -Dnifi.bootstrap.listen.port=59307 -Dapp=NiFi -Dorg.apache.nifi.bootstrap.config.log.dir=c:\Apps\Nifi\1997F9~1.2\bin\..\\logs org.apache.nifi.NiFi
Attention, la console indique le démarrage d'un nouveau process Java. Mais celui-ci est bien exécuté depuis un process en cours, le message vient de la classe org.apache.nifi.bootstrap.Command
. Cependant il est constaté que la valeur c:\Apps\Nifi\1997F9~1.2\bin\..\\logs
est spécifiée sur la variable d'environnement org.apache.nifi.bootstrap.config.log.dir
.
Il est également important de regarder les scripts de démarrage, run-nifi.bat
sous Windows ou nifi.sh
sous Linux.
Concernant <cod>run-nifi.bt</code>, les instructions suivantes sont mises en place.
set JAVA_ARGS=-Dorg.apache.nifi.bootstrap.config.log.dir=%NIFI_LOG_DIR% -Dorg.apache.nifi.bootstrap.config.pid.dir=%NIFI_PID_DIR% -Dorg.apache.nifi.bootstrap.config.file=%BOOTSTRAP_CONF_FILE%
Donc la variable est spécifiée à l'aide d'une autre variable d'environnement NIFI_LOG_DIR
. Or celle-ci est mise en place dans le script nifi-env.bat
, qui est exécuté au démarrage.
set NIFI_ROOT=%~sdp0..\
rem The directory for the NiFi pid file
set NIFI_PID_DIR=%NIFI_ROOT%\run
rem The directory for NiFi log files
set NIFI_LOG_DIR=%NIFI_ROOT%\logs
Pour les systèmes Linux, les scripts de démarrages sont légèrement différent. Le fichier nifi.sh
contient les instructions suivantes pour configurer les emplacements communs.
#setup directory parameters
BOOTSTRAP_LOG_PARAMS="-Dorg.apache.nifi.bootstrap.config.log.dir='${NIFI_LOG_DIR}'"
BOOTSTRAP_PID_PARAMS="-Dorg.apache.nifi.bootstrap.config.pid.dir='${NIFI_PID_DIR}'"
BOOTSTRAP_CONF_PARAMS="-Dorg.apache.nifi.bootstrap.config.file='${BOOTSTRAP_CONF}'"
La variable NIFI_LOG_DIR
est mise en place dans le script nifi-env.sh
.
export NIFI_HOME=$(cd "${SCRIPT_DIR}" && cd .. && pwd)
#The directory for the NiFi pid file
export NIFI_PID_DIR="${NIFI_HOME}/run"
#The directory for NiFi log files
export NIFI_LOG_DIR="${NIFI_HOME}/logs"
Lors du démarrage de NiFi
, les variables d'environnement passées au script seront fournis au process démarré par la classe org.apache.nifi.bootstrap.Command
.
Configuration
Afin de spécifier un emplacement différent, il suffit donc de modifier la déclaration de la variable NIFI_LOG_DIR
dans les scripts nifi-env.bat
ou nifi.sh
, en fonction de l'OS.
Dans le cadre de Linux, il suffit donc de modifier le script ainsi pour générer les fichiers traces dans le répertoire /var/log/nifi
.
export NIFI_HOME=$(cd "${SCRIPT_DIR}" && cd .. && pwd)
#The directory for the NiFi pid file
export NIFI_PID_DIR="${NIFI_HOME}/run"
#The directory for NiFi log files
#export NIFI_LOG_DIR="${NIFI_HOME}/logs"
export NIFI_LOG_DIR="/var/log/nifi"