Ansätze zur externen Überwachung
Externe Überwachung mit OpenTelemetry ermöglicht es Ihnen, Ihre GitHub Enterprise Server Instanz in bestehende Überwachungsinfrastruktur und -tools zu integrieren. GitHub Enterprise Server bietet zwei primäre Ansätze für die externe Überwachung:
-
**Prometheus-Endpunkt**: Bereitstellen von Metriken im Prometheus-Format für externe Tools zum Abfragen -
**Benutzerdefinierte OpenTelemetry-Pipelines: Konfigurieren des OpenTelemetry-Sammlers** zum Pushen von Metriken an externe Überwachungssysteme
Hinweis
In Clusterbereitstellungen macht jeder Knoten seine eigenen lokalen Metriken verfügbar. Dazu gehören Knotenserver, die Metriken von allen Servern im Cluster sammeln, aber nur ihre eigenen lokalen Metriken über Überwachungsendpunkte verfügbar machen. Um Metriken von allen Knoten in einem Cluster zu sammeln, müssen Sie Ihr Überwachungssystem so konfigurieren, dass es von jedem Knoten einzeln erfasst wird.
Voraussetzungen
- GitHub Enterprise Server 3.18 oder höher mit aktivierten OpenTelemetry-Metriken
- Netzwerkkonnektivität zwischen Ihrer GitHub Enterprise Server-Instanz und externen Überwachungssystemen
- Administrativer Zugriff auf Ihre GitHub Enterprise Server Instanz und Überwachungssysteme
Auswählen ihres Überwachungsansatzes
Wählen Sie den Überwachungsansatz aus, der ihren Infrastruktur- und Anforderungen am besten entspricht.
Prometheus-Endpunkt (für die meisten Benutzer empfohlen)
Verwenden Sie den Prometheus-Endpunkt in folgenden Fällen:
- Sie verfügen über eine vorhandene Prometheus-basierte Überwachungsinfrastruktur
- Sie bevorzugen ein Pull-basiertes Überwachungsmodell
- Sie möchten externe Tools zum Auslesen von GitHub Enterprise Server-Metriken verwenden
- Sie benötigen eine einfache Integration mit minimaler Konfiguration
Benutzerdefinierte OpenTelemetry-Pipelines
Verwenden Sie benutzerdefinierte OpenTelemetry-Pipelines in den folgenden Fällen:
- Sie müssen Metriken gleichzeitig an mehrere Überwachungssysteme übertragen.
- Sie möchten Metriken transformieren, filtern oder aggregieren, bevor Sie sie extern senden.
- Sie verwenden cloudeigene Überwachungslösungen, die OTLP bevorzugen
- Sie benötigen erweiterte metrische Verarbeitungsfunktionen.
Option 1: Verwenden des Prometheus-Endpunkts
Der OpenTelemetry-Überwachungsstapel enthält einen prometheuskompatiblen Endpunkt, der alle gesammelten Metriken im Prometheus-Format verfügbar macht und die Integration mit externen Überwachungstools ermöglicht. Siehe Textbasiertes Format in der Dokumentation für Prometheus.
Aktivieren des Prometheus-Endpunkts
Sie können den Prometheus-Endpunkt entweder mit der Verwaltungskonsole oder der Befehlszeilenschnittstelle aktivieren.
Verwenden der Verwaltungskonsole
-
Klicke in einem Verwaltungskonto für GitHub Enterprise Server in der rechten oberen Ecke einer beliebigen Seite auf .
-
Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.
-
Klicke in der Randleiste „ Site admin“ auf Verwaltungskonsole.
-
Wählen Sie in den Überwachungseinstellungen "OpenTelemetry aktivieren" aus.
-
Passen Sie optional die Metriken-Aufbewahrung und das Metriken-Abrufintervall an, um die Leistung zu optimieren.
-
Wählen Sie "Prometheus-kompatiblen (/Metriken)-Endpunkt aktivieren" aus.
-
Geben Sie im Feld " Endpunktkennwort " ein sicheres Kennwort ein, um den Zugriff auf den Endpunkt zu steuern.
-
Geben Sie optional in den Vertrauenswürdigen IPv4/IPv6-Adressen oder CIDR-Blöcken in einem durch Trennzeichen getrennten Listenfeld die IP-Adressen oder CIDR-Blöcke ein, die auf den Endpunkt zugreifen dürfen.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Hinweis
Durch das Speichern von Einstellungen in der Verwaltungskonsole werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.
-
Warten Sie auf den Abschluss der Konfigurationsausführung.
Verwenden der Befehlszeilenschnittstelle
-
Verbinden Sie sich per SSH mit Ihrer GitHub Enterprise Server-Instanz.
-
Aktivieren Sie den Prometheus-Endpunkt:
ghe-config observability.metrics.prometheus-endpoint-enabled true ghe-config-apply -
Einrichten der Authentifizierung für den Endpunkt (dringend empfohlen):
ghe-config observability.metrics.prometheus-endpoint-password your-secure-password ghe-config-apply
Zugreifen auf den Prometheus-Endpunkt
Der Prometheus-Endpunkt ist verfügbar unter:
https://[hostname]:8010/metrics
Die Authentifizierung verwendet:
-
**Benutzername**: `ghes-metrics` -
**Kennwort**: Der in Ihrer Konfiguration festgelegte Wert
Konfigurieren externer Tools zum Extrahieren von Metriken
Sie können verschiedene externe Überwachungstools so konfigurieren, dass Metriken vom Prometheus-Endpunkt abgefragt werden.
Prometheus
Fügen Sie der Prometheus-Konfigurationsdatei die folgende Auftragskonfiguration hinzu:
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
Andere Überwachungstools
Der Prometheus-Endpunkt ist mit jedem Überwachungstool kompatibel, das Prometheus-Format-Metriken abfragen kann, einschließlich:
- Grafana (mit Prometheus-Datenquelle)
- Datadog (mit Prometheus Check)
- New Relic (mit Prometheus-Integration)
- Victoria-Metriken
- InfluxDB (mit Prometheus Input-Plugin)
Sicherheitsüberlegungen für den Prometheus-Endpunkt
Zusätzliche Sicherheitsmaßnahmen können implementiert werden, um Ihren Metrikenendpunkt zu schützen.
Kennwortschutz
Der Prometheus-Endpunkt unterstützt die Verwendung eines Kennworts zum Einschränken des Zugriffs. Sie können dies entweder über die Verwaltungskonsole oder über das CLI konfigurieren.
-
**Verwenden der Verwaltungskonsole**:Verwenden Sie in den Überwachungseinstellungen das Feld " Endpunktkennwort ", um ein sicheres Kennwort einzugeben, um den Zugriff auf den Endpunkt zu steuern.
-
**Verwenden der Befehlszeilenschnittstelle**:ghe-config observability.metrics.prometheus-endpoint-password your-secure-password ghe-config-apply
Setzen von IP-Adressen auf die Positivliste
Der Prometheus-Endpunkt unterstützt die Liste zugelassener IP-Adressen für mehr Sicherheit. Sie können dies entweder über die Verwaltungskonsole oder über das CLI konfigurieren.
-
**Verwenden der Verwaltungskonsole**:Verwenden Sie in den Überwachungseinstellungen die vertrauenswürdigen IPv4/IPv6-Adressen oder CIDR-Blöcke in einem durch Trennzeichen getrennten Listenfeld , um IP-Adressen oder CIDR-Blöcke einzugeben, die Zugriff auf den Endpunkt haben sollen.
-
**Verwenden der Befehlszeilenschnittstelle**:ghe-config observability.metrics.prometheus-endpoint-trusted-ips "10.0.0.0/8,192.168.0.0/16" ghe-config-apply
Testen des Endpunkts
Überprüfen Sie, ob Metriken exportiert werden:
# Test the Prometheus endpoint
curl -u ghes-metrics:your-password https://your-ghes-hostname:8010/metrics
Option 2: Verwenden von benutzerdefinierten OpenTelemetry-Pipelines
GitHub Enterprise Server unterstützt benutzerdefinierte OpenTelemetry-Sammelkonfigurationen, so dass Sie die Überwachungsfunktionen durch Hinzufügen benutzerdefinierter Pipelines, Exportierer und Prozessoren erweitern können. Auf diese Weise können Sie Metriken an externe Überwachungssysteme übermitteln und gleichzeitig den standardmäßigen GitHub Enterprise Server-Beobachtungsstapel beibehalten.
Wichtige Überlegungen für benutzerdefinierte Konfigurationen
- Benutzerdefinierte Konfigurationen sind additiv zur GitHub Enterprise Server-OpenTelemetry-Standardkonfiguration.
-
**Reservierte Pfade**: Die Pfade `/ghes` und `/internal` sind für GitHub Enterprise Server interne Verwendung reserviert und dürfen nicht in benutzerdefinierten Konfigurationsdateien verwendet werden. -
`otlp/ghes`- und `prometheus/ghes`-Empfänger sind die integrierten Quellen für GitHub Enterprise Server-Metriken, die Sie in Ihren benutzerdefinierten Pipelines verwenden können. - Testen Sie Ihre Konfiguration gründlich in einer Nicht-Produktionsumgebung, bevor Sie die Anwendung auf die Produktion anwenden.
- Überwachen der Ressourcenauslastung nach dem Aktivieren von benutzerdefinierten Konfigurationen, da zusätzliche Pipelines die CPU- und Arbeitsspeicherauslastung erhöhen können
Aktivieren der benutzerdefinierten OpenTelemetry-Konfiguration
Sie können die benutzerdefinierte OpenTelemetry-Konfiguration entweder mithilfe der Verwaltungskonsole oder der Befehlszeilenschnittstelle aktivieren.
Verwenden der Verwaltungskonsole
-
Klicke in einem Verwaltungskonto für GitHub Enterprise Server in der rechten oberen Ecke einer beliebigen Seite auf .
-
Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.
-
Klicke in der Randleiste „ Site admin“ auf Verwaltungskonsole.
-
Wählen Sie in den Überwachungseinstellungen zuerst "OpenTelemetry aktivieren" aus.
-
Wählen Sie "Benutzerdefinierte OpenTelemetry Collector-Pipelines aktivieren" aus.
-
Verwenden Sie die Schaltfläche " Durchsuchen..." , um Ihre benutzerdefinierte Konfigurationsdatei des OpenTelemetry-Sammelsammlers (*.yml) hochzuladen, siehe Beispielkonfigurationen für beliebte Überwachungssysteme.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Hinweis
Durch das Speichern von Einstellungen in der Verwaltungskonsole werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.
-
Warten Sie auf den Abschluss der Konfigurationsausführung.
Verwenden der Befehlszeile
-
Verbinden Sie sich per SSH mit Ihrer GitHub Enterprise Server-Instanz und führen Sie den folgenden Befehl aus.
ghe-config observability.metrics.custom-config-enabled true -
Erstellen Sie Ihre benutzerdefinierte OpenTelemetry-Konfigurationsdatei unter
/data/user/common/otelcol.yaml:sudo nano /data/user/common/otelcol.yaml -
Fügen Sie Ihre benutzerdefinierte Konfiguration hinzu (siehe Beispielkonfigurationen für beliebte Überwachungssysteme).
-
Wenden Sie die Konfiguration an:
ghe-config-apply
Beispielkonfigurationen für beliebte Überwachungssysteme
Die folgenden Beispiele zeigen, wie Sie benutzerdefinierte OpenTelemetry-Pipelines für beliebte Überwachungsplattformen konfigurieren. Informationen zu anderen Exporteuren oder zum Erstellen Eigener finden Sie im Repository von OpenTelemetry Collectors.
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]
New Relic
---
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]
Generischer OTLP-Endpunkt
---
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]
Überlegungen zu Netzwerk und Sicherheit
Konfigurieren Sie Ihre Netzwerk- und Sicherheitseinstellungen basierend auf Ihrem gewählten Überwachungsansatz.
TLS und Zertifikate
Für sichere Verbindungen mit externen Überwachungssystemen:
- Verwenden gültiger TLS-Zertifikate nach Möglichkeit
- Konfigurieren Sie die entsprechenden
tls_configEinstellungen in Ihrem Überwachungssystem - Erwägen Sie die Verwendung von gegenseitigem TLS (MTLS) für erhöhte Sicherheit
Nächste Schritte
- Informationen zum Konfigurieren von OpenTelemetry-Einstellungen finden Sie unter Konfigurieren von OpenTelemetry für Ihre Instanz.
- Weitere Informationen zu verfügbaren Metriken finden Sie unter Informationen zu OpenTelemetry-Metriken.