• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Inteligencia de la arquitectura del servicio con GitHub Enterprise (on-premises)

AVANCE

Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!

Esta característica se proporciona actualmente como parte de un programa de vista previa de conformidad con nuestras políticas de prelanzamiento.

¿Busca obtener información más profunda sobre la arquitectura de su servicio aprovechando los datos de su cuenta de GitHub Enterprise local? La integración de New Relic GitHub Enterprise importa repositorios y equipos directamente a la plataforma New Relic utilizando un servicio de recopilación seguro implementado dentro de su red privada.

Con la nueva función de obtención selectiva de datos, puede elegir exactamente qué tipos de datos importar, ya sean equipos, repositorios y solicitudes de extracción, o ambos. Esta integración tiene como objetivo mejorar la gestión y visibilidad de Equipos, Catálogos y Cuadro de mandos dentro de New Relic. Para obtener más información, consulte la capacidad de Inteligencia de Arquitectura de Servicios.

Requisitos previos

  • Cuenta de GitHub Enterprise on-premises con privilegios de administrador de la organización.
  • Entorno Docker para ejecutar el servicio de recopilación dentro de su red de GitHub Enterprise.
  • Cuenta de New Relic con los permisos apropiados para crear integraciones.

Consideraciones de Seguridad

Esta integración sigue las mejores prácticas de seguridad:

  • Utiliza la autenticación de la aplicación de GitHub con permisos mínimos requeridos
  • Los eventos de webhook se autentican mediante claves secretas
  • Toda la transmisión de datos se realiza a través de HTTPS
  • No se almacenan ni se transmiten credenciales de usuario
  • Solo se importan los datos de repositorios y equipos.

Para configurar la integración de GitHub Enterprise:

Cree y configure una aplicación de GitHub

En su instancia de GHE, navegue a Settings → Developer Settings → GitHub Apps → New GitHub App. Para obtener instrucciones detalladas sobre cómo crear una aplicación de GitHub, consulte la documentación de GitHub sobre el registro de una aplicación de GitHub.

Configurar permisos

Configure los permisos de la aplicación con precisión para garantizar una obtención de datos sin problemas durante la sincronización inicial y una escucha eficiente de los eventos de webhook a partir de entonces. Los permisos de la aplicación definen el alcance del acceso que la aplicación tiene a varios recursos de repositorio y organización en GitHub. Al adaptar estos permisos, puede mejorar la seguridad, asegurando que la aplicación solo acceda a los datos necesarios, minimizando la exposición. La configuración adecuada facilita la sincronización inicial de datos sin problemas y el manejo confiable de eventos, optimizando la integración de la aplicación con el ecosistema de GitHub.

Para obtener orientación detallada sobre los permisos de la aplicación de GitHub, consulte la documentación de GitHub sobre la configuración de permisos para las aplicaciones de GitHub.

Permisos de repositorio requeridos

Configure los siguientes permisos a nivel de repositorio exactamente como se muestra para habilitar la sincronización de datos:

  • Administración: Solo lectura ✓

  • Verificaciones: Solo lectura ✓

  • Estados de confirmación: Seleccionado ✓

  • Contenido: Seleccionado ✓

  • Propiedades personalizadas: Seleccionado ✓

  • Implementaciones: Solo lectura ✓

  • Metadatos: Solo lectura (obligatorio) ✓

  • Solicitudes de extracción: Seleccionado ✓

  • Webhooks: Solo lectura ✓

    Permisos de organización requeridos

    Configure los siguientes permisos a nivel de organización exactamente como se muestra:

  • Administración: Solo lectura ✓

  • Roles de organización personalizados: Solo lectura ✓

  • Propiedades personalizadas: Solo lectura ✓

  • Roles de repositorio personalizados: Solo lectura ✓

  • Eventos: Solo lectura ✓

  • Miembros: Solo lectura ✓

  • Webhooks: Solo lectura ✓

    Suscripciones a eventos de webhook

    Seleccione los siguientes eventos de webhook exactamente como se muestran para la sincronización y el monitoreo en tiempo real:

    ✓ Seleccione estos eventos:

  • check_run - Actualizaciones del estado de la ejecución de la verificación

  • check_suite - Finalización del conjunto de pruebas

  • commit_comment - Comentarios sobre las confirmaciones

  • create - Creación de rama o etiqueta

  • custom_property - Cambios de propiedad personalizada para asignaciones de equipo

  • custom_property_values - Cambios en los valores de las propiedades personalizadas

  • delete - Eliminación de rama o etiqueta

  • deployment - Actividades de implementación

  • deployment_review - Procesos de revisión de implementación

  • deployment_status - Actualizaciones de estado de implementación

  • fork - Eventos de bifurcación de repositorio

  • installation_target - Cambios en la instalación de la aplicación de GitHub

  • label - Cambios de etiqueta en problemas y solicitudes de extracción

  • member - Cambios en el perfil de los miembros

  • membership - Adiciones y eliminaciones de miembros

  • meta - Cambios de metadatos de la aplicación GitHub

  • milestone - Cambios de hitos

  • organization - Cambios a nivel de la organización

  • public - Cambios de visibilidad del repositorio

  • pull_request - Actividades de solicitud de extracción

  • pull_request_review - Actividades de revisión de solicitudes de extracción

  • pull_request_review_comment - Actividades de comentarios de revisión

  • pull_request_review_thread - Actividades de hilo de revisión de solicitudes de extracción

  • push - Inserciones y confirmaciones de código

  • release - Publicar versiones y actualizaciones

  • repository - Creación, eliminación y modificaciones de repositorios

  • star - Eventos de estrella del repositorio

  • status - Actualizaciones del estado de confirmación

  • team - Creación y modificaciones de equipos

  • team_add - Adiciones de miembros del equipo

  • watch - Eventos de seguimiento del repositorio

    Sugerencia

    Mejor práctica de seguridad: Para reducir la exposición a la seguridad, siga el principio de acceso de privilegio mínimo y solo habilite los permisos mínimos necesarios para las necesidades de su integración.

    Configurar webhooks

    Configure la URL del webhook y cree un secreto de evento personalizado para una comunicación segura:

  • URL del webhook: Utilice el siguiente formato según la implementación de su servicio de recopilación:

    • Para HTTP: http://your-domain-name/github/sync/webhook
    • Para HTTPS: https://your-domain-name/github/sync/webhook

    Ejemplo: Si su servicio de recopilación se implementa en collector.yourcompany.com, la URL del webhook sería: https://collector.yourcompany.com/github/sync/webhook

  • Secreto del evento: Genere una cadena aleatoria segura (más de 32 caracteres) para la autenticación del webhook. Guarde este valor, ya que lo necesitará para la variable de entorno GITHUB_APP_WEBHOOK_SECRET.

    Generar y convertir claves

  1. Después de crear la aplicación de GitHub, debe generar una clave privada. En la configuración de su aplicación de GitHub, haga clic en Generate a private key. La aplicación generará y descargará automáticamente un ID de aplicación único y un archivo de clave privada (formato .pem). Guárdelos de forma segura, ya que serán necesarios para la configuración del servicio de recopilación.

  2. Convierta su archivo de clave privada descargado al formato DER y luego codifíquelo en Base64:

    Paso 1: Convertir .pem a formato DER

    bash
    $
    openssl rsa -outform der -in private-key.pem -out output.der

    Paso 2: Codifique el archivo DER en Base64

    bash
    $
    # For Linux/macOS
    $
    base64 -i output.der -o outputBase64
    $
    cat outputBase64 # Copy this output
    $
    $
    # For Windows (using PowerShell)
    $
    [Convert]::ToBase64String([IO.File]::ReadAllBytes("output.der"))
    $
    $
    # Alternative for Windows (using certutil)
    $
    certutil -encode output.der temp.b64 && findstr /v /c:- temp.b64

    Copie la cadena Base64 resultante y utilícela como valor para la variable de entorno GITHUB_APP_PRIVATE_KEY en la configuración de su recopilador.

    ✓ Indicadores de éxito:

  • La aplicación de Github se crea correctamente
  • El ID de la aplicación y la clave privada se guardan de forma segura
  • La URL del webhook está configurada y es accesible

Prepare las variables de entorno

Antes de implementar el servicio de recopilación, recopile la siguiente información:

Variables de entorno requeridas

Variable

Fuente

Cómo obtener

NR_API_KEY

New Relic

Genere una clave API desde el panel de New Relic.

NR_LICENSE_KEY

New Relic

Genere una clave de licencia desde el panel de New Relic.

GHE_BASE_URL

Servidor GHE

La URL base para su servidor GHE (por ejemplo,

https://source.datanot.us

).

GITHUB_APP_ID

Aplicación de GitHub

El ID de la aplicación único generado cuando creó la aplicación de GitHub.

GITHUB_APP_PRIVATE_KEY

Aplicación de GitHub

El contenido del archivo de clave privada (

.pem

), convertido a una cadena Base64. Consulte el paso 1 para obtener instrucciones de conversión.

GITHUB_APP_WEBHOOK_SECRET

Aplicación de GitHub

El valor personalizado del Secreto del evento que estableció al crear la aplicación de GitHub.

Variables de entorno SSL opcionales

Las siguientes son variables de entorno opcionales para hacer HTTPS de la API.

Variable opcional

Fuente

Cómo obtener

SERVER_SSL_KEY_STORE

Configuración SSL

Ruta al archivo del almacén de claves SSL para la configuración HTTPS. Consulte las instrucciones de configuración del certificado SSL a continuación.

SERVER_SSL_KEY_STORE_PASSWORD

Configuración SSL

Contraseña para el archivo de almacén de claves SSL. Esta es la contraseña que estableció al crear el almacén de claves PKCS12.

SERVER_SSL_KEY_STORE_TYPE

Configuración SSL

Tipo de almacén de claves SSL (por ejemplo, PKCS12, JKS). Utilice PKCS12 al seguir las instrucciones de configuración de SSL a continuación.

SERVER_SSL_KEY_ALIAS

Configuración SSL

Alias ​​para la clave SSL dentro del almacén de claves. Este es el nombre que especifica al crear el almacén de claves.

SERVER_PORT

Configuración SSL

Puerto del servidor para la comunicación HTTPS. Use 8443 para HTTPS.

Instrucciones de configuración del certificado SSL

Para obtener un certificado SSL de una Autoridad de Certificación (CA) confiable para la configuración HTTPS, siga estos pasos:

  1. Generar una clave privada y una solicitud de firma de certificado (CSR):

    bash
    $
    openssl req -new -newkey rsa:2048 -nodes -keyout mycert.key -out mycert.csr
  2. Envíe el CSR a la CA que elija: Envíe el archivo mycert.csr a la Autoridad de certificación (CA) que elija (por ejemplo, DigiCert, Let's Encrypt, GoDaddy).

  3. Complete la validación del dominio: Complete cualquier paso de validación de dominio requerido según las instrucciones de la CA.

  4. Descargue el certificado: Descargue los archivos de certificado emitidos de la CA (comúnmente un archivo .crt o .pem).

  5. Crear un almacén de claves PKCS12: Combine el certificado y la clave privada en un almacén de claves PKCS12:

    bash
    $
    openssl pkcs12 -export -in mycert.crt -inkey mycert.key -out keystore.p12 -name mycert
  6. Usar el almacén de claves: Use el archivo keystore.p12 generado como valor para SERVER_SSL_KEY_STORE en su configuración de Docker.

Implementar el servicio de recopilación

El servicio de recopilación se entrega como una imagen de Docker. La implementación se puede realizar de dos maneras:

Opción A: Usando Docker Compose (recomendado)

Cree un archivo Docker Compose que automatice la descarga e implementación del servicio.

  1. Cree un archivo docker-compose.yml con el siguiente contenido:

    version: '3.9'
    services:
    nr-ghe-collector:
    image: newrelic/nr-ghe-collector:tag # use latest tag available in dockerhub starting with v*
    container_name: nr-ghe-collector
    restart: unless-stopped
    ports:
    - "8080:8080" # HTTP port, make 8443 in case of HTTPS
    environment:
    # Required environment variables
    - NR_API_KEY=${NR_API_KEY:-DEFAULT_VALUE}
    - NR_LICENSE_KEY=${NR_LICENSE_KEY:-DEFAULT_VALUE}
    - GHE_BASE_URL=${GHE_BASE_URL:-DEFAULT_VALUE}
    - GITHUB_APP_ID=${GITHUB_APP_ID:-DEFAULT_VALUE}
    - GITHUB_APP_PRIVATE_KEY=${GITHUB_APP_PRIVATE_KEY:-DEFAULT_VALUE}
    - GITHUB_APP_WEBHOOK_SECRET=${GITHUB_APP_WEBHOOK_SECRET:-DEFAULT_VALUE}
    # Optional SSL environment variables (uncomment and configure if using HTTPS)
    # - SERVER_SSL_KEY_STORE=${SERVER_SSL_KEY_STORE}
    # - SERVER_SSL_KEY_STORE_PASSWORD=${SERVER_SSL_KEY_STORE_PASSWORD}
    # - SERVER_SSL_KEY_STORE_TYPE=${SERVER_SSL_KEY_STORE_TYPE}
    # - SERVER_SSL_KEY_ALIAS=${SERVER_SSL_KEY_ALIAS}
    # - SERVER_PORT=8443
    #volumes: # Uncomment the line below if using SSL keystore
    # - ./keystore.p12:/app/keystore.p12 # path to your keystore file
    network_mode: bridge
    networks:
    nr-network:
    driver: bridge
  2. Establezca sus variables de entorno reemplazando los marcadores de posición DEFAULT_VALUE en el archivo Docker Compose con sus valores reales, o cree variables de entorno en su sistema antes de ejecutar el comando.

    Advertencia

    Nunca confirme archivos de entorno que contengan secretos en el control de versiones. Utilice prácticas seguras de gestión de secretos en producción.

  3. Ejecute el siguiente comando para iniciar el servicio:

    bash
    $
    docker-compose up -d

    Opción B: Ejecución directa de la imagen de Docker

    Puede descargar la imagen de Docker directamente desde nuestro registro de Docker Hub y ejecutarla utilizando la canalización CI/CD o el método de implementación preferido de su organización. Tenga en cuenta que el cliente debe pasar todas las variables de entorno enumeradas anteriormente al iniciar el servicio de recopilación.

    ✓ Indicadores de éxito:

  • El servicio de recopilación se está ejecutando y es accesible en el puerto configurado
  • Los logs del contenedor Docker muestran un inicio exitoso sin errores
  • El servicio responde a las comprobaciones de estado (si está configurado)

Instale la aplicación de GitHub en las organizaciones

Después de que el servicio de recopilación se esté ejecutando, debe instalar la aplicación de GitHub en las organizaciones específicas que desea integrar:

  1. Navegue a su instancia de GitHub Enterprise.

  2. Vaya a SettingsDeveloper SettingsGitHub Apps.

  3. Busque la aplicación de GitHub que creó en el paso 1 y haga clic en ella.

  4. En la barra lateral izquierda, haga clic en Install App.

  5. Seleccione las organizaciones donde desea instalar la aplicación.

  6. Elija si desea instalar en todos los repositorios o seleccionar repositorios específicos.

  7. Haga clic en Install para completar la instalación.

    ✓ Indicadores de éxito:

  • Las entregas de webhook aparecen en la configuración de la aplicación de GitHub
  • No hay errores de autenticación en los logs del servicio de recopilación

Complete la configuración de la integración en la interfaz de usuario de New Relic

Una vez que el servicio de recopilación se está ejecutando y la aplicación de GitHub está instalada en su(s) organización(es) GHE, complete la configuración de integración como se indica en la interfaz de usuario de New Relic:

  1. Las organizaciones GHE correspondientes aparecerán en la interfaz de usuario de New Relic.

  2. Para iniciar la sincronización inicial de datos, haga clic en First time sync.

  3. (Opcional) Haga clic en On-demand sync para sincronizar los datos manualmente.

    consejo

    Puede sincronizar manualmente los datos una vez cada 4 horas. El botón de On-demand sync permanece deshabilitado si la sincronización se realizó dentro de las 4 horas anteriores.

  4. Después de ver el mensaje de Inicio de sincronización, haga clic en Continue. La pantalla GitHub Enterprise Integration muestra el recuento de equipos y repositorios, actualizándose cada 5 segundos. Permita de 15 a 30 minutos para la importación completa de todos los datos (el tiempo depende del recuento de repositorios).

    GitHub Enterprise Integration dashboard showing integration progress

    Visualización de sus datos

    En la pantalla de GitHub Enterprise Integration:

  • Para ver la información de los equipos importados en Teams, haga clic en Go to Teams.
  • Para ver la información de los repositorios importados en Catalogs, haga clic en Go to Repositories.

Configurar asignaciones de equipo (opcional)

Puede asignar automáticamente repositorios de GitHub a sus equipos agregando teamOwningRepo como una propiedad personalizada en GitHub Enterprise.

  1. Cree la propiedad personalizada en el nivel de organización y asigne un valor a la propiedad personalizada en el nivel de repositorio. Además, puede configurar una propiedad personalizada para varios repositorios a nivel de organización simultáneamente.

  2. Luego, en New Relic Teams, habilite la función Automated Ownership, cerciorar de usar team como clave de etiqueta.

    Una vez que esto está configurado, New Relic coincide automáticamente cada repositorio con su equipo correcto.

    Para obtener más información sobre la creación de propiedades personalizadas, consulte la documentación de GitHub.

Resolución de problemas

Problemas y soluciones comunes

Fallos en la entrega del webhook:

  • Verifique que el servicio de recopilación se esté ejecutando y sea accesible desde GitHub Enterprise
  • Compruebe la configuración del cortafuegos y la conectividad de la red

Errores de autenticación:

  • Verifique que el ID de la aplicación de GitHub y la clave privada estén configurados correctamente
  • Asegúrese de que la clave privada esté correctamente convertida al formato DER y codificada en Base64
  • Verifique que el secreto del webhook coincida entre la aplicación de GitHub y la configuración del recopilador

Fallos de sincronización:

  • Verifique que la aplicación de GitHub tenga los permisos requeridos
  • Compruebe que la aplicación esté instalada en las organizaciones correctas
  • Revise los logs del servicio de recopilación para obtener mensajes de error específicos

Problemas de conectividad de red:

  • Asegúrese de que el servicio de recopilación pueda acceder a su instancia de GitHub Enterprise
  • Verifique que los certificados SSL estén configurados correctamente si usa HTTPS
  • Compruebe la resolución de DNS para su dominio de GitHub Enterprise

Desinstalación

Para desinstalar la integración de GitHub Enterprise:

  1. Navegue a la interfaz de usuario de GitHub Enterprise.
  2. Vaya a la configuración de la organización donde está instalada la aplicación.
  3. Desinstale la aplicación de GitHub directamente desde la interfaz de GitHub Enterprise. Esta acción activará el proceso de backend para dejar de recopilar datos.
  4. Detenga y elimine el servicio de recopilación de su entorno Docker.
Copyright © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.