Skip to main content

Überwachen der Integrität deines Clusters

Um die Leistung und Redundanz eines GitHub Enterprise Server-Clusters sicherzustellen, kannst du die Integrität des Clusters überwachen.

Wer kann dieses Feature verwenden?

GitHub bestimmt die Berechtigung zum Clustering und muss die Konfiguration für die Lizenz deiner Instanz aktivieren. Das Clustering erfordert eine sorgfältige Planung und zusätzlichen Verwaltungsaufwand. Weitere Informationen findest du unter Informationen zu Clustering.

Informationen zur GitHub Enterprise Server-Clusterintegrität

Ein GitHub Enterprise Server-Cluster umfasst mehrere Knoten mit redundanten Diensten, die auf 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. Du kannst die Integrität deines Clusters mit einem Befehlszeilenhilfsprogramm oder einem externen Überwachungstool wie Nagios überwachen.

Du kannst die Integrität einzelner Knoten auch mit 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 besitzt ein integriertes Befehlszeilendienstprogramm zum Überwachen 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

Note

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

Überwachung des Cluster-Status mit Hilfe der GitHub CLI

Sie können die gh es-Erweiterung für GitHub CLI verwenden, um den Status Ihrer GitHub Enterprise Server-Cluster 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

Du kannst Nagios für die Überwachung von GitHub Enterprise Server konfigurieren. 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. Dadurch wird eine für Nagios verständliche Ausgabe zurückgegeben.

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 diese, um sich beim 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.
    

    Caution

    Ein SSH-Schlüssel ohne Passphrase kann ein Sicherheitsrisiko darstellen, wenn er vollen Zugriff auf einen Host hat. Begrenze die Autorisierung dieses Schlüssels auf einen einzelnen schreibgeschützten Befehl.

    Note

    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
    }
    
  7. Füge diesen Befehl zu 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.