Skip to content

Резервная копия

Конфигурация Agora — стримы с источниками, настройки транскодера, пуши, шаблоны, зоны доставки, политика доступа, настройки стримеров — живёт в базе управляющего контура. Раздел Кластер → Резервная копия выгружает её файлом и загружает обратно.

Копия нужна в двух случаях:

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

Раздел видит только суперадминистратор: в файле копии лежат секреты установки.

Что входит в копию

  • Стримы — со всеми настройками: источники, транскодер, пуши, архив.
  • Шаблоны и CDN-зоны.
  • Политика доступа — как защищён просмотр.
  • Настройки central и политики записи.
  • Настройки стримеров — то, что правится в карточке стримера: диски архива и остальное.
  • VOD-каталог — описания ассетов и сведения о том, на дисках каких стримеров лежат их файлы. Сами медиафайлы в копию не входят, они остаются на дисках.

В копию не входят:

  • Состав кластера — какие машины в него вступили и с какими ключами. Ключ стримера выдаётся при вступлении и хранится на самом стримере; копия со старыми ключами после переустановки была бы бесполезна.
  • Администраторы. Восстановленный список администраторов закрыл бы вход тому, кто восстанавливает.
  • История — журнал аудита, сессии зрителей, статистика.
  • Медиа — архив и файлы VOD.

В файле копии лежат секреты: DRM-ключи и пароли в адресах источников и пушей. Храните его так же бережно, как сам сервер: не пересылайте почтой и не кладите в общие папки.

Как снять копию

  1. Откройте Кластер → Резервная копия и нажмите Создать копию.
  2. Копия собирается в фоне. Пока она собирается, строка в списке Копии стоит в статусе в работе. Оставаться на странице не нужно: готовую копию можно забрать позже.
  3. Когда статус станет готова, нажмите Скачать. Файл называется agora-config-<дата>-<номер>.jsonl.gz.

Готовая копия в разделе «Резервная копия»

Копия хранится не в каталоге на диске, а в базе управляющего контура, рядом с конфигурацией, — поэтому её можно скачать с любого инстанса central. У установки в Docker это том базы PostgreSQL. Там копии живут 30 дней, потом удаляются.

Из этого следует главное: копия на коробке погибает вместе с базой. От аварии спасает только скачанный файл — уносите его с коробки.

Снимайте копию перед заметной правкой — перед переездом стримов, сменой политики доступа, массовым изменением шаблонов.

Как восстановить

Восстановление идёт в три шага: загрузка файла, план, подтверждение. До подтверждения конфигурация не меняется.

  1. В блоке Восстановления нажмите Загрузить файл и выберите файл копии.
  2. Коробка читает файл и строит план — что именно изменится. Строка восстановления переходит в статус ждёт подтверждения. Нажмите на неё, чтобы открыть план.
  3. Проверьте план и нажмите Восстановить.

Как читать план

План — таблица по разделам копии:

  • Создать — такого на коробке нет, оно появится.
  • Перезаписать — есть, но отличается; версию коробки заменит версия из копии.
  • Удалить — есть на коробке, но нет в копии. Восстановление возвращает конфигурацию к моменту копии, поэтому стримы, заведённые после копии, будут удалены. Их имена стоят под строкой раздела — прочтите их до подтверждения.
  • Без изменений — совпадает с копией.
  • Ждёт стример — настройки стримера, которому пока не нашлось машины (см. Отложенный стример).

VOD-каталог восстанавливается только добавлением: ассеты, которых нет в копии, остаются на месте. Удаление ассета стирает его файлы с дисков, и откат этого делать не должен.

Если в плане есть ошибки — например, в копии больше стримов, чем разрешает лицензия новой коробки, — кнопка Восстановить заперта, пока причина не устранена.

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

Восстановление оставляет следы в журнале аудита: запись config_restore.apply и записи о каждом изменённом стриме, шаблоне и зоне с номером восстановления.

Кластер из нескольких стримеров

На одной коробке восстановление этим и исчерпывается. В кластере есть ещё вопрос: какой машине достанутся настройки какого стримера.

Почему стримеры не встают на свои места сами

У каждого стримера кластера есть номер: его выдаёт коробка, когда машина вступает в кластер. Настройки стримера привязаны к этому номеру. Новая коробка с чистой базой выдаёт номера заново, в порядке вступления: машина, которая была стримером №3, может стать №2, а под №3 окажется совсем другая машина. Восстанавливать настройки по номерам значило бы отдать диски архива одной машины другой.

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

  • локальный стример коробки получает свои настройки автоматически;
  • та же машина — стример, вступивший в новый кластер с той же идентичностью, узнаётся автоматически, какой бы номер он ни получил;
  • остальных решаете вы: выбираете стример в плане или откладываете решение.

Имя хоста к привязке само не ведёт: у машин, развёрнутых из одного образа, оно бывает одинаковым. В плане оно — подсказка для вас.

Пример

Коробка и два стримера, edge-1 и edge-2, ведут четыре камеры с архивом. Копия снята на живом кластере:

Кластер в момент снятия копии

Потом коробка погибла вместе с базой. edge-1 уцелел, edge-2 потерян, и на замену ему ставят новую машину edge-3.

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

Порядок восстановления

  1. Поставьте новую коробку — пакет agora, как при первой установке (см. Установку). Войдите статическими учётными данными из /etc/agora/secrets.env и заведите первого администратора (см. Администраторы): администраторы в копию не входят.
  2. Откройте окно присоединения: Кластер → Стримеры → Разрешить присоединение (см. Присоединение сервера).
  3. Верните уцелевшие стримеры. Ключ, выданный погибшей коробкой, новая не знает, и сама машина в неё не войдёт — в журнале стримера это строка node key rejected. На каждом уцелевшем стримере впишите новый токен в строку JOIN_TOKEN= файла /etc/agora/secrets.env (и адрес коробки в CENTRAL_URL=, если он изменился), удалите старый ключ и перезапустите сервис:

    rm /var/lib/agora/identity.json
    systemctl restart agora
    

    Удаляйте только файл ключа. Остальное в /var/lib/agora не трогайте: там же лежит идентичность машины, по которой план её узнает и к которой привязана лицензия. На время перезапуска стримы этой машины прерываются.

  4. Поставьте машины на замену — пакет agora-base с тем же токеном, как при обычном расширении кластера (см. Установку).

  5. Проверьте состав в Кластер → Стримеры. Номера у машин новые: edge-1 вступил вторым и получил №2. Настроек у стримеров пока нет — ни дисков архива, ни адресов, отсюда пометка нет адреса: их вернёт копия.

    Новый кластер: коробка, вернувшийся edge-1 и новая edge-3

  6. Загрузите копию и откройте план. Блок Стримеры показывает, куда встанут настройки каждого стримера из копии: локальный — на локальный, edge-1 узнан как та же машина, а для edge-2 машины нет, и выбор за вами.

    План восстановления кластера

  7. Выберите машину для неузнанного стримера. В списке — свободные стримеры нового кластера. Пометка та же машина стоит у кандидата с той же идентичностью; у edge-3 её нет, это другая машина, и выбрать её — ваше решение. Если машина на замену ещё не готова, оставьте Позже.

    Выбор машины для стримера из копии

  8. Нажмите «Восстановить». Конфигурация применяется, и коробка размещает стримы на стримерах так же, как после любой правки.

Отложенный стример

Настройки, оставленные на потом, хранятся в карточке восстановления вместе с размещениями VOD-файлов на дисках этой машины. Пока они не применены, машины с этими настройками в кластере нет: стримы с архивом размещаются на тех стримерах, у которых диски уже заведены. В примере все четыре камеры уходят на edge-1.

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

Применение отложенных настроек к вступившему стримеру

Стример получает настройки из копии — диски архива и остальное, — и коробка снова может размещать на нём работу. Адреса у машины на замену свои: копия переносит адреса только на ту же машину, иначе central ходил бы к погибшей. Если у стримера стоит пометка нет адреса, впишите адрес в его карточке.

Кластер после восстановления: у каждого стримера свои настройки

Отложенные настройки применяет только оператор, кнопкой. Машина, вступившая в кластер, сама чужие настройки не забирает: вступление машины не должно менять конфигурацию без человека.

Откат на живом кластере

Если коробка цела и копия нужна, чтобы отменить неудачную правку, шаги с переустановкой не нужны: стримеры остаются в кластере со своими номерами и идентичностью, и план привязывает их автоматически. Загрузите копию, прочтите, что стоит в колонке Удалить, и подтвердите.