Skip to main content

Überwachen der Gesundheit Ihres Clusters

Um die Leistung und Redundanz eines GitHub Enterprise Server-Clusters sicherzustellen, können Sie den Zustand des Clusters überwachen.

Wer kann dieses Feature verwenden?

GitHub bestimmt die Berechtigung für das Clustering und muss die Konfiguration für die Lizenz Ihrer Instanz aktivieren. Das Clustering erfordert eine sorgfältige Planung und zusätzlichen Verwaltungsaufwand. Weitere Informationen finden Sie unter Informationen zu Clustering.

Informationen zum GitHub Enterprise Server Clusterzustand

Ein GitHub Enterprise Server Cluster besteht aus mehreren Knoten, wobei redundante Dienste über zwei oder mehr Knoten verteilt sind. Wenn ein Fehler bei einem einzelnen Dienst oder einem ganzen Knoten auftritt, sollten Benutzer*innen dies nicht bemerken. Fehler wirken sich auf Leistung und Redundanz aus, daher ist es wichtig, die Integrität deines Clusters zu überwachen. Sie können den Zustand Ihres Clusters mit einem Befehlszeilenwerkzeug oder einem externen Überwachungstool wie Nagios überwachen.

Sie können auch den Zustand individueller Knoten mithilfe von Node Eligibility Service überwachen. Weitere Informationen finden Sie unter Überwachen der Integrität deiner Clusterknoten mit dem Knotenberechtigungsdienst.

Clusterstatus manuell überprüfen

GitHub Enterprise Server verfügt über ein integriertes Befehlszeilenprogramm zur Überwachung des Clusterzustands. Wenn in der Verwaltungsshell der Befehl ghe-cluster-status ausgeführt wird, werden einige Zustandsprüfungen auf jedem Knoten ausgeführt, darunter die Verifizierung der Konnektivität und des Dienststatus. Die Ausgabe zeigt alle Testergebnisse einschließlich der Texte ok oder error an. Führe beispielsweise Folgendes aus, um nur fehlgeschlagene Tests anzuzeigen:

admin@ghe-data-node-0:~$ ghe-cluster-status | grep error
> mysql-replication ghe-data-node-0: error Stopped
> mysql cluster: error

Hinweis

Wenn keine fehlerhaften Tests vorliegen, gibt dieser Befehl nichts aus. Dies gibt an, dass der Cluster fehlerfrei ist.

Den Clusterstatus mithilfe des GitHub CLI überwachen

Sie können die Erweiterung gh es für GitHub CLI verwenden, um den Clusterstatus Ihres GitHub Enterprise Server zu überprüfen. Weitere Informationen findest du in der Dokumentation zur Verwendung der GHES-CLI und unter Verwalten Ihrer Instanz mithilfe der GitHub CLI.

Clusterstatus mit Nagios überwachen

Sie können Nagios so konfigurieren, dass GitHub Enterprise Server überwacht wird. Zusätzlich zur Überwachung der grundlegenden Konnektivität jedes Clusterknotens kannst du den Clusterstatus überprüfen, indem du Nagios für die Verwendung des Befehls ghe-cluster-status -n konfigurierst. Dies gibt eine Ausgabe in einem für Nagios verständlichen Format zurück.

Voraussetzungen

  • Linux-Host, auf dem Nagios ausgeführt wird.
  • Netzwerkzugriff auf den GitHub Enterprise Server Cluster.

Nagios-Host konfigurieren

  1. Generiere einen SSH-Schlüssel mit einer leeren Passphrase. Nagios verwendet dies, um sich am GitHub Enterprise Server Cluster zu authentifizieren.

    nagiosuser@nagios:~$ ssh-keygen -t ed25519
    > Generating public/private ed25519 key pair.
    > Enter file in which to save the key (/home/nagiosuser/.ssh/id_ed25519):
    > Enter passphrase (empty for no passphrase): LEAVE BLANK BY PRESSING ENTER
    > Enter same passphrase again: PRESS ENTER AGAIN
    > Your identification has been saved in /home/nagiosuser/.ssh/id_ed25519.
    > Your public key has been saved in /home/nagiosuser/.ssh/id_ed25519.pub.
    

    Achtung

    Ein SSH-Schlüssel ohne Passphrase kann ein Sicherheitsrisiko darstellen, wenn er für den Vollzugriff auf einen Host berechtigt ist. Begrenze die Autorisierung dieses Schlüssels auf einen einzelnen schreibgeschützten Befehl.

    Hinweis

    Wenn du eine Linux-Distribution verwendest, die den Ed25519-Algorithmus nicht unterstützt, verwende den folgenden Befehl:

    nagiosuser@nagios:~$ ssh-keygen -t rsa -b 4096
    
  2. Kopiere den privaten Schlüssel (id_ed25519) in den Startordner nagios und lege den entsprechenden Besitz fest.

    nagiosuser@nagios:~$ sudo cp .ssh/id_ed25519 /var/lib/nagios/.ssh/
    nagiosuser@nagios:~$ sudo chown nagios:nagios /var/lib/nagios/.ssh/id_ed25519
    
  3. Um den öffentlichen Schlüssel nur für die Ausführung des Befehls ghe-cluster-status -n zu autorisieren, verwende ein command=-Präfix in der Datei /data/user/common/authorized_keys. Ändere in der Verwaltungsshell oder auf einem beliebigen Knoten diese Datei, um den in Schritt 1 generierten öffentlichen Schlüssel hinzuzufügen. Beispiel: command="/usr/local/bin/ghe-cluster-status -n" ssh-ed25519 AAAA....

  4. Überprüfe die Konfiguration und kopiere sie auf jeden Knoten im Cluster, indem du ghe-cluster-config-apply auf dem Knoten ausführst, auf dem du die Datei /data/user/common/authorized_keys geändert hast.

    admin@ghe-data-node-0:~$ ghe-cluster-config-apply
    > Validating configuration
    > ...
    > Finished cluster configuration
    
  5. Um zu testen, ob das Nagios-Plug-in den Befehl erfolgreich ausführen kann, führe es auf dem Nagios-Host interaktiv aus.

    nagiosuser@nagios:~$ /usr/lib/nagios/plugins/check_by_ssh -l admin -p 122 -H HOSTNAME -C "ghe-cluster-status -n" -t 30
    > OK - No errors detected
    
  6. Erstelle eine Befehlsdefinition in deiner Nagios-Konfiguration.

Beispieldefinition

define command {
     command_name    check_ssh_ghe_cluster
     command_line    $USER1$/check_by_ssh -H $HOSTADDRESS$ -C "ghe-cluster-status -n" -l admin -p 122 -t 30
}
  1. Fügen Sie diesen Befehl einer Dienstdefinition für einen Knoten im GitHub Enterprise Server Cluster hinzu.

Beispieldefinition

define host{
     use                     generic-host
     host_name               ghe-data-node-0
     alias                   ghe-data-node-0
     address                 10.11.17.180
     }

define service{
       use                             generic-service
       host_name                       ghe-data-node-0
       service_description             GitHub Cluster Status
       check_command                   check_ssh_ghe_cluster
       }

Nachdem du Nagios die Definition hinzugefügt hast, wird die Dienstüberprüfung entsprechend deiner Konfiguration ausgeführt. Du solltest den neu konfigurierten Dienst auf der Nagios-Weboberfläche anzeigen können.