Detaillierte Erläuterung der Überwachung des Jenkins-Prozesses basierend auf Zabbix

Detaillierte Erläuterung der Überwachung des Jenkins-Prozesses basierend auf Zabbix

1. Überwachungsarchitekturdiagramm

2. Umsetzungsideen

  • Installieren Sie das Metrics-Plugin auf Jenkins, um Jenkins die Bereitstellung der Metrics-API zu ermöglichen.
  • Schreiben Sie Python-Code, um Daten von der API abzurufen und die Daten in ein Format zu analysieren, das Zabbix erkennen kann.
  • Konfigurieren Sie den Zabbix-Server und -Agenten für die Überwachung und Alarmierung

3. Spezifische Konfiguration

1. Installieren Sie das Jenkins Metrics-Plugin

Downloadadresse des Plugins: http://updates.jenkins-ci.org/download/plugins/metrics/

Installieren Sie das Plugin „Metrics“. In der Systemkonfiguration gibt es eine zusätzliche Konfiguration „Metrics“, wie unten gezeigt:


Die Konfigurationselemente sind nicht kompliziert. Wir müssen auf „Generieren …“ klicken, um einen Zugriffsschlüssel zu generieren (denken Sie daran, ihn nach der Generierung zu speichern). Dieser Schlüssel wird zur Identitätsüberprüfung verwendet, die wir später verwenden werden.

Nach dem Speichern geben wir die URL im Browser ein: http://jenkins.local,me/metrics/<der neu generierte Zugriffsschlüssel>, um zu überprüfen, ob Jenkins Metriken offengelegt hat. Wenn Sie das folgende Bild sehen, können Sie mit dem nächsten Schritt fortfahren:

1.1 Einführung in das Metrics-Plugin

Das Metrics-Plugin wird basierend auf Dropwizard/Metrics implementiert. Es stellt Messdaten über vier Schnittstellen bereit: /metrics, /ping, /threads, /healthcheck.

1.2 Metrik-Plugin: Einführung in die /metrics-Schnittstelle

Klicken Sie im obigen Bild auf den Metrik-Link (http://jenkins.local.me/metrics/<Access Key>/metrics). Dadurch werden die folgenden Metrikdaten angezeigt:

{
 Version: "4.0.0",
 Messgeräte: {...},
 Zähler: {...},
 Histogramme: {...},
 Meter: {...},
 Timer: {...}
}

Messgeräte: Der momentane Wert einer Metrik, zum Beispiel die Gesamtzahl der aktuellen Jenkins-Executoren (jenkins.executor.count.value)
Zähler: Der Gesamtwert einer Metrik, beispielsweise die Anzahl aktiver HTTP-Anforderungsverbindungen (http.activeRequests)
Zähler: Die Wahrscheinlichkeit, dass ein Ereignis über einen bestimmten Zeitraum eintritt, z. B. die Anzahl der erfolgreich von Jenkins pro Minute ausgeführten Aufgaben (jenkins.runs.success.m1_rate).
Histogramm: Verteilung statistischer Indikatoren. Beispiel: Verteilung der Anzahl der Jenkins-Executoren (jenkins.executor.count.history)
Timer: Die Dauer einer Metrik. Beispiel: Wartezeit der Jenkins-Aufgabe (jenkins.job.waiting.duration)

1.3 Andere Schnittstellen des Metrics-Plugins

/ping: Die Schnittstelle gibt „pong“ zurück, was bedeutet, dass Jenkins aktiv ist, wie unten gezeigt:

/threads: Gibt Jenkins-Thread-Informationen zurück

/healthcheck: Gibt die folgenden Metriken zurück:

{
 "Festplattenspeicherplatz" : {
  "gesund" : wahr
 },
 "Plugins" : {
  "gesund" : wahr,
  "message" : "Keine fehlgeschlagenen Plugins"
 },
 "temporärer Speicherplatz" : {
  "gesund" : wahr
 },
 "Thread-Deadlock" : {
  "gesund" : wahr
 }
}

Der Zabbix-Server sammelt Daten durch Kommunikation mit dem Zabbix-Agenten. Der Zabbix-Agent ist in zwei Modi unterteilt: passiv und aktiv. Wir verwenden den passiven Modus, was bedeutet, dass der Zabbix-Server den Agenten nach Daten fragt.
Daher müssen wir ein Skript einfügen, um Jenkins-Indikatordaten auf dem Computer abzurufen, auf dem sich der Zabbix-Agent befindet. Konfigurieren Sie dann den Zabbix-Server so, dass er regelmäßig Daten vom Agenten abruft, und konfigurieren Sie schließlich den Auslöser, um den Alarm zu implementieren.

2.1 Erstellen Sie eine Überwachungsvorlage und verknüpfen Sie sie mit einer Hostgruppe


2.2 Überwachungselemente erstellen

Hier müssen wir erklären, warum einige der Optionen auf diese Weise ausgefüllt sind:

  • Typ: Dies ist der Typ der vom Zabbix-Server erfassten Metriken. Wir wählen den Zabbix-Agenten, wie oben erwähnt.
  • Schlüsselwert: Da der Indikator, den wir überwachen möchten, nicht von Zabbix vordefiniert ist. Daher werden benutzerdefinierte Parameter benötigt, um Jenkins-Indikatoren zu überwachen. Der für den Schlüssel eingetragene Wert lautet: jenkins.metrics[gauges.jenkins.node.count.value.value]. jenkins.metrics ist der eigentliche Schlüsselname, der ausgeführt werden muss. Die [] sind die Parameter, die an den Befehl übergeben werden, der der Taste entspricht. Für Anfänger ist dieser Teil von Zabbix sehr schwer zu verstehen. Vielleicht ist es so leichter zu verstehen: Wenn Sie zur Implementierung der Überwachung benutzerdefinierte Parameter verwenden, sendet der Zabbix-Server diesen Schlüssel an den Agenten, und dann führt der Agent die angegebene Logik gemäß diesem Schlüssel aus, um Indikatordaten zu erhalten. Diese Logik ist normalerweise ein Skript (Shell-Befehl oder Python-Skript usw.). Das Skript kann auch Parameter übergeben, und die Werte in [] sind die an das Skript übergebenen Parameter.
  • Informationstyp: Der Datentyp der Überwachungsdaten. Da dieses Überwachungselement die Anzahl der Jenkins-Knoten überwacht, wird eine numerische Ganzzahl verwendet.
  • Aktualisierungsintervall: bezieht sich darauf, wie oft der Zabbix-Server Daten vom Agenten abruft.

Zu diesem Zeitpunkt wurde der Zabbix-Server konfiguriert. Sie können unter „Überwachung“ -> „Neueste Daten“ prüfen, ob die neuesten Daten vorliegen, und dann ein Dashboard erstellen, um die Daten grafisch darzustellen. Auch andere Überwachungselemente können auf diese Weise konfiguriert werden.

Überwachungsskriptcode

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Verwenden von Zabbix zum Überwachen des Ogg-Prozesses (Windows-Plattform)
  • Detaillierte Erläuterung des Prozesses der aktiven, passiven und Webüberwachung von Zabbix im verteilten Überwachungssystem
  • Das verteilte Überwachungssystem Zabbix verwendet SNMP- und JMX-Kanäle zum Sammeln von Daten
  • Detaillierte Erläuterung des Zabbix-Überwachungsstatus des SQL Server-Dienstes
  • So überwachen Sie MySQL mit Zabbix
  • Detailliertes Tutorial zum Upgrade von Zabbix Monitoring 4.4 auf 5.0
  • Detaillierte Schritte zum Hinzufügen von Hosts, die Sie in Zabbix überwachen müssen
  • Beispielcode zum Konfigurieren von Überwachungselementen und aggregierten Grafiken in Zabbix
  • Verwenden von Zabbix zum Überwachen des Ogg-Prozesses (Linux-Plattform)

<<:  MySQL-Kill-Befehl – ​​Verwendungshandbuch

>>:  Vollständiges HTML des Upload-Formulars mit Bildvorschau

Artikel empfehlen

Zusammenfassung zur Anwendung dekorativer Elemente im Webdesign

<br />Vorwort: Bevor Sie dieses Tutorial les...

...

7 interessante Möglichkeiten, versteckte Elemente in CSS zu erreichen

Vorwort Die Ähnlichkeiten und Unterschiede zwisch...

So wechseln Sie in Linux effizient zwischen Verzeichnissen

Wenn es um den Verzeichniswechsel unter Linux geh...

Zusammenfassung der Wissenspunkte zu MySQL-Index, Sperre und Transaktion

Dieser Artikel fasst die Wissenspunkte zu MySql-I...

Verwendung des Linux-Stat-Befehls

1. Befehlseinführung Der Befehl stat wird verwend...

Methode zum Knacken der Registrierung der FlashFXP-FTP-Clientsoftware

Die Downloadadresse von FlashFXP lautet: https://...

Detaillierte Erklärung des Vue2 Cube-UI-Zeitwählers

Inhaltsverzeichnis Vorwort 1. Anspruch und Wirkun...

Installation und Verwendung von Vue

Inhaltsverzeichnis 1. Vue-Installation Methode 1:...

Funktionen in TypeScript

Inhaltsverzeichnis 1. Funktionsdefinition 1.1 Fun...

Starten Sie eine lokale Kubernetes-Umgebung mit Kind und Docker

einführen Haben Sie schon einmal einen ganzen Tag...