Clusterknoten überwachen

Ein GitHub Enterprise Server-Cluster besteht aus redundanten Diensten, die auf mindestens zwei Knoten verteilt sind. Wenn ein einzelner Dienst oder ein gesamter Knoten fehlschlägt, sollte dies den Benutzern des Clusters sofort auffallen. Da jedoch Leistung und Redundanz betroffen sind, ist es wichtig, den Zustand eines GitHub Enterprise Server-Clusters zu überwachen.

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 enthält alle Testergebnisse, darunter der Text ok oder error. Führen Sie 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 fehlgeschlagenen Tests vorliegen, gibt dieser Befehl nichts aus. Dies gibt an, dass der Cluster fehlerfrei ist.

Clusterstatus mit Nagios überwachen

Sie können Nagios für die Überwachung von GitHub Enterprise Server konfigurieren. Zusätzlich zur Überwachung der grundlegenden Konnektivität jedes Clusterknotens können Sie den Clusterstatus überprüfen, indem Sie Nagios für die Verwendung des Befehls ghe-cluster-status -n konfigurieren. Dadurch wird eine für Nagios verständliche Ausgabe zurückgegeben.

Vorrausetzungen

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

Nagios-Host konfigurieren

  1. Generieren Sie 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.

    Sicherheitswarnung: Ein SSH-Schlüssel ohne eine Passphrase kann ein Sicherheitsrisiko darstellen, wenn er für den vollen Zugriff auf einen Host berechtigt ist. Begrenzen Sie die Autorisierung dieses Schlüssels auf einen einzelnen schreibgeschützten Befehl.

    Note: If you're using a distribution of Linux that doesn't support the Ed25519 algorithm, use the command:

    nagiosuser@nagios:~$ ssh-keygen -t rsa -b 4096
  2. Copy the private key (id_ed25519) to the nagios home folder and set the appropriate ownership.

    nagiosuser@nagios:~$ sudo cp .ssh/id_ed25519 /var/lib/nagios/.ssh/
    nagiosuser@nagios:~$ sudo chown nagios:nagios /var/lib/nagios/.ssh/id_ed25519
  3. Verwenden Sie das Präfix command= in der Datei /data/user/common/authorized_keys, um den öffentlichen Schlüssel nur für den Befehl ghe-cluster-status -n zu autorisieren. Ändern Sie in der Verwaltungsshell oder auf einem beliebigen Knoten diese Datei, um den in Schritt 1 generierten öffentlichen Schlüssel hinzuzufügen. For example: command="/usr/local/bin/ghe-cluster-status -n" ssh-ed25519 AAAA....

  4. Validieren und kopieren Sie die Konfiguration auf jeden Knoten im Cluster. Führen Sie dazu ghe-cluster-config-apply auf dem Knoten aus, auf dem Sie die Datei /data/user/common/authorized_keys geändert haben.

    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ühren Sie 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. Erstellen Sie eine Befehlsdefinition in Ihrer 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ügen Sie 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 Sie Nagios die Definition hinzugefügt haben, wird die Dienstüberprüfung entsprechend Ihrer Konfiguration ausgeführt. Sie sollten den neu konfigurierten Dienst auf der Nagios-Weboberfläche anzeigen können.

Nagios-Beispiel

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Oder, learn how to contribute.