2015-07-30 8 views
26

Recentemente il mio jenkins.log ha iniziato a diventare molto grande, molto rapidamente, pieno di eccezioni sulla risoluzione DNS. Ho tentato di utilizzare logrotate, ma il file di registro cresce troppo velocemente anche per essere ruotato, e mangia solo tutto il mio spazio su disco, il che fa sì che vari servizi falliscano perché non possono più scrivere file.Come impedire al log di Jenkins di diventare enorme?

Come evitarlo?

risposta

22

È possibile disattivare la registrazione di questi errori DNS modificando le impostazioni di registrazione in Jenkins.

Dall'interfaccia web Jenkins vai a:

Manage Jenkins -> System Log -> Log Levels (on the left) 

Aggiungere la seguente voce:

Name: javax.jmdns 

Level: off 

In questo modo è possibile mantenere presentano i DNS multicast, ma senza tutti i dati di registrazione.

+1

Qualche idea su come mantenere questo set quando si aggiorna Jenkins? – Siecje

+0

@Siecje puoi provare a utilizzare un file "logging.properties" per configurare la registrazione, come avviene in questa risposta: http://stackoverflow.com/a/6307666/2286664 –

20

Questo sembra essere dovuto al multicast DNS come spiegato qui: https://issues.jenkins-ci.org/browse/JENKINS-25369

Soluzione: aggiungere -Dhudson.DNSMultiCast.disabled=true a JAVA_ARGS.

PS: Sto rispondendo alla mia domanda qui su Stack Overflow perché non ho potuto trovare facilmente la risposta su Google, e sarà utile ad altre persone che gestiscono Jenkins.

+0

Non è necessario giustificare la risposta alla propria domanda - [è incoraggiata] (https://stackoverflow.com/help/self-answer) –

0

Modificare JAVA_ARGS in /etc/default/jenkins (posizione almeno per installazioni Debian/Ubuntu) per disabilitare la funzione di multicast DNS.

Modifica questo: JAVA_ARGS="-Djava.awt.headless=true"

A tal: JAVA_ARGS="-Djava.awt.headless=true -Dhudson.DNSMultiCast.disabled=true"

e riavviare il servizio service jenkins restart

1

è possibile collegare il Jenkins inizializzazione con il file init.groovy nella cartella home Jenkins e modificare i livelli di registrazione in modo permanente con esso. Le modifiche verranno mantenute anche se Jenkins viene riavviato. C'è un semplice contenuto del file:

import java.util.logging.Level 
import java.util.logging.Logger 

Logger.getLogger("").setLevel(Level.SEVERE) 
Logger.getLogger("org.apache.sshd").setLevel(Level.SEVERE) 
Logger.getLogger("winstone").setLevel(Level.SEVERE) 

È possibile modificare il nome del registratore e il livello in modo che si adatta alle vostre esigenze. Vedi my article on this topic per maggiori dettagli.

Problemi correlati