Подходы к внешнему мониторингу
Внешний мониторинг с помощью OpenTelemetry позволяет интегрировать экземпляр GitHub Enterprise Server с существующей инфраструктурой и инструментами мониторинга. GitHub Enterprise Server предоставляет два основных подхода к внешнему мониторингу:
-
**Конечная точка Prometheus**: предоставление метрик в формате Prometheus для извлечения внешними инструментами -
**Пользовательские конвейеры OpenTelemetry**: настройка сборщика OpenTelemetry для отправки метрик во внешние системы мониторинга
Примечание.
В развертываниях кластера каждый узел предоставляет собственные локальные метрики. К ним относятся серверы узлов, которые собирают метрики со всех серверов в кластере, но предоставляют только свои собственные локальные метрики через конечные точки мониторинга. Чтобы собирать метрики со всех узлов в кластере, необходимо настроить систему мониторинга для сбора данных с каждого узла по отдельности.
Предпосылки
- GitHub Enterprise Server 3.18 или более поздней версии с включенными метриками OpenTelemetry
- Сетевое подключение между экземпляром GitHub Enterprise Server и внешними системами мониторинга
- Административный доступ к вашему экземпляру GitHub Enterprise Server и системам мониторинга
Выбор подхода к мониторингу
Выберите подход к мониторингу, который лучше всего соответствует вашей инфраструктуре и требованиям.
Конечная точка Prometheus (рекомендуется для большинства пользователей)
Используйте конечную точку Prometheus в следующих случаях:
- У вас уже есть инфраструктура мониторинга на основе Prometheus
- Вы предпочитаете модель мониторинга на основе извлечения
- Вы хотите использовать внешние инструменты для парсинга GitHub Enterprise Server метрик
- Нужна простая интеграция с минимальной настройкой
Пользовательские конвейеры OpenTelemetry
Используйте настраиваемые конвейеры OpenTelemetry в следующих случаях:
- Вам необходимо передавать метрики в несколько систем мониторинга одновременно
- Вы хотите преобразовать, отфильтровать или агрегировать метрики перед их отправкой извне
- Вы используете облачные решения для мониторинга, которые предпочитают OTLP
- Вам нужны расширенные возможности обработки метрик
Вариант 1: Использование конечной точки Prometheus
Стек мониторинга OpenTelemetry включает в себя конечную точку, совместимую с Prometheus, которая предоставляет все собранные метрики в формате Prometheus, обеспечивая интеграцию с внешними средствами мониторинга. Смотрите раздел Текстовый формат в документации по Prometheus.
Включение конечной точки Prometheus
Вы можете включить конечную точку Prometheus с помощью Консоль управления или интерфейса командной строки.
Использование консоли управления
-
В учетной записи администратора GitHub Enterprise Server, в правом верхнем углу любой страницы щелкните .
-
Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.
-
На боковой панели " "Администратор сайта" щелкните Консоль управления.
-
В параметрах мониторинга выберите Включить OpenTelemetry.
-
При необходимости настройте поля Хранение метрик и Интервал парсинга метрик для оптимизации производительности.
-
Выберите Включить конечную точку, совместимую с Prometheus (/metrics).
-
В поле Пароль конечной точки введите надежный пароль для управления доступом к конечной точке.
-
При необходимости в поле Доверенные адреса IPv4/IPv6 или блоки CIDR в списке, разделенном запятыми , введите IP-адреса или блоки CIDR, которым разрешен доступ к конечной точке.
-
На боковой панели "Параметры" нажмите кнопку "Сохранить параметры".
Примечание.
Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простоям, видимым пользователем.
-
Подождите завершения запуска конфигурации.
Использование интерфейса командной строки
-
SSH в ваш экземпляр GitHub Enterprise Server.
-
Включите конечную точку Prometheus:
ghe-config observability.metrics.prometheus-endpoint-enabled true ghe-config-apply -
Настройте аутентификацию для конечной точки (настоятельно рекомендуется):
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 с помощью Консоль управления или интерфейса командной строки.
Использование консоли управления
-
В учетной записи администратора GitHub Enterprise Server, в правом верхнем углу любой страницы щелкните .
-
Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.
-
На боковой панели " "Администратор сайта" щелкните Консоль управления.
-
В параметрах мониторинга сначала выберите Включить OpenTelemetry.
-
Выберите Включить пользовательские конвейеры сборщика OpenTelemetry.
-
Используйте кнопку "Обзор...", чтобы отправить пользовательский файл конфигурации сборщика OpenTelemetry (*.yml), см. раздел Примеры конфигураций для популярных систем мониторинга.
-
На боковой панели "Параметры" нажмите кнопку "Сохранить параметры".
Примечание.
Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простоям, видимым пользователем.
-
Подождите завершения запуска конфигурации.
Использование командной строки
-
SSH в ваш экземпляр GitHub Enterprise Server и выполните следующую команду.
ghe-config observability.metrics.custom-config-enabled true -
Создайте пользовательский файл конфигурации OpenTelemetry по адресу
/data/user/common/otelcol.yaml:sudo nano /data/user/common/otelcol.yaml -
Добавьте свою пользовательскую конфигурацию (см. Примеры конфигураций для популярных систем мониторинга).
-
Примените конфигурацию:
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.