Acerca de la observabilidad de alta disponibilidad
Para respaldar su plan para la recuperación ante desastres y complementar las copias de seguridad, o para mejorar el rendimiento de red y escritura para los usuarios distribuidos geográficamente, puedes configurar una alta disponibilidad para tu instancia de GitHub Enterprise Server. Para obtener más información, consulta Acerca de la configuración de alta disponibilidad.
Después de configurar la alta disponibilidad, puedes garantizar proactivamente la redundancia mediante la supervisión del estado general de la replicación y el estado de cada uno de los nodos de réplica de la instancia. Puedes usar utilidades de línea de comandos en la instancia, un panel de información general, la API REST de la instancia, o un sistema de supervisión remota como Nagios.
Con alta disponibilidad, la instancia usa varios enfoques para replicar datos entre los nodos principal y de réplica. Los servicios de base de datos que admiten un mecanismo de replicación nativo, como MySQL, se replican mediante el mecanismo nativo del servicio. Otros servicios, como los repositorios de Git, se replican mediante un mecanismo personalizado desarrollado para GitHub Enterprise Server, o mediante herramientas de plataforma como rsync.
Supervisión de la replicación desde la instancia
Para supervisar el estado de replicación de un nodo de réplica existente para tu instancia de GitHub Enterprise Server, conéctate a la consola administrativa (SSH) del nodo y ejecuta la utilidad de línea de comandos ghe-repl-status
. Para más información, consulta Utilidades de la ea de comandos.
También puedes supervisar el estado de replicación desde el panel de información general de la instancia. En un explorador, ve a la siguiente dirección URL y reemplaza HOSTNAME por el nombre de host de la instancia.
http(s)://HOSTNAME/setup/replication
Supervisión de la replicación mediante la API REST
Puedes supervisar el estado de replicación en la instancia mediante la API REST. Para obtener más información, consulta Administración de GitHub Enterprise Server en la documentación de la API de REST.
Supervisión de la replicación desde un sistema remoto
La salida de la utilidad de línea de comandos ghe-repl-status
se ajusta a las expectativas del complemento de check_by_ssh de Nagios. Para más información, consulta Utilidades de la ea de comandos.
Además, puedes supervisar la disponibilidad de la instancia mediante el análisis del código de estado devuelto por una solicitud a la siguiente dirección URL. Por ejemplo, si implementas un equilibrador de carga como parte de la estrategia de conmutación por error, puedes configurar comprobaciones de estado que analizan esta salida. Para más información, consulta Utilizar el servidor de GitHub Enterprise con un balanceador de carga.
En función de dónde y cómo configures la supervisión, reemplaza HOST por el nombre de host de la instancia o por la dirección IP de un nodo individual.
http(s)://HOST/status
Un nodo activo para la replicación geográfica, que puede responder a las solicitudes de usuario, devolverá el código de estado 200
(CORRECTO). Las solicitudes a nodos individuales o el nombre de host de la instancia pueden devolver un error 503
(servicio no disponible) por los siguientes motivos.
- El nodo individual es un nodo réplica pasivo, como el nodo réplica en una configuración de alta disponibilidad de dos nodos.
- El nodo individual forma parte de una configuración de replicación geográfica, pero es un nodo de réplica pasiva.
- La instancia está en modo de mantenimiento. Para más información, consulta Habilitar y programar el modo de mantenimiento.
Para obtener más información sobre la replicación geográfica, consulta Acerca de la Replicación geográfica.
Solución de errores de replicación
Para solucionar problemas de replicación en la instancia, asegúrate de que la replicación se está ejecutando y de que los nodos se pueden comunicar entre sí a través de la red. También puedes usar utilidades de línea de comandos para investigar la replicación insuficiente.
No ejecución de la replicación
Debes iniciar la replicación en cada nodo mediante la utilidad de línea de comandos ghe-repl-start
. Si la replicación no se está ejecutando, conéctate al nodo afectado mediante SSH y ejecuta ghe-repl-start
. Para más información, consulta Utilidades de la ea de comandos.
Problemas de comunicación entre nodos
La replicación requiere que el nodo principal y todos los nodos de réplica puedan comunicarse entre sí a través de la red. Como mínimo, asegúrate de que los puertos 122/TCP y 1194/UDP estén abiertos para la comunicación bidireccional entre todos los nodos de la instancia. Para más información, consulta Puertos de red.
Puedes usar ping
u otra utilidad de administración de red para probar la conectividad de red entre nodos.
Replicación insuficiente
Si ejecutas la utilidad de línea de comandos ghe-repl-status
en un nodo de réplica y los repositorios de Git, las redes de repositorio o los objetos de almacenamiento tienen una replicación insuficiente, uno o varios nodos de réplica no se sincronizan completamente con el nodo principal. Puede producirse una replicación insuficiente si el nodo principal no puede comunicarse con los nodos de réplica o si los nodos de réplica no pueden comunicarse con el nodo principal.
Si has configurado recientemente alta disponibilidad o replicación geográfica, la sincronización inicial tardará algún tiempo. La duración de la sincronización inicial depende de la cantidad de datos que existen y de las condiciones de red.
- Repositorios o redes de repositorios con replicación insuficiente
- Objetos de almacenamiento con replicación insuficiente
Repositorios o redes de repositorios con replicación insuficiente
Para ver el estado de replicación de un repositorio específico, conéctate a un nodo y ejecuta los siguientes comandos, reemplazando OWNER por el propietario del repositorio y REPOSITORY por el nombre del repositorio.
ghe-spokesctl check OWNER/REPOSITORY
ghe-spokesctl info OWNER/REPOSITORY
Como alternativa, si deseas ver el estado de replicación de una red del repositorio, reemplaza NETWORK-ID/REPOSITORY-ID por el identificador de red y el número de identificador del repositorio.
ghe-spokesctl check NETWORK-ID/REPOSITORY-ID
ghe-spokesctl info NETWORK-ID/REPOSITORY-ID
Objetos de almacenamiento con replicación insuficiente
Para ver el estado de un objeto de almacenamiento específico, conéctate a un nodo y ejecuta el siguiente comando, reemplazando OID por el identificador del objeto.
ghe-storage info OID
Obtención de soporte técnico de GitHub
Si revisas el consejo de solución de problemas para la replicación y continúas experimentando problemas en la instancia, recopila la siguiente información y ponte en contacto con nosotros en Soporte técnico para GitHub Enterprise.
- En cada nodo afectado, ejecuta
ghe-repl-status -vv
y copia la salida en el vale. Para más información, consulta Utilidades de la ea de comandos. - En cada nodo afectado, crea un paquete de soporte técnico para asociarlo al vale. Para más información, consulta Cómo proporcionar datos al servicio de soporte técnico de GitHub.