Skip to main content

Enterprise Server 3.21 в настоящее время доступен в качестве кандидата на выпуск.

Настройка внешнего мониторинга с помощью OpenTelemetry

Настройте внешние системы мониторинга для сбора и анализа метрик OpenTelemetry из экземпляра GitHub Enterprise Server.

Подходы к внешнему мониторингу

Внешний мониторинг с помощью OpenTelemetry позволяет интегрировать экземпляр GitHub Enterprise Server с существующей инфраструктурой и инструментами мониторинга. GitHub Enterprise Server предоставляет два основных подхода к внешнему мониторингу:

  1.        **Конечная точка Prometheus**: предоставление метрик в формате Prometheus для извлечения внешними инструментами
    
  2.        **Пользовательские конвейеры OpenTelemetry**: настройка сборщика OpenTelemetry для отправки метрик во внешние системы мониторинга
    

Примечание.

В развертываниях кластера каждый узел предоставляет собственные локальные метрики. К ним относятся серверы узлов, которые собирают метрики со всех серверов в кластере, но предоставляют только свои собственные локальные метрики через конечные точки мониторинга. Чтобы собирать метрики со всех узлов в кластере, необходимо настроить систему мониторинга для сбора данных с каждого узла по отдельности.

Предпосылки

  • GitHub Enterprise Server 3.18 или более поздней версии с включенными метриками OpenTelemetry
  • Сетевое подключение между экземпляром GitHub Enterprise Server и внешними системами мониторинга
  • Административный доступ к вашему экземпляру GitHub Enterprise Server и системам мониторинга

Выбор подхода к мониторингу

Выберите подход к мониторингу, который лучше всего соответствует вашей инфраструктуре и требованиям.

Используйте конечную точку Prometheus в следующих случаях:

  • У вас уже есть инфраструктура мониторинга на основе Prometheus
  • Вы предпочитаете модель мониторинга на основе извлечения
  • Вы хотите использовать внешние инструменты для парсинга GitHub Enterprise Server метрик
  • Нужна простая интеграция с минимальной настройкой

Пользовательские конвейеры OpenTelemetry

Используйте настраиваемые конвейеры OpenTelemetry в следующих случаях:

  • Вам необходимо передавать метрики в несколько систем мониторинга одновременно
  • Вы хотите преобразовать, отфильтровать или агрегировать метрики перед их отправкой извне
  • Вы используете облачные решения для мониторинга, которые предпочитают OTLP
  • Вам нужны расширенные возможности обработки метрик

Вариант 1: Использование конечной точки Prometheus

Стек мониторинга OpenTelemetry включает в себя конечную точку, совместимую с Prometheus, которая предоставляет все собранные метрики в формате Prometheus, обеспечивая интеграцию с внешними средствами мониторинга. Смотрите раздел Текстовый формат в документации по Prometheus.

Включение конечной точки Prometheus

Вы можете включить конечную точку Prometheus с помощью Консоль управления или интерфейса командной строки.

Использование консоли управления

  1. В учетной записи администратора GitHub Enterprise Server, в правом верхнем углу любой страницы щелкните .

  2. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.

  3. На боковой панели " "Администратор сайта" щелкните Консоль управления.

  4. В параметрах мониторинга выберите Включить OpenTelemetry.

  5. При необходимости настройте поля Хранение метрик и Интервал парсинга метрик для оптимизации производительности.

  6. Выберите Включить конечную точку, совместимую с Prometheus (/metrics).

  7. В поле Пароль конечной точки введите надежный пароль для управления доступом к конечной точке.

  8. При необходимости в поле Доверенные адреса IPv4/IPv6 или блоки CIDR в списке, разделенном запятыми , введите IP-адреса или блоки CIDR, которым разрешен доступ к конечной точке.

  9. На боковой панели "Параметры" нажмите кнопку "Сохранить параметры".

    Примечание.

    Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простоям, видимым пользователем.

  10. Подождите завершения запуска конфигурации.

Использование интерфейса командной строки

  1. SSH в ваш экземпляр GitHub Enterprise Server.

  2. Включите конечную точку Prometheus:

    ghe-config observability.metrics.prometheus-endpoint-enabled true
    ghe-config-apply
    
  3. Настройте аутентификацию для конечной точки (настоятельно рекомендуется):

    ghe-config observability.metrics.prometheus-endpoint-password your-secure-password
    ghe-config-apply
    

Доступ к конечной точке Prometheus

Конечная точка Prometheus будет доступна по адресу:

https://[hostname]:8010/metrics

Использование аутентификации:

  • Username: (Имя пользователя) ghes-metrics.
  • Пароль: значение, установленное в конфигурации

Настройка внешних инструментов для парсинга метрик

Вы можете настроить различные внешние средства мониторинга для извлечения метрик из конечной точки Prometheus.

Prometheus

Добавьте следующую конфигурацию задания в файл конфигурации 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

Другие инструменты мониторинга

Конечная точка Prometheus совместима с любым инструментом мониторинга, который может извлекать метрики в формате Prometheus, в том числе:

  • Grafana (с использованием источника данных Prometheus)
  • Datadog (с помощью проверки Prometheus)
  • Новая реликвия (с использованием интеграции с Prometheus)
  • Виктория Метрикс
  • InfluxDB (с использованием плагина ввода Prometheus)

Вопросы безопасности для конечной точки Prometheus

Для защиты конечной точки метрик можно реализовать дополнительные меры безопасности.

Защита паролей

Конечная точка Prometheus поддерживает использование пароля для ограничения доступа. Вы можете настроить это либо с помощью Консоль управления, либо через интерфейс командной строки.

  • С помощью консоли управления:

    В настройках мониторинга используйте поле Пароль конечной точки , чтобы ввести надежный пароль для управления доступом к конечной точке.

  • С помощью интерфейса командной строки:

    ghe-config observability.metrics.prometheus-endpoint-password your-secure-password
    ghe-config-apply
    

Белый список IP-адресов

Конечная точка Prometheus поддерживает белый список IP-адресов для повышения безопасности. Вы можете настроить это либо с помощью Консоль управления, либо через интерфейс командной строки.

  • С помощью консоли управления:

    В настройках мониторинга используйте Доверенные адреса IPv4/IPv6 или блоки CIDR в поле списка, разделенного запятыми , чтобы ввести IP-адреса или блоки CIDR, которые должны иметь доступ к конечной точке.

  • С помощью интерфейса командной строки:

    ghe-config observability.metrics.prometheus-endpoint-trusted-ips "10.0.0.0/8,192.168.0.0/16"
    ghe-config-apply
    

Тестирование конечной точки

Убедитесь, что метрики экспортируются:

# Test the Prometheus endpoint
curl -u ghes-metrics:your-password https://your-ghes-hostname:8010/metrics

Вариант 2: использование пользовательских конвейеров OpenTelemetry

GitHub Enterprise Server поддерживает пользовательские конфигурации сборщика OpenTelemetry, что позволяет расширить возможности мониторинга за счет добавления пользовательских конвейеров, экспортеров и процессоров. Это позволяет отправлять метрики во внешние системы мониторинга, сохраняя при этом стек наблюдаемости GitHub Enterprise Server по умолчанию.

Важные рекомендации по пользовательским конфигурациям

  • Пользовательские конфигурации являются аддитивными к стандартной конфигурации GitHub Enterprise Server OpenTelemetry
  • Зарезервированные пути: Пути /ghes и /internal зарезервированы для GitHub Enterprise Server внутреннего использования и не должны использоваться в пользовательских файлах конфигурации
  • otlp/ghes А prometheus/ghes получатели — это встроенные источники GitHub Enterprise Server метрик, которые можно использовать в пользовательских конвейерах
  • Тщательно протестируйте конфигурацию в непроизводственной среде перед подачей заявки в рабочую среду
  • Отслеживайте использование ресурсов после включения пользовательских конфигураций, так как дополнительные конвейеры могут увеличить потребление ЦП и памяти

Включение пользовательской конфигурации OpenTelemetry

Вы можете включить пользовательскую конфигурацию OpenTelemetry с помощью Консоль управления или интерфейса командной строки.

Использование консоли управления

  1. В учетной записи администратора GitHub Enterprise Server, в правом верхнем углу любой страницы щелкните .

  2. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.

  3. На боковой панели " "Администратор сайта" щелкните Консоль управления.

  4. В параметрах мониторинга сначала выберите Включить OpenTelemetry.

  5. Выберите Включить пользовательские конвейеры сборщика OpenTelemetry.

  6. Используйте кнопку "Обзор...", чтобы отправить пользовательский файл конфигурации сборщика OpenTelemetry (*.yml), см. раздел Примеры конфигураций для популярных систем мониторинга.

  7. На боковой панели "Параметры" нажмите кнопку "Сохранить параметры".

    Примечание.

    Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простоям, видимым пользователем.

  8. Подождите завершения запуска конфигурации.

Использование командной строки

  1. SSH в ваш экземпляр GitHub Enterprise Server и выполните следующую команду.

    ghe-config observability.metrics.custom-config-enabled true
    
  2. Создайте пользовательский файл конфигурации OpenTelemetry по адресу /data/user/common/otelcol.yaml:

    sudo nano /data/user/common/otelcol.yaml
    
  3. Добавьте свою пользовательскую конфигурацию (см. Примеры конфигураций для популярных систем мониторинга).

  4. Примените конфигурацию:

    ghe-config-apply
    

В следующих примерах показано, как настроить пользовательские конвейеры OpenTelemetry для популярных платформ мониторинга. Сведения о других экспортерах или о создании собственного см. в репозитории сборщиков OpenTelemetry.

Облако Графана

---
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]

Датадог

---
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]

Универсальная конечная точка 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]

Вопросы сети и безопасности

Настройте параметры сети и безопасности в соответствии с выбранным подходом к мониторингу.

TLS и сертификаты

Для безопасного подключения к внешним системам мониторинга:

  • По возможности используйте действительные сертификаты TLS
  • Настройте соответствующие tls_config параметры в вашей системе мониторинга
  • Рассмотрите возможность использования взаимного TLS (mTLS) для повышения безопасности

Дальнейшие шаги

  • Сведения о настройке параметров OpenTelemetry см. в разделе AUTOTITLE.
  • Чтобы узнать больше о доступных метриках, см. AUTOTITLE.