GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Jenkins-Protokolle – Anzeigen und Anpassen

Einführung

Jenkins bietet eine Open-Source-CI/CD-Automatisierungslösung für Entwickler. Eine der Funktionen, die Jenkins bietet, ist die automatische Protokollierung der Leistung von Builds.

Das Überprüfen von Jenkins-Protokollen kann eine Fülle von Einblicken in die Funktionsweise Ihres Codes bieten. Dies ist besonders nützlich, wenn Sie Probleme identifizieren oder nach Elementen suchen, die besser optimiert werden können.

In diesem Tutorial zeigen wir Ihnen, wie Sie Jenkins-Protokolldateien finden, anzeigen und bearbeiten.

Voraussetzungen

  • Eine installierte und einsatzbereite Kopie von Jenkins.
  • Zugriff auf einen Webbrowser.
  • Zugriff auf einen Texteditor wie Nano, Vim oder Notepad.

Wo werden Jenkins-Protokolle gespeichert?

Wo Jenkins-Protokolle gespeichert werden, hängt vom zugrunde liegenden Betriebssystem ab.

  • Linux und macOS - Jenkins-Protokolle werden zusammen mit anderen Protokolldateien in /var/log gespeichert Verzeichnis.
  • Windows - Jenkins-Protokolldateien werden im Jenkins-Home-Ordner gespeichert, der während der Installation festgelegt wird.

Es ist möglich, den Speicherort des Jenkins-Protokolls zu ändern, indem Sie seine Dienstkonfigurationsdatei ändern. Name und Speicherort dieser Datei hängen vom zugrunde liegenden Betriebssystem ab:

  • Debian-basiertes System - /etc/default/Jenkins
  • Red Hat-basierte Systeme - /etc/sysconfig/Jenkins
  • Mac OS - org.jenkins-ci.plist
  • Windows - [JENKINS-HOME]/jenkins.xml

Wie werden Jenkins-Protokolle angezeigt?

Um eine Jenkins-Protokolldatei anzuzeigen, öffnen Sie sie mit einem Texteditor Ihrer Wahl. Nachfolgend sind die Standardspeicherorte der Jenkins-Protokolldateien je nach Betriebssystem aufgeführt.

Jenkins-Benutzeroberfläche

Standardmäßig führt Jenkins ein konstantes Protokoll aller Aktivitäten als Teil des Jenkins-Dashboards.

1. Um auf dieses Protokoll zuzugreifen, klicken Sie auf Jenkins verwalten Link auf der rechten Seite des Dashboards.

2. Klicken Sie auf das Systemprotokoll Schaltfläche in den Statusinformationen Abschnitt.

3. Klicken Sie auf Alle Jenkins-Protokolle Link zum Zugriff auf das Standardprotokoll.

Jede Zeile des Protokolls enthält die Uhrzeit und das Datum der Aktion, die Protokollierungsebene, das Element von Jenkins, das die Aktion ausführt, und die Aktion, die ausgeführt wird, gefolgt von einer kurzen Beschreibung.

Linux

Der Standardspeicherort für Jenkins-Protokolle unter Linux ist /var/log/jenkins/jenkins.log . Um die Protokolldatei anzuzeigen, öffnen Sie sie mit einem Texteditor wie Nano:

sudo nano /var/log/jenkins/jenkins.log

Windows

Unter Windows werden Jenkins-Protokolldateien als jenkins.out gespeichert (Konsolenausgabeprotokolle) und jenkins.err (Fehlerprotokolle) im Jenkins-Home-Ordner.

Der Speicherort des Jenkins-Home-Ordners wird während der Installation angegeben. Der Standardspeicherort ist C:\ProgramData\Jenkins\.jenkins .

Wichtig: Die ProgramData Ordner ist standardmäßig ausgeblendet. Stellen Sie sicher, dass Sie die Anzeige versteckter Elemente aktivieren, bevor Sie versuchen, Jenkins-Protokolle anzuzeigen.

Wenn Sie nicht sicher sind, welchen Ordner Sie als Jenkins-Home-Ordner festgelegt haben, klicken Sie auf Jenkins verwalten Link auf der linken Seite des Jenkins-Dashboards.

Unter der Systemkonfiguration Klicken Sie im Abschnitt auf System konfigurieren Schaltfläche.

Der Speicherort des Jenkins-Home-Ordners ist oben auf der Seite unter Home-Verzeichnis aufgeführt .

MacOS

Unter MacOS befinden sich Jenkins-Protokolle unter /var/log/jenkins/jenkins.log standardmäßig:

sudo nano /var/log/jenkins/jenkins.log

Docker

Zum Anzeigen von Jenkins-Protokollen in Docker muss Jenkins in einem getrennten Container ausgeführt werden. Öffnen Sie Jenkins-Protokolle mithilfe der logs von Docker Befehl und die ID für den getrennten Container:

docker logs [container ID]

Wie aktiviere ich Debug-Protokolle in Jenkins?

Jenkins ermöglicht es Benutzern, neue Protokollrekorder einzurichten, wenn sie das Systemprotokoll verwenden Seite. Diese Rekorder sammeln und zeigen Informationen zu bestimmten Elementen Ihres Codes an und Sie können sie feinabstimmen, um eine detailliertere Ausgabe zu liefern.

Wenn Sie ein detaillierteres Protokoll zur Verfügung haben, können Sie die Ursache potenzieller Fehler im Code leichter erkennen und bestimmen. Dies ist sehr hilfreich beim Debuggen von Problemen.

1. Um einen neuen Logrecorder einzurichten, klicken Sie zuerst auf Neuen Logrecorder hinzufügen Schaltfläche in den Protokollrekordern Abschnitt des Systemprotokolls Seite.

2. Geben Sie als nächstes den Namen des neuen Logrecorders ein und klicken Sie auf OK Taste. In diesem Beispiel nennen wir unseren Protokollrecorder Dig Debug .

3. Um die Ausgabe anzupassen, die der neue Protokollrecorder sammelt und anzeigt, klicken Sie auf Hinzufügen Schaltfläche, um einen neuen Logger hinzuzufügen. Verwenden Sie das Eingabefeld, um nach einem Element zu suchen, und wählen Sie die Protokollebene aus dem Dropdown-Menü aus. Im Allgemeinen ist es am besten, ALL zu verwenden oder FEIN Protokollebene für Debugging-Zwecke.

4. In unserem Beispiel möchten wir Plugins debuggen, die sich auf Git beziehen. Dazu fügen wir neue Logger hinzu, die diese Plugins überwachen, und setzen das Logging-Level auf ALL.

5. Wenn Sie mit dem Hinzufügen neuer Logger fertig sind, klicken Sie auf Speichern Schaltfläche, um den neuen Jenkins-Protokollrecorder zu speichern.

6. Nachdem Sie den neuen Log Recorder eingerichtet haben, öffnen Sie ihn, indem Sie in den Log Recorders auf seinen Namen klicken Sektion. Klicken Sie bei geöffnetem Protokollrekorder auf Protokollaufzeichnungen Link auf der linken Seite, um die neuen Protokolldatensätze zu überprüfen.

Welche Jenkins-Protokolle sollten Sie überwachen?

Bestimmte Ereignisse im Jenkins-Protokoll können auf Probleme mit dem Code oder der Jenkins-Anwendung selbst hinweisen. Die Überwachung dieser Ereignisse ist eine einfache Möglichkeit, Leistungsprobleme schnell zu diagnostizieren und zu verhindern.

Empfangen eines OutOfMemoryError Meldung zeigt an, dass Jenkins der Systemspeicher ausgegangen ist. Um dieses Problem zu beheben, verwenden Sie einen kleineren Java-Heap oder suchen Sie nach alten gespeicherten Daten unter:

[Jenkins URL]/administrativeMonitor/OldData/manage

Ein java.lang.OutOfMemoryError: GC overhead limit exceeded Fehler tritt auf, wenn der Java Garbage Collector sein Speicherlimit überschreitet. Eine schnelle Lösung besteht darin, alte Builds zu löschen, die möglicherweise Speicherplatz belegen.

Ein weiteres häufiges Problem ist der CPU-Verbrauch, angezeigt durch OutOfMemoryError: PermGen space Error. Sie können dies vermeiden, indem Sie die Anzahl der auf dem Master-Knoten ausgeführten Builds minimieren, den Build-Verlauf einschränken, sicherstellen, dass alle Jenkins-Plug-ins aktualisiert werden, und überwachen, wie andere Anwendungen die CPU verwenden.

Wie passe ich Jenkins-Protokolle an?

Die Formatierung von Jenkins-Protokollen kann das Lesen manchmal erschweren, insbesondere wenn höhere Protokollierungsstufen verwendet werden. Lange Pipelines mit Dutzenden oder Hunderten von Codezeilen stellen ebenfalls eine Herausforderung dar.

Unten ist ein Beispielprotokoll für eine einfache Pipeline, die die Build-Versionsnummer ausgibt:

In der obigen Ausgabe ist nicht leicht zu erkennen, wo eine Phase beginnt und endet. Der einzige Hinweis ist die stage Ausgabe am Anfang und // stage am Ende beides hellgrau dargestellt.

Hinzufügen einer Nachricht mit dem echo Der Befehl am Anfang einer Stufe erleichtert das Trennen verschiedener Stufen beim Betrachten der Konsolenausgabe. Auf diese Weise können Benutzer auch kurze Beschreibungen hinzufügen, wodurch die Ausgabe noch einfacher zu verstehen ist.

Eine andere Methode besteht darin, ein echo hinzuzufügen Befehl ohne Nachrichtentext. Dies erzeugt eine Leerzeile und macht die Ausgabe leichter lesbar.


Ubuntu
  1. Rotieren und archivieren Sie Protokolle mit dem Linux-Befehl logrotate

  2. Unterschied zwischen /var/log/messages, /var/log/syslog und /var/log/kern.log?

  3. Speicherorte gemeinsamer Protokolldateien und Konfigurationsdateien für cPanel-Dienste

  4. printk und Konsolenprotokollebene

  5. Anzeigen von Protokollen auf einem Remote-Linux-Server

Installieren und Konfigurieren von Jenkins unter Linux

So installieren und verwenden Sie Jenkins unter Ubuntu 18.04 und 16.04 LTS

So installieren und konfigurieren Sie Jenkins unter Ubuntu

Systemprotokolle

So installieren und konfigurieren Sie Jenkins in Ubuntu 20.04

So richten Sie die Protokollrotation mit Logrotate unter Linux ein und verwalten sie