Документацияbreadcrumb arrow Grafanabreadcrumb arrow Документация GlaberGraphbreadcrumb arrow Настройкаbreadcrumb arrow Настройка Grafanabreadcrumb arrow Обновления настроек во время выполнения

Обновления настроек во время выполнения

Note

Эта функциональность устарела и будет удалена в будущем релизе. Для настройки аутентификации SAML, пожалуйста, используйте новый API настроек SSO.

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

Обновления, которые происходят во время выполнения, хранятся в базе данных и переопределяют настройки из других источников (аргументы, переменные среды, файл настроек и т. д.). Поэтому каждый раз, когда конкретный ключ настройки удаляется во время выполнения, значение, используемое для этого ключа, является унаследованным от других источников в обратном порядке приоритета (аргументы > переменные среды > файл настроек). Когда значение не предоставлено ни через один из этих параметров, то используемым значением будет значение приложения по умолчанию

В настоящее время поддерживаются обновления только раздела auth.saml.

Обновление настроек через API

Вы можете обновлять настройки через Admin API.

Когда вы отправляете обновление настроек через API, Grafana проверяет, разрешены и допустимы ли данные обновления настроек. Если да, то Grafana сохраняет настройки в базе данных и перезагружает службы Grafana без необходимости перезапускать экземпляр.

Итак, полезная нагрузка запроса PUT к конечной точке обновления настроек (/api/admin/settings) должна содержать (либо одно, либо оба):

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

Например, если вы предоставите следующие updates:

JSON
{
  "updates": {
    "auth.saml": {
      "enabled": "true",
      "single_logout": "false"
    }
  }
}

это включило бы SAML и отключило единые выходы. А если вы предоставите следующие removals:

JSON
{
  "removals": {
    "auth.saml": ["allow_idp_initiated"]
  }
}

это удалило бы настройку ключ/значение, идентифицированную allow_idp_initiated внутри auth.saml. Таким образом, служба SAML была бы перезагружена, и это значение было бы унаследовано от любого из (файла настроек .ini, переменной среды, аргументов командной строки или любого другого принятого механизма предоставления конфигурации).

Поэтому полная полезная нагрузка HTTP выглядела бы так:

JSON
{
  "updates": {
    "auth.saml": {
      "enabled": "true",
      "single_logout": "false"
    }
  },
  "removals": {
    "auth.saml": ["allow_idp_initiated"]
  }
}

В случае, если любые из этих настроек не могут быть переопределены или недопустимы, это вернёт ошибку, и эти настройки не будут сохранены в базе данных.

Фоновое задание (конфигурации высокой доступности)

Grafana Enterprise имеет встроенное запланированное фоновое задание, которое каждую минуту проверяет базу данных на предмет обновлений настроек. Если есть обновления, оно перезагружает службы Grafana, затронутые обнаруженными изменениями.

Фоновое задание синхронизирует настройки между экземплярами в конфигурации высокой доступности. Поэтому после того, как вы внесёте некоторые изменения через HTTP API, другие экземпляры синхронизируются через базу данных и фоновое задание.

Управление доступом с помощью управления доступом на основе ролей

Если у вас включено управление доступом на основе ролей, вы можете контролировать, кто может читать или обновлять настройки. Дополнительную информацию см. в Admin API.