Enfoques de supervisión externa
La supervisión externa con OpenTelemetry permite integrar la instancia de GitHub Enterprise Server con las herramientas y la infraestructura de supervisión existentes. GitHub Enterprise Server proporciona dos enfoques principales para la supervisión externa:
-
**Punto de conexión de Prometheus**: exponer métricas en formato Prometheus para que las herramientas externas puedan recoger. -
**Canalizaciones de OpenTelemetry personalizadas**: configure el recopilador de OpenTelemetry para enviar métricas a sistemas de supervisión externos
Nota:
En las implementaciones de clúster, cada nodo expone sus propias métricas locales. Esto incluye servidores de nodo, que recopilan métricas de todos los servidores del clúster, pero solo exponen sus propias métricas locales a través de puntos de conexión de supervisión. Para recopilar métricas de todos los nodos de un clúster, debe configurar el sistema de supervisión para recopilar de cada nodo individualmente.
Prerrequisitos
- GitHub Enterprise Server 3.18 o posterior con las métricas de OpenTelemetry habilitadas
- Conectividad de red entre su instancia de GitHub Enterprise Server y los sistemas de supervisión externa
- Acceso administrativo tanto a su instancia de GitHub Enterprise Server como a los sistemas de supervisión.
Elección del enfoque de supervisión
Elija el enfoque de supervisión que mejor se adapte a su infraestructura y requisitos.
Punto de conexión de Prometheus (recomendado para la mayoría de los usuarios)
Use el punto de conexión de Prometheus cuando:
- Tiene una infraestructura existente de supervisión basada en Prometheus.
- Prefiere un modelo de supervisión basado en extracción
- Quiere usar herramientas externas para obtener métricas de GitHub Enterprise Server
- Necesita una integración sencilla con una configuración mínima.
Canalizaciones de OpenTelemetry personalizadas
Use canalizaciones de OpenTelemetry personalizadas cuando:
- Debe insertar métricas en varios sistemas de supervisión simultáneamente.
- Quiere transformar, filtrar o agregar métricas antes de enviarlos externamente.
- Está usando soluciones de supervisión nativas de la nube que prefieren OTLP.
- Necesita funcionalidades avanzadas de procesamiento de métricas.
Opción 1: Uso del punto de conexión de Prometheus
La pila de supervisión de OpenTelemetry incluye un punto de conexión compatible con Prometheus que expone todas las métricas recopiladas en formato Prometheus, lo que permite la integración con herramientas de supervisión externas. Consulte Formato basado en texto en la documentación de Prometheus.
Habilitación del punto de conexión de Prometheus
Puede habilitar el punto de conexión de Prometheus utilizando la Consola de administración o la interfaz de línea de comandos.
Uso de la Consola de administración
-
Desde una cuenta administrativa de GitHub Enterprise Server, en la esquina superior derecha de cualquier página, haz clic en .
-
Si todavía no está en la página "Administrador del sitio", en la esquina superior izquierda, haga clic en Administrador del sitio.
-
En la barra lateral " Site admin", haz clic en Consola de administración.
-
En la configuración de supervisión, seleccione Habilitar OpenTelemetry.
-
Opcionalmente, ajuste los campos Retención de métricas y Intervalo de extracción de métricas para optimizar el rendimiento.
-
Seleccione Habilitar endpoint compatible con Prometheus (/metrics).
-
En el campo Contraseña del punto de conexión, escriba una contraseña segura para controlar el acceso al punto de conexión.
-
Opcionalmente, en las direcciones IPv4/IPv6 de confianza o los bloques CIDR de un campo de lista separados por comas , escriba las direcciones IP o los bloques CIDR que tienen permiso para acceder al punto de conexión.
-
En la barra lateral "Configuración" , haga clic en Guardar configuración.
Nota:
Al guardar la configuración en Consola de administración se restablecen los servicios del sistema, lo que podría generar un tiempo de inactividad visible para el usuario.
-
Espera que se complete la fase de configuración.
Uso de la interfaz de la línea de comandos
-
Conéctese mediante SSH a su instancia de GitHub Enterprise Server.
-
Habilite el punto final de Prometheus:
ghe-config observability.metrics.prometheus-endpoint-enabled true ghe-config-apply -
Configurar la autenticación para el punto de conexión (se recomienda encarecidamente):
ghe-config observability.metrics.prometheus-endpoint-password your-secure-password ghe-config-apply
Acceso al punto de conexión de Prometheus
El punto de conexión de Prometheus estará disponible en:
https://[hostname]:8010/metrics
La autenticación usa:
- Nombre de usuario:
ghes-metrics - Contraseña: valor establecido en la configuración
Configuración de herramientas externas para extraer métricas
Puede configurar varias herramientas de supervisión externas para extraer métricas del punto de conexión de Prometheus.
Prometheus
Agregue la siguiente configuración de trabajo al archivo de configuración de Prometheus:
scrape_configs:
- job_name: 'github-enterprise-server'
static_configs:
- targets: ['your-ghes-hostname:8010']
basic_auth:
username: 'ghes-metrics'
password: 'your-secure-password'
scrape_interval: 30s
metrics_path: '/metrics'
scheme: https
tls_config:
# Set `true` only when testing with self-signed certificates
insecure_skip_verify: false
Otras herramientas de supervisión
El punto de conexión de Prometheus es compatible con cualquier herramienta de supervisión que pueda extraer métricas de formato Prometheus, entre las que se incluyen:
- Grafana (usando el origen de datos de Prometheus)
- Datadog (mediante prometheus check)
- New Relic (mediante la integración de Prometheus)
- Métricas de Victoria
- InfluxDB (mediante el complemento de entrada Prometheus)
Consideraciones de seguridad para el punto de conexión de Prometheus
Se pueden implementar medidas de seguridad adicionales para proteger el terminal de métricas.
Protección con contraseña
El punto de conexión de Prometheus admite el uso de una contraseña para limitar el acceso. Puede configurarlo a través de la Consola de administración o la interfaz de la línea de comandos.
-
Con la Consola de administración:
En la configuración de supervisión, use el campo Contraseña del punto de conexión para escribir una contraseña segura para controlar el acceso al punto de conexión.
-
Mediante la interfaz de la línea de comandos:
ghe-config observability.metrics.prometheus-endpoint-password your-secure-password ghe-config-apply
Adición a la lista de direcciones IP permitidas
El punto de conexión de Prometheus admite la inclusión en la lista de direcciones IP permitidas para mejorar la seguridad. Puede configurarlo a través de la Consola de administración o la interfaz de la línea de comandos.
-
Con la Consola de administración:
En la configuración de supervisión, use las direcciones IPv4/IPv6 de confianza o los bloques CIDR en un campo de lista separados por comas para escribir direcciones IP o bloques CIDR que deben tener acceso al punto de conexión.
-
Mediante la interfaz de la línea de comandos:
ghe-config observability.metrics.prometheus-endpoint-trusted-ips "10.0.0.0/8,192.168.0.0/16" ghe-config-apply
Prueba del punto de conexión
Compruebe que se exportan las métricas:
# Test the Prometheus endpoint
curl -u ghes-metrics:your-password https://your-ghes-hostname:8010/metrics
Opción 2: Uso de canalizaciones de OpenTelemetry personalizadas
GitHub Enterprise Server admite configuraciones de recopilador OpenTelemetry personalizadas, lo que le permite ampliar las capacidades de monitoreo agregando canalizaciones personalizadas, exportadores y procesadores. Esto le permite enviar métricas a sistemas de supervisión externa mientras mantiene la pila de observabilidad predeterminada de GitHub Enterprise Server .
Consideraciones importantes para las configuraciones personalizadas
- Las configuraciones personalizadas se agregan a la configuración predeterminada de OpenTelemetry de GitHub Enterprise Server.
- Rutas reservadas: las rutas
/ghesy/internalestán reservadas para el uso interno de GitHub Enterprise Server y no deben usarse en archivos de configuración personalizados. -
Los receptores `otlp/ghes` y `prometheus/ghes` son los orígenes integrados de las métricas de GitHub Enterprise Server que puede usar en las canalizaciones personalizadas. - Prueba exhaustiva de la configuración en un entorno que no es de producción antes de aplicar a producción
- Supervisión del uso de recursos después de habilitar configuraciones personalizadas, ya que las canalizaciones adicionales pueden aumentar el consumo de CPU y memoria.
Habilitación de la configuración personalizada de OpenTelemetry
Puede habilitar la configuración personalizada de OpenTelemetry mediante la Consola de administración o la interfaz de línea de comandos.
Uso de la Consola de administración
-
Desde una cuenta administrativa de GitHub Enterprise Server, en la esquina superior derecha de cualquier página, haz clic en .
-
Si todavía no está en la página "Administrador del sitio", en la esquina superior izquierda, haga clic en Administrador del sitio.
-
En la barra lateral " Site admin", haz clic en Consola de administración.
-
En la configuración de supervisión, primero seleccione Habilitar OpenTelemetry.
-
Seleccione Enable custom OpenTelemetry Collector pipelines (Habilitar canalizaciones personalizadas de OpenTelemetry Collector).
-
Use el botón Examinar... para cargar el archivo de configuración personalizado del recopilador openTelemetry (*.yml), consulte Configuraciones de ejemplo para sistemas de supervisión populares.
-
En la barra lateral "Configuración" , haga clic en Guardar configuración.
Nota:
Al guardar la configuración en Consola de administración se restablecen los servicios del sistema, lo que podría generar un tiempo de inactividad visible para el usuario.
-
Espera que se complete la fase de configuración.
Uso de la línea de comandos
-
Conéctese mediante SSH a su instancia de GitHub Enterprise Server y ejecute el siguiente comando:
ghe-config observability.metrics.custom-config-enabled true -
Cree el archivo de configuración de OpenTelemetry personalizado en
/data/user/common/otelcol.yaml:sudo nano /data/user/common/otelcol.yaml -
Agregue la configuración personalizada (consulte Configuraciones de ejemplo para sistemas de supervisión populares).
-
Aplique la configuración:
ghe-config-apply
Configuraciones de ejemplo para sistemas de supervisión populares
En los ejemplos siguientes se muestra cómo configurar canalizaciones de OpenTelemetry personalizadas para plataformas de supervisión populares. Para obtener información sobre otros exportadores o crear sus propios, consulte el repositorio de recopiladores de OpenTelemetry.
Grafana Cloud
---
exporters:
prometheusremotewrite:
endpoint: "https://prometheus-us-central1.grafana.net/api/prom/push"
headers:
Authorization: "Bearer your-grafana-cloud-token"
service:
pipelines:
metrics:
receivers: [otlp/ghes, prometheus/ghes]
processors: [batch/ghes]
exporters: [prometheusremotewrite]
Datadog
---
exporters:
datadog:
api:
site: datadoghq.com
key: your-datadog-api-key
host_metadata:
enabled: true
service:
pipelines:
metrics:
receivers: [otlp/ghes, prometheus/ghes]
processors: [batch/ghes]
exporters: [datadog]
Nueva reliquia
---
exporters:
otlp:
endpoint: "https://otlp.nr-data.net:4317"
headers:
api-key: "your-new-relic-license-key"
service:
pipelines:
metrics:
receivers: [otlp/ghes, prometheus/ghes]
processors: [batch/ghes]
exporters: [otlp]
Punto de conexión genérico de OTLP
---
exporters:
otlp:
endpoint: "https://your-otel-collector:4317"
headers:
api-key: "your-api-key"
tls:
insecure: false
service:
pipelines:
metrics:
receivers: [otlp/ghes, prometheus/ghes]
processors: [batch/ghes]
exporters: [otlp]
Consideraciones de red y seguridad
Configure las opciones de red y seguridad en función del enfoque de supervisión elegido.
TLS y certificados
Para conexiones seguras a sistemas de supervisión externos:
- Uso de certificados TLS válidos siempre que sea posible
- Configuración de las opciones adecuadas
tls_configen el sistema de supervisión - Considere la posibilidad de usar TLS mutua (mTLS) para mejorar la seguridad
Pasos siguientes
- Para configurar las opciones de OpenTelemetry, consulte Configuración de OpenTelemetry para la instancia.
- Para más información sobre las métricas disponibles, consulte Acerca de las métricas de OpenTelemetry.