• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Inteligência da Arquitetura de Serviço com GitHub Enterprise (on-premises)

VISUALIZAR

Ainda estamos trabalhando nesse recurso, mas adoraríamos que você experimentasse!

Atualmente, esse recurso é fornecido como parte de um programa de visualização de acordo com nossas políticas de pré-lançamento.

Você está procurando obter insights mais profundos sobre a arquitetura do seu serviço, aproveitando os dados da sua conta GitHub Enterprise no local? A integração do New Relic GitHub Enterprise importa repositórios e equipes diretamente para a plataforma New Relic usando um serviço de coletor seguro implantado em sua rede privada.

Com o novo recurso de busca seletiva de dados, você pode escolher exatamente quais tipos de dados importar — sejam equipes, repositórios e pull requests, ou ambos. Esta integração visa aprimorar o gerenciamento e a visibilidade de Equipes, Catálogos e Scorecards dentro do New Relic. Para obter mais informações, consulte o recurso Service Architecture Intelligence.

Pré-requisitos

  • Conta GitHub Enterprise no local com privilégios de administrador da organização.
  • Ambiente Docker para executar o serviço de coletor em sua rede GitHub Enterprise.
  • Conta New Relic com as permissões apropriadas para criar integrações.

Considerações de segurança

Esta integração segue as melhores práticas de segurança:

  • Usa a autenticação do GitHub App com permissões mínimas necessárias
  • Eventos de webhook são autenticados usando chaves secretas
  • Toda a transmissão de dados ocorre via HTTPS
  • Nenhuma credencial de usuário é armazenada ou transmitida
  • Somente dados de repositórios e equipes são importados

Para configurar a integração do GitHub Enterprise:

Crie e configure um aplicativo GitHub

Na sua instância GHE, navegue até Settings → Developer Settings → GitHub Apps → New GitHub App. Para obter instruções detalhadas sobre como criar um GitHub App, consulte a documentação do GitHub sobre como registrar um GitHub App.

Configurar permissões

Configure as permissões do aplicativo com precisão para garantir a obtenção de dados perfeita durante a sincronização inicial e a escuta eficiente de eventos de webhook posteriormente. As permissões do aplicativo definem o escopo de acesso que o aplicativo tem a vários recursos de repositório e organização no GitHub. Ao personalizar essas permissões, você pode aprimorar a segurança, garantindo que o aplicativo acesse apenas os dados necessários, minimizando a exposição. A configuração adequada facilita a sincronização inicial de dados e o tratamento confiável de eventos, otimizando a integração do aplicativo com o ecossistema do GitHub.

Para obter orientações detalhadas sobre as permissões do GitHub App, consulte a documentação do GitHub sobre como definir permissões para GitHub Apps.

Permissões de repositório necessárias

Configure as seguintes permissões no nível do repositório exatamente como mostrado para habilitar a sincronização de dados:

  • Administração: Somente leitura ✓

  • Verificações: Somente leitura ✓

  • Status de commit: Selecionado ✓

  • Conteúdo: Selecionado ✓

  • Propriedades personalizadas: Selecionado ✓

  • Implantações: Somente leitura ✓

  • Metadados: Somente leitura (obrigatório) ✓

  • Pull requests: Selecionado ✓

  • Webhooks: Somente leitura ✓

    Permissões de organização necessárias

    Configure as seguintes permissões no nível da organização exatamente como mostrado:

  • Administração: Somente leitura ✓

  • Funções de organização personalizadas: Somente leitura ✓

  • Propriedades personalizadas: Somente leitura ✓

  • Funções de repositório personalizadas: Somente leitura ✓

  • Eventos: Somente leitura ✓

  • Membros: Somente leitura ✓

  • Webhooks: Somente leitura ✓

    Assinaturas de eventos de webhook

    Selecione os seguintes eventos de webhook exatamente como mostrado para sincronização e monitoramento em tempo real:

    ✓ Selecione estes eventos:

  • check_run - Verifique as atualizações do status da execução

  • check_suite - Conclusão da suíte de verificações

  • commit_comment - Comentários sobre commits

  • create - Criação de branch ou tag

  • custom_property - Alterações de propriedade personalizadas para atribuições de equipe

  • custom_property_values - Alterações nos valores de propriedades personalizadas

  • delete - Exclusão de branch ou tag

  • deployment - Atividades de implantação

  • deployment_review - Processos de revisão de implantação

  • deployment_status - Atualizações de status de implantação

  • fork - Eventos de fork do repositório

  • installation_target - Alterações na instalação do aplicativo GitHub

  • label - Alterações de rótulos em problemas e solicitações pull

  • member - Alterações no perfil do membro

  • membership - Adições e remoções de membros

  • meta - Alterações de metadados do aplicativo GitHub

  • milestone - Alterações de marcos

  • organization - Alterações no nível da organização

  • public - Alterações de visibilidade do repositório

  • pull_request - Atividades de pull request

  • pull_request_review - Atividades de revisão de pull request

  • pull_request_review_comment - Atividades de comentários de revisão

  • pull_request_review_thread - Atividades de thread de revisão de pull request

  • push - Pushs e commits de código

  • release - Publicações e atualizações de lançamento

  • repository - Criação, exclusão e modificações de repositórios

  • star - Eventos de estrela do repositório

  • status - Atualizações de status de commit

  • team - Criação e modificações de equipe

  • team_add - Adições de membros da equipe

  • watch - Eventos de observação do repositório

    Dica

    Melhor prática de segurança: Para reduzir a exposição à segurança, siga o princípio do acesso de privilégio mínimo e habilite apenas as permissões mínimas necessárias para as necessidades de sua integração.

    Configurar webhooks

    Configure a URL do Webhook e crie um Event Secret personalizado para comunicação segura:

  • URL do Webhook: Use o seguinte formato com base na implantação do serviço de coletor:

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

    Exemplo: Se o seu serviço de coleta for implantado em collector.yourcompany.com, a URL do webhook seria: https://collector.yourcompany.com/github/sync/webhook

  • Segredo do evento: Gere uma string aleatória segura (32+ caracteres) para autenticação de webhook. Salve este valor, pois você precisará dele para a variável de ambiente GITHUB_APP_WEBHOOK_SECRET.

    Gerar e converter chaves

  1. Após criar o GitHub App, você precisa gerar uma chave privada. Nas configurações do seu GitHub App, clique em Generate a private key. O aplicativo gerará e fará o download automaticamente de um ID de aplicativo exclusivo e um arquivo de Chave Privada (formato .pem). Salve-os com segurança, pois eles serão necessários para a configuração do serviço de coletor.

  2. Converta seu arquivo de chave privada baixado para o formato DER e, em seguida, codifique-o em Base64:

    Passo 1: Converter .pem para formato DER

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

    Passo 2: Codificar o arquivo DER em 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 a string Base64 resultante e use-a como o valor da variável de ambiente GITHUB_APP_PRIVATE_KEY na configuração do seu coletor.

    ✓ Indicadores de sucesso:

  • O aplicativo Github foi criado com sucesso
  • ID do aplicativo e chave privada são salvos com segurança
  • URL do Webhook configurada e acessível

Prepare as variáveis de ambiente

Antes de implantar o serviço de coletor, reúna as seguintes informações:

Variáveis de ambiente obrigatórias

Variável

Fonte

Como obter

NR_API_KEY

New Relic

Gere uma chave de API no painel New Relic.

NR_LICENSE_KEY

New Relic

Gere uma Chave de Licença no painel New Relic.

GHE_BASE_URL

Servidor GHE

A URL base para seu servidor GHE (por exemplo,

https://source.datanot.us

).

GITHUB_APP_ID

GitHub App

O ID exclusivo do aplicativo gerado quando você criou o GitHub App.

GITHUB_APP_PRIVATE_KEY

GitHub App

O conteúdo do arquivo de chave privada (

.pem

), convertido em uma string Base64. Consulte a etapa 1 para obter instruções de conversão.

GITHUB_APP_WEBHOOK_SECRET

GitHub App

O valor do Event Secret personalizado que você definiu ao criar o GitHub App.

Variáveis de ambiente SSL opcionais

As seguintes são variáveis de ambiente opcionais para fazer HTTPS da API.

Variável opcional

Fonte

Como obter

SERVER_SSL_KEY_STORE

Configuração SSL

Caminho para o arquivo de keystore SSL para configuração HTTPS. Consulte as instruções de configuração do certificado SSL abaixo.

SERVER_SSL_KEY_STORE_PASSWORD

Configuração SSL

Senha para o arquivo do keystore SSL. Esta é a senha que você define ao criar o keystore PKCS12.

SERVER_SSL_KEY_STORE_TYPE

Configuração SSL

Tipo do keystore SSL (por exemplo, PKCS12, JKS). Use PKCS12 ao seguir as instruções de configuração SSL abaixo.

SERVER_SSL_KEY_ALIAS

Configuração SSL

Alias para a chave SSL dentro do keystore. Este é o nome que você especifica ao criar o keystore.

SERVER_PORT

Configuração SSL

Porta do servidor para comunicação HTTPS. Use 8443 para HTTPS.

Instruções de configuração do certificado SSL

Para obter um certificado SSL de uma Autoridade de Certificação (CA) confiável para configuração HTTPS, siga estas etapas:

  1. Gerar uma chave privada e uma Solicitação de Assinatura de Certificado (CSR):

    bash
    $
    openssl req -new -newkey rsa:2048 -nodes -keyout mycert.key -out mycert.csr
  2. Enviar o CSR para a CA escolhida: Envie o arquivo mycert.csr para a Autoridade de Certificação (CA) escolhida (por exemplo, DigiCert, Let's Encrypt, GoDaddy).

  3. Validação completa do domínio: Conclua todas as etapas de validação de domínio necessárias, conforme instruído pela AC.

  4. Baixar o certificado: Baixe os arquivos de certificado emitidos da CA (comumente um arquivo .crt ou .pem).

  5. Crie um keystore PKCS12: Combine o certificado e a chave privada em um keystore PKCS12:

    bash
    $
    openssl pkcs12 -export -in mycert.crt -inkey mycert.key -out keystore.p12 -name mycert
  6. Use o keystore: Use o arquivo keystore.p12 gerado como o valor para SERVER_SSL_KEY_STORE na sua configuração do Docker.

Implantar o serviço de coletor

O serviço de coletor é fornecido como uma imagem Docker. A implantação pode ser feita de duas maneiras:

Opção A: Usando o Docker Compose (recomendado)

Crie um arquivo Docker Compose que automatize o download e a implantação do serviço.

  1. Crie um arquivo docker-compose.yml com o seguinte conteúdo:

    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. Defina suas variáveis de ambiente substituindo os espaços reservados DEFAULT_VALUE no arquivo Docker Compose pelos seus valores reais ou crie variáveis de ambiente no seu sistema antes de executar o comando.

    Cuidado

    Nunca confirme arquivos de ambiente contendo segredos no controle de versão. Use práticas seguras de gerenciamento de segredos em produção.

  3. Execute o seguinte comando para iniciar o serviço:

    bash
    $
    docker-compose up -d

    Opção B: Execução direta da imagem Docker

    Você pode baixar a imagem Docker diretamente do nosso registro do Docker Hub e executá-la usando o pipeline CI/CD ou método de implantação preferido da sua organização. Observe que o cliente precisa passar todas as variáveis de ambiente listadas acima ao iniciar o serviço de coletor.

    ✓ Indicadores de sucesso:

  • O serviço do coletor está em execução e acessível na porta configurada
  • Os logs do contêiner Docker mostram uma inicialização bem-sucedida sem erros
  • O serviço responde a verificações de integridade (se configurado)

Instale o aplicativo GitHub nas organizações

Após a execução do serviço de coletor, você precisa instalar o aplicativo GitHub nas organizações específicas que deseja integrar:

  1. Navegue até sua instância do GitHub Enterprise.

  2. Vá para SettingsDeveloper SettingsGitHub Apps.

  3. Encontre o aplicativo GitHub que você criou na etapa 1 e clique nele.

  4. Na barra lateral esquerda, clique em Install App.

  5. Selecione as organizações onde deseja instalar o aplicativo.

  6. Escolha se deseja instalar em todos os repositórios ou selecionar repositórios específicos.

  7. Clique em Install para concluir a instalação.

    ✓ Indicadores de sucesso:

  • As entregas de webhook aparecem nas configurações do GitHub App
  • Nenhum erro de autenticação nos logs do serviço de coletor

Conclua a configuração da integração na interface do usuário do New Relic

Depois que o serviço de coleta estiver em execução e o GitHub App estiver instalado em sua(s) organização(ões) GHE, conclua a configuração da integração conforme instruído na interface do usuário do New Relic:

  1. As organizações GHE correspondentes aparecerão na interface do usuário do New Relic.

  2. Para iniciar a sincronização inicial de dados, clique em First time sync.

  3. (Opcional) Clique em On-demand sync para sincronizar manualmente os dados.

    dica

    Você pode sincronizar manualmente os dados uma vez a cada 4 horas. O botão de On-demand sync permanece desabilitado se a sincronização tiver ocorrido nas últimas 4 horas.

  4. Após visualizar a mensagem Sync started (Sincronização iniciada), clique em Continue (Continuar). A tela Integração do GitHub Enterprise exibe a contagem de equipes e repositórios, atualizando a cada 5 segundos. Aguarde de 15 a 30 minutos para a importação completa de todos os dados (o tempo depende da contagem de repositórios).

    GitHub Enterprise Integration dashboard showing integration progress

    Visualizando seus dados

    Na tela GitHub Enterprise Integration:

  • Para visualizar as informações das equipes importadas em Teams, clique em Go to Teams.
  • Para visualizar as informações dos repositórios importados em Catalogs, clique em Go to Repositories.

Configure as atribuições da equipe (opcional)

Você pode autoatribuir repositórios do GitHub às suas equipes adicionando teamOwningRepo como uma propriedade personalizada no GitHub Enterprise.

  1. Crie a propriedade personalizada no nível da organização e atribua um valor para ela no nível do repositório. Além disso, você pode configurar uma propriedade personalizada para vários repositórios no nível da organização simultaneamente.

  2. Em seguida, no New Relic Teams, ative o recurso Automated Ownership, certificando-se de usar team como a chave de tag.

    Depois de configurado, o New Relic corresponde automaticamente cada repositório com sua equipe correta.

    Para obter mais informações sobre como criar propriedades personalizadas, consulte a documentação do GitHub.

Resolução de problemas

Problemas e soluções comuns

Falhas na entrega do webhook:

  • Verifique se o serviço de coleta está em execução e acessível no GitHub Enterprise
  • Verifique as configurações do firewall e a conectividade de rede

Erros de autenticação:

  • Verifique se o ID do GitHub App e a chave privada estão configurados corretamente
  • Certifique-se de que a chave privada esteja devidamente convertida para o formato DER e codificada em Base64
  • Verifique se o segredo do webhook corresponde entre o aplicativo GitHub e a configuração do coletor

Falhas de sincronização:

  • Verifique se o aplicativo GitHub tem as permissões necessárias
  • Verifique se o aplicativo está instalado nas organizações corretas
  • Revise os logs do serviço de coleta para mensagens de erro específicas

Problemas de conectividade de rede:

  • Certifique-se de que o serviço de coletor possa alcançar sua instância do GitHub Enterprise
  • Verifique se os certificados SSL estão configurados corretamente, se estiver usando HTTPS
  • Verifique a resolução DNS para o seu domínio GitHub Enterprise

Desinstalação

Para desinstalar a integração do GitHub Enterprise:

  1. Navegue até a interface do usuário do GitHub Enterprise.
  2. Vá para as configurações da organização onde o aplicativo está instalado.
  3. Desinstale o aplicativo GitHub diretamente da interface do GitHub Enterprise. Esta ação acionará o processo de back-end para interromper a coleta de dados.
  4. Pare e remova o serviço de coleta do seu ambiente Docker.
Copyright © 2025 New Relic Inc.

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