Configuration Logs Nexus 3 : Différence entre versions
m |
(Aucune différence)
|
Version actuelle en date du 30 mai 2017 à 00:09
Le package Nexus
met en place un grand nombre de logs en fonction des briques logicielles embarquées. Cet article présente la configuration de ces traces ainsi que leur gestion.
Sommaire
Votre avis
Nobody voted on this yet
|
|
Paramétrage
Lors de l'installation du service, les fichiers logs ont été externalisés dans le répertoire /var/log/nexus3
, et un lien dans le répertoire de travail, emplacement sonatype-work/nexus3/log
a été créé.
Quatre fichiers de trace sont disponibles pour une instance nexus.
-
jvm.log
, trace de la JVM; -
karaf.log
, trace du containerKaraf
; -
nexus.log
, trace applicative; -
request.log
, trace d'accès.
Trace JVM
Le fichier jvm.log
est configuré depuis les options de la JVM, spécifiées dans le fichier bin/nexus.vmoptions
.
-Xms1200M
-Xmx1200M
-XX:MaxDirectMemorySize=2G
-XX:+UnlockDiagnosticVMOptions
-XX:+UnsyncloadClass
-XX:+LogVMOutput
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=../sonatype-work/nexus3
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp
-Duser.home=../sonatype-work/home3
-Dkaraf.startLocalConsole=false
Trace container
Le projet Karaf
est utilisé pour gérer les briques. Le fichier spécifique karaf.log
est configuré dans le fichier etc/karaf/custom.properties
.
#
# All the values specified here will override the default values given
# in config.properties.
#
karaf.systemBundlesStartLevel=50
#
# You can place any customized configuration here.
#
# A very small amount of logging before pax-logging is enabled ends up here
karaf.bootstrap.log=${karaf.data}/log/karaf.log
# early load of mvn: protocol config
${includes}=org.ops4j.pax.url.mvn.cfg
karaf.lock.class=org.sonatype.nexus.karaf.NexusFileLock
# Temporary workaround for https://issues.apache.org/jira/browse/FELIX-5184
felix.native.osname.alias.windowsserver2012=windows server 2012,win32
A noter que l'emplacement contient la variabe karaf.data
. A noter que celle-ci est configurée dans le fichier bin/nexus.vmoptions
avec la valeur ../sonatype-work/nexus3
. Par conséquent, l'emplacement de la trace sera ../sonatype-work/nexus3/log/karaf.log
.
Trace Applicative
La configuration du fichier trace nexus.log
est réalisée dans le fichier etc/logback/logback.xml
.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<jmxConfigurator/>
<appender name="osgi" class="org.ops4j.pax.logging.logback.appender.PaxAppenderDelegate"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{"yyyy-MM-dd HH:mm:ss,SSSZ"} %-5p [%thread] %mdc{userId:-*SYSTEM} %c - %m%n</pattern>
</encoder>
</appender>
<appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${karaf.data}/log/nexus.log</File>
<Append>true</Append>
<encoder>
<pattern>%d{"yyyy-MM-dd HH:mm:ss,SSSZ"} %-5p [%thread] %mdc{userId:-*SYSTEM} %c - %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${karaf.data}/log/nexus-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
<maxHistory>90</maxHistory>
</rollingPolicy>
</appender>
<appender name="metrics" class="org.sonatype.nexus.pax.logging.InstrumentedAppender"/>
<logger name="org.eclipse.jetty.webapp" level="INFO"/>
<logger name="org.eclipse.jetty.webapp.StandardDescriptorProcessor" level="WARN"/>
<logger name="org.apache.aries" level="WARN"/>
<logger name="org.apache.felix" level="WARN"/>
<logger name="org.apache.karaf" level="WARN"/>
<include file="${karaf.data}/etc/logback/logback-overrides.xml" optional="true"/>
<root level="${root.level:-INFO}">
<appender-ref ref="osgi"/>
<appender-ref ref="console"/>
<appender-ref ref="logfile"/>
<appender-ref ref="metrics"/>
</root>
</configuration>
A noter que comme pour le container, l'emplacement utilise la variable d'environnement karaf.data
.
De plus, une rotation journalière est mise en place, avec conservation de 90 jours.
Trace accès
Le fichier request.log
contient les traces d'accès à l'application, dont la configuration se trouve dans le fichier etc/logback/logback-access.xml
.
<?xml version="1.0"?>
<configuration>
<appender name="request.logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${karaf.data}/log/request.log</File>
<Append>true</Append>
<encoder class="org.sonatype.nexus.pax.logging.AccessPatternLayoutEncoder">
<pattern>%clientHost %l %user [%date] "%requestURL" %statusCode %bytesSent %elapsedTime "%header{User-Agent}"</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${karaf.data}/log/request-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
<maxHistory>90</maxHistory>
</rollingPolicy>
</appender>
<appender-ref ref="request.logfile"/>
</configuration>
A noter', la variable karaf.data
est encore utilisée pour configurer l'emplacement, ainsi qu'une rotation journalière.
Script purge des logs
Lors de la toute première installation de Nexus
en version 2.X
, un script de purge avait été mis en place pour palier le manque de rotation et purge des traces.
Cependant, avec la version 3.X
, ce script n'est plus nécessaire. La planification sous Anacron est donc supprimée.
#sudo rm /etc/cron.weekly/nexus_log_purge
Puis le script est supprimé.
#sudo rm /var/opt/nexus/nexus_log_purge.sh