Прежде чем начать

Прежде чем приступить к настройке Git Sync, убедитесь, что у вас есть следующее:

Включение необходимых переключателей функций

Переключатель функции provisioning включён по умолчанию в Grafana Cloud, а начиная с Grafana v13 — также для OSS и Enterprise. Ручная настройка не требуется.

Подробнее о переключателях функций см. в разделе Настройка переключателей функций.

Включение Git-провайдеров

Если вы используете Grafana Enterprise v12.4.0 и хотите настроить Git Sync с pure Git, GitLab или Bitbucket, либо если вы используете Grafana OSS v12.4.0 и хотите настроить Git Sync с pure Git, добавьте их в файл конфигурации:

  1. Откройте файл конфигурации Grafana — grafana.ini или custom.ini.

  2. Добавьте доступные провайдеры:

    ini
    [provisioning]
    repository_types = "git|github|bitbucket|gitlab|local"
  3. Сохраните изменения в файле и перезапустите Grafana.

Сетевое подключение и списки разрешённых IP-адресов

Git Sync требует сетевого подключения между вашим экземпляром Grafana и Git-сервером. Понимание шаблонов трафика помогает правильно настроить правила брандмауэра и списки разрешённых адресов.

Типы трафика

Git Sync использует два типа сетевого трафика:

  • Операции синхронизации (pull и push): от Grafana к Git-серверу
    • Исходящий трафик с IP-адресов Hosted Grafana
    • Ваши Git-серверы должны допускать входящий трафик с этих IP-адресов
    • Список IP-адресов для добавления в список разрешённых вашего Git-сервера см. в разделе Исходные IP-адреса Hosted Grafana
  • Webhooks (мгновенная синхронизация): от Git-сервера к стеку Grafana
    • Входящий трафик к публичной конечной точке стека
    • Ваш Git-сервер должен иметь возможность обратиться к *.grafana.net
    • Требуется только если вы используете webhooks

Git Sync не маршрутизируется через AWS PrivateLink или Private Data Source Connect (PDC). Вместо этого Git Sync использует обычный публичный путь с IP-адресов Hosted Grafana, независимый от PrivateLink и PDC. AWS PrivateLink и PDC предоставляют отдельный туннель для трафика запросов к источникам данных — от Grafana к вашим приватным базам данных или источникам данных.

Если вы используете AWS PrivateLink или PDC для источников данных, вы всё равно можете использовать Git Sync. Эти две функции не мешают друг другу и не зависят друг от друга.

Разрешение внутренних или приватных Git-серверов

Note

Эта настройка доступна в Grafana v13.0.4 и Grafana v13.1.1 и более поздних версиях. Она применима только к самостоятельно управляемой Grafana (OSS и Enterprise) и не настраивается в Grafana Cloud.

Хотя публичные Git-серверы, такие как github.com, gitlab.com и bitbucket.org, разрешаются в публичные адреса и всегда разрешены, по умолчанию Git Sync отклоняет URL репозиториев, хост которых разрешается в адрес loopback, приватный (RFC 1918), link-local или неопределённый адрес. Это защищает ваш экземпляр Grafana от подделки запросов на стороне сервера (SSRF).

Если вы подключаете Git Sync к Git-серверу в приватной сети, например к самостоятельно размещённому экземпляру GitHub Enterprise, GitLab или Bitbucket, доступному только по внутреннему адресу, добавьте его хост в список разрешённых allowed_git_urls:

  1. Откройте файл конфигурации Grafana — grafana.ini или custom.ini.

  2. Добавьте каждый внутренний Git-хост в allowed_git_urls в виде списка, разделённого запятыми:

    ini
    [provisioning]
    allowed_git_urls = git.internal.example.com, ghe.example.com:8443
  3. Сохраните изменения в файле и перезапустите Grafana.

Каждая запись может быть именем хоста, host:port, полным URL (используется только хост), литеральным IP-адресом или диапазоном CIDR. По возможности используйте конкретные хосты или узкие диапазоны, поскольку широкий CIDR, например 10.0.0.0/8, снова открывает весь приватный диапазон, который блокирует защита от SSRF.

Добавляйте только те хосты, которым доверяете, поскольку хост из списка разрешённых получает настроенный Git-токен при каждой синхронизации, выборке и отправке.

Разрешения ресурсов и ролей

По умолчанию папки, выделенные с помощью Git Sync, имеют следующие роли:

  • Admin = Admin
  • Editor = Editor
  • Viewer = Viewer.

Подробнее о том, как настроить разрешения в Git Sync, см. в разделе Разрешения Git Sync. Чтобы изменить их, обратитесь к разделу Управление разрешениями папок.

Дополнительную информацию о ролях Grafana см. в разделе Роли и разрешения.

Создание GitHub App

GitHub Apps — это инструменты, расширяющие функциональность GitHub. Они используют мелкогранулярные разрешения и короткоживущие токены, что даёт вам больше контроля над тем, к каким репозиториям идёт доступ. Подробнее см. в официальной документации GitHub Apps.

Если вы решили аутентифицироваться с помощью только что созданного GitHub App, вам понадобятся следующие параметры:

  • GitHub App ID
  • GitHub App Private Key
  • GitHub App Installation ID

Существует много способов создать GitHub App. Приведённые ниже инструкции носят информационный характер; за подробностями всегда обращайтесь к официальной документации GitHub.

Чтобы создать GitHub App, выполните следующие шаги:

  1. Перейдите на https://github.com/settings/apps и нажмите New Github App или сразу откройте https://github.com/settings/apps/new
  2. Заполните следующие поля:
    • Name: должно быть уникальным
    • Homepage URL: например, URL вашего экземпляра Grafana Cloud
  3. Прокрутите вниз до раздела Webhook и снимите флажок Active
  4. В разделе Permissions перейдите к Repository permissions и задайте следующие параметры:
    • Administration: разрешение на чтение (позволяет проверять правила защиты веток применительно к настроенной ветке, когда пользователи могут пушить в неё напрямую; в будущем может использоваться для проверки других настроек репозитория и упрощения процесса настройки)
    • Contents: разрешение на чтение и запись
    • Metadata: разрешение на чтение
    • Pull requests: разрешение на чтение и запись
    • Webhooks: разрешение на чтение и запись
  5. Наконец, в разделе Where can this GitHub App be installed? выберите Only on this account
  6. Нажмите Create Github App, чтобы завершить процесс.

На странице приложения:

  1. Скопируйте AppID из раздела About
  2. Выберите Generate private key на баннере или прокрутите вниз до раздела Private Keys, чтобы сгенерировать ключ
  3. На ваш компьютер будет скачан файл PEM с приватным ключом

Наконец, установите приложение:

  1. В левом верхнем углу страницы приложения нажмите Install App
  2. Выберите, для какого пользователя его нужно установить; вы будете перенаправлены на экран выбора репозиториев
  3. Выберите, для каких репозиториев хотите установить приложение
  4. Нажмите Install.
  5. На странице установки скопируйте installationID из URL страницы https://github.com/settings/installations/installationID

Теперь вы можете перейти к разделу Настройка Git Sync!

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

Дополнительные сведения о том, как работает Git Sync, см. в следующих разделах: