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

Detaillierte Schritte zur Installation von Mysql5.7.19 mit yum auf Centos7

In der Yum-Quelle von Centos7 ist standardmäßig k...

Detaillierte Erläuterung der MySQL-Mehrtabellenabfrage

Die Zeit vergeht immer überraschend schnell, ohne...

Warum brauchen wir Map, wenn wir in JavaScript bereits Object haben?

Inhaltsverzeichnis 1. Behandeln Sie Objekte nicht...

Implementierung eines einfachen Timers in JavaScript

In diesem Artikelbeispiel wird der spezifische Ja...

Lösen Sie das Problem, dass Docker das MySQL-Image zu langsam zieht

Nachdem wir eine halbe Stunde lang versucht hatte...

Detaillierte Erklärung des Json-Formats

Inhaltsverzeichnis Ein JSON basiert auf zwei Stru...

So verwenden Sie die Shell, um Batchvorgänge auf mehreren Servern auszuführen

Inhaltsverzeichnis SSH-Protokoll SSH Verbindungsp...

Grafisches Tutorial zur Deinstallation und Installation von MySQL unter Linux

Dies ist mein erster Blog. Ich bin seit zwei Jahr...

Docker verwendet den Prune-Befehl, um das Nicht-Image zu bereinigen

Inhaltsverzeichnis Die Entstehung und Verwirrung ...

So erstellen Sie schnell einen FTP-Dateidienst mit FileZilla

Um die Speicherung und den Zugriff auf Dateien zu...