Skip to main content

Enterprise Server 3.20 actualmente está disponible como versión candidata para lanzamiento.

Supervisión del estado del clúster

Para garantizar el rendimiento y la redundancia de un clúster de GitHub Enterprise Server, puedes supervisar el estado del clúster.

¿Quién puede utilizar esta característica?

GitHub determina la idoneidad para la agrupación en clústeres y debe habilitar la configuración de la licencia de la instancia. La agrupación en clústeres conlleva una planeación cuidadosa y una sobrecarga administrativa adicional. Para más información, consulta Acerca de las agrupaciones.

Acerca del estado del clúster de GitHub Enterprise Server

Un clúster de GitHub Enterprise Server consta de varios nodos, con servicios redundantes distribuidos entre dos o más nodos. Si se produce un error en un servicio individual o en un nodo completo, los usuarios no deberían notarlo. Los errores afectan al rendimiento y la redundancia, por lo que es importante supervisar el estado del clúster. Puedes supervisar el estado del clúster mediante una utilidad de línea de comandos o una herramienta de supervisión externa como Nagios.

También puedes supervisar el estado de los nodos individuales mediante Node Eligibility Service. Para más información, consulta Supervisión del estado de los Nodos del Clúster con el Servicio de Elegibilidad de Nodos.

Comprobación manual del estado de la agrupación

GitHub Enterprise Server tiene una utilidad de línea de comando incorporada para supervisar el estado de la agrupación. Desde el shell administrativo, la ejecución del comando ghe-cluster-status ejecuta una serie de revisiones de estado en cada nodo, incluida la verificación de la conectividad y el estado del servicio. En la salida se muestran todos los resultados de la prueba, incluido el texto ok o error. Por ejemplo, para mostrar solamente las pruebas fallidas, ejecuta:

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

Nota:

Si no hay pruebas con errores, este comando no genera salidas. Esto indica que la agrupación está en buen estado.

Supervisión del estado del clúster mediante GitHub CLI

Puede usar la extensión gh es para la GitHub CLI para comprobar el estado del clúster de GitHub Enterprise Server. Para más información, consulta Documentación sobre utilización de la CLI de GHES y Administración de la instancia mediante la CLI de GitHub.

Supervisar el estado del clúster con Nagios

Puede configurar Nagios para supervisar GitHub Enterprise Server. Además de supervisar la conectividad básica para cada uno de los nodos del clúster, puede comprobar el estado del clúster si configura Nagios para que use el comando ghe-cluster-status -n. Esto devuelve salidas en un formato que Nagios comprende.

Requisitos previos

  • Host Linux que ejecuta Nagios.
  • Acceso de red al cluster GitHub Enterprise Server.

Configurar el host de Nagios

  1. Genera una clave SSH con una contraseña en blanco. Nagios usa esto para autenticar la agrupación de GitHub Enterprise Server.

    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.
    

    Precaución

    Una clave SSH sin una frase de contraseña puede suponer un riesgo de seguridad si está autorizada para el acceso completo a un host. Limita la autorización de esa clave a un comando único de solo lectura.

    Nota:

    Si usas una distribución de Linux que no admita el algoritmo Ed25519, utiliza el comando:

    nagiosuser@nagios:~$ ssh-keygen -t rsa -b 4096
    
  2. Copie la clave privada (id_ed25519) en la carpeta principal nagios y establezca la propiedad adecuada.

    nagiosuser@nagios:~$ sudo cp .ssh/id_ed25519 /var/lib/nagios/.ssh/
    nagiosuser@nagios:~$ sudo chown nagios:nagios /var/lib/nagios/.ssh/id_ed25519
    
  3. A fin de autorizar a la clave pública para ejecutar solo el comando ghe-cluster-status -n, use un prefijo command= en el archivo /data/user/common/authorized_keys. Desde el shell administrativo en cualquier nodo, modifica este archivo para agregar la clave pública generada en el paso 1. Por ejemplo: command="/usr/local/bin/ghe-cluster-status -n" ssh-ed25519 AAAA....

  4. Valide y copie la configuración en cada nodo del clúster mediante la ejecución de ghe-cluster-config-apply en el nodo donde haya modificado el archivo /data/user/common/authorized_keys.

    admin@ghe-data-node-0:~$ ghe-cluster-config-apply
    > Validating configuration
    > ...
    > Finished cluster configuration
    
  5. Para probar que el plugin de Nagios puede ejecutar el comando exitosamente, ejecútalo interactivamente desde el host de Nagios.

    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. Crea una definición de comando en tu configuración Nagios.

           **Definición de ejemplo**
    
    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. Agrega este comando a una definición de servicio para un nodo en la agrupación de GitHub Enterprise Server.

           **Definición de ejemplo**
    
    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
           }
    

En cuanto agregue la definición a Nagios, se ejecutará la comprobación del servicio de acuerdo con la configuración. Deberías poder ver el servicio configurado recientemente en la interfaz web de Nagios.