<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Документация Proto Observability Platform – регламент</title><link>/docs/tags/%D1%80%D0%B5%D0%B3%D0%BB%D0%B0%D0%BC%D0%B5%D0%BD%D1%82/</link><description>Recent content in регламент on Документация Proto Observability Platform</description><generator>Hugo -- gohugo.io</generator><language>ru</language><atom:link href="/docs/tags/%D1%80%D0%B5%D0%B3%D0%BB%D0%B0%D0%BC%D0%B5%D0%BD%D1%82/index.xml" rel="self" type="application/rss+xml"/><item><title>Setup: Резервное копирование и восстановление</title><link>/docs/setup/backup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/setup/backup/</guid><description>
&lt;p>На этой странице:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d1%8c-%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f">Область применения&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d1%87%d1%82%d0%be-%d0%ba%d0%be%d0%bf%d0%b8%d1%80%d1%83%d0%b5%d1%82%d1%81%d1%8f">Что копируется&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d1%80%d0%b5%d0%ba%d0%be%d0%bc%d0%b5%d0%bd%d0%b4%d1%83%d0%b5%d0%bc%d1%8b%d0%b9-%d1%80%d0%b5%d0%b3%d0%bb%d0%b0%d0%bc%d0%b5%d0%bd%d1%82">Рекомендуемый регламент&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d0%ba%d0%be%d0%bf%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3%d1%83%d1%80%d0%b0%d1%86%d0%b8%d0%b8">Копирование конфигурации&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d0%ba%d0%be%d0%bf%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%83%d1%87%d1%91%d1%82%d0%bd%d1%8b%d1%85-%d0%b7%d0%b0%d0%bf%d0%b8%d1%81%d0%b5%d0%b9-%d0%b8-%d0%bf%d1%80%d0%b0%d0%b2-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf%d0%b0">Копирование учётных записей и прав доступа&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d0%ba%d0%be%d0%bf%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%ba-%d0%b8-%d0%b6%d1%83%d1%80%d0%bd%d0%b0%d0%bb%d0%be%d0%b2-%d0%b8%d0%b7-%d0%b1%d0%b4">Копирование настроек и журналов из БД&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d0%ba%d0%be%d0%bf%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85-%d1%82%d0%b5%d0%bb%d0%b5%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%b8">Копирование данных телеметрии&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0-%d1%80%d0%b5%d0%b7%d0%b5%d1%80%d0%b2%d0%bd%d0%be%d0%b9-%d0%ba%d0%be%d0%bf%d0%b8%d0%b8">Проверка резервной копии&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d0%b2%d0%be%d1%81%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5">Восстановление&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%d1%85%d1%80%d0%b0%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bf%d0%b8%d0%b9">Хранение копий&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="область-применения">Область применения&lt;/h2>
&lt;p>Регламент описывает резервное копирование ProtoOBP Backend в варианте установки &lt;strong>на одном сервере&lt;/strong>
(см. &lt;a href="../backend-setup">Установка бэкенда&lt;/a>). Для конфигураций из двух и более серверов порядок копирования
предоставляется по запросу в техническую поддержку Proto.&lt;/p>
&lt;p>Далее используются значения путей по умолчанию:&lt;/p>
&lt;ul>
&lt;li>каталог установки — &lt;code>/opt/protoobp&lt;/code>;&lt;/li>
&lt;li>каталог данных (&lt;code>POBP_DATA_DIRECTORY&lt;/code>) — &lt;code>/opt/protoobp/data&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>Если при установке значения менялись — скорректируйте команды.&lt;/p>
&lt;p>Агенты ProtoOBP резервному копированию не подлежат: их конфигурация задаётся при установке
и восстанавливается переустановкой агента.&lt;/p>
&lt;h2 id="что-копируется">Что копируется&lt;/h2>
&lt;p>Состояние платформы делится на четыре группы с разной ценностью и разной стоимостью копирования.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Группа&lt;/th>
&lt;th style="text-align:left">Что входит&lt;/th>
&lt;th style="text-align:left">Объём&lt;/th>
&lt;th style="text-align:left">Критичность&lt;/th>
&lt;th style="text-align:left">Периодичность&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">Конфигурация в файлах&lt;/td>
&lt;td style="text-align:left">&lt;code>/opt/protoobp/.env&lt;/code>, &lt;code>docker-compose-202.yaml&lt;/code>, каталог &lt;code>config/&lt;/code>, файлы &lt;code>.env_ldap*&lt;/code>, &lt;code>.env_oidc&lt;/code>, файлы SSL-сертификата&lt;/td>
&lt;td style="text-align:left">единицы МБ&lt;/td>
&lt;td style="text-align:left">высокая&lt;/td>
&lt;td style="text-align:left">после каждого изменения + еженедельно&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Учётные записи и права&lt;/td>
&lt;td style="text-align:left">БД сервиса &lt;code>proto-auth&lt;/code> (том &lt;code>postgres_data&lt;/code>): пользователи, роли, группы, настройки LDAP/OIDC-подключения&lt;/td>
&lt;td style="text-align:left">десятки МБ&lt;/td>
&lt;td style="text-align:left">высокая&lt;/td>
&lt;td style="text-align:left">ежесуточно&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Настройки и журналы в БД&lt;/td>
&lt;td style="text-align:left">таблицы настроек и журналов в &lt;code>data/database&lt;/code> (&lt;code>proto-database&lt;/code>): правила алертинга, каналы и маршруты оповещений, дашборды и папки дашбордов, бизнес-процессы, ключевые бизнес-транзакции, SLO, окна обслуживания, правила и расписания отчётов, настройки рабочего процесса инцидентов, пороги APDEX, правила извлечения данных, правила нормализации URL, маркеры изменений, настройки модели ресурсов, а также журнал аудита действий пользователей, история изменений конфигурационных единиц, история изменений рабочего процесса и история запусков отчётов&lt;/td>
&lt;td style="text-align:left">единицы–сотни МБ&lt;/td>
&lt;td style="text-align:left">&lt;strong>высокая&lt;/strong>&lt;/td>
&lt;td style="text-align:left">ежесуточно&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Данные телеметрии&lt;/td>
&lt;td style="text-align:left">остальное содержимое &lt;code>data/database&lt;/code> (метрики сервисов, трейсы, инциденты, состояние модели ресурсов, история исполнения бизнес-процессов), &lt;code>data/metrics&lt;/code> (инфраструктурные метрики), &lt;code>data/opensearch&lt;/code>, &lt;code>data/logs&lt;/code> (логи)&lt;/td>
&lt;td style="text-align:left">десятки–сотни ГБ&lt;/td>
&lt;td style="text-align:left">средняя&lt;/td>
&lt;td style="text-align:left">еженедельно или по решению заказчика&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Важно&lt;/h4>
&lt;p>Настройки, которые администратор создаёт в веб-интерфейсе, хранятся &lt;strong>не в файлах, а в &lt;code>proto-database&lt;/code>&lt;/strong>,
то есть в том же каталоге &lt;code>data/database&lt;/code>, что и телеметрия. Резервное копирование только файлов
конфигурации из &lt;code>/opt/protoobp&lt;/code> их &lt;strong>не сохраняет&lt;/strong>: при потере каталога данных правила
алертинга, каналы оповещений, дашборды, бизнес-процессы, ключевые транзакции, SLO, окна
обслуживания и расписания отчётов будут утеряны, а платформа стартует с поставляемыми
по умолчанию шаблонами. Поэтому в регламент обязательно включается либо ежесуточная выгрузка
таблиц настроек и журналов (см.
&lt;a href="#%d0%ba%d0%be%d0%bf%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%ba-%d0%b8-%d0%b6%d1%83%d1%80%d0%bd%d0%b0%d0%bb%d0%be%d0%b2-%d0%b8%d0%b7-%d0%b1%d0%b4">Копирование настроек и журналов из БД&lt;/a>),
либо полное копирование каталога данных.&lt;/p>
&lt;p>Файлы &lt;code>alertrules.yml&lt;/code> и &lt;code>alertpolicies.yml&lt;/code> резервной копией настроек алертинга &lt;strong>не являются&lt;/strong>:
это генерируемый слепок, который платформа перезаписывает из БД при каждом изменении правил
и каналов оповещения. Восстановление этих файлов без БД не вернёт настройки — при следующей
синхронизации они будут перезаписаны текущим содержимым БД.&lt;/p>
&lt;/div>
&lt;p>Не копируются (восстанавливаются автоматически при запуске платформы):&lt;/p>
&lt;ul>
&lt;li>&lt;code>data/kafka&lt;/code>, &lt;code>data/zookeeper&lt;/code> — транзитная очередь телеметрии;&lt;/li>
&lt;li>&lt;code>data/analyzer&lt;/code> — кеш аналитического слоя;&lt;/li>
&lt;li>&lt;code>debug/&lt;/code> — отладочные дампы.&lt;/li>
&lt;/ul>
&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">О смысле копирования телеметрии&lt;/h4>
Данные телеметрии хранятся ограниченное время (см. &lt;a href="../custom_configuration#%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3%d1%83%d1%80%d0%b0%d1%86%d0%b8%d1%8f-%d1%81%d1%80%d0%be%d0%ba%d0%b0-%d1%85%d1%80%d0%b0%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85">Конфигурация срока хранения данных&lt;/a>):
сырые трейсы — сутки, метрики — недели, агрегаты — до 60 дней. Восстановление недельной копии
возвращает данные, значительная часть которых уже утратила актуальность. Поэтому минимально
достаточный регламент — это копирование &lt;strong>конфигурации, учётных записей, а также настроек
и журналов из БД&lt;/strong>: он позволяет восстановить работоспособную и полностью настроенную
платформу за минуты, потеряв только историю телеметрии.
Полное копирование данных имеет смысл, если история метрик и трейсов используется для
разбора инцидентов задним числом или для отчётности.
&lt;/div>
&lt;h2 id="рекомендуемый-регламент">Рекомендуемый регламент&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Периодичность&lt;/th>
&lt;th style="text-align:left">Объект&lt;/th>
&lt;th style="text-align:left">Останов платформы&lt;/th>
&lt;th style="text-align:left">Ориентировочная длительность&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">После каждого изменения &lt;code>.env&lt;/code> или параметров запуска&lt;/td>
&lt;td style="text-align:left">конфигурация в файлах&lt;/td>
&lt;td style="text-align:left">не требуется&lt;/td>
&lt;td style="text-align:left">секунды&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">После массовых изменений правил алертинга, каналов оповещения или дашбордов&lt;/td>
&lt;td style="text-align:left">настройки и журналы из БД&lt;/td>
&lt;td style="text-align:left">не требуется&lt;/td>
&lt;td style="text-align:left">секунды&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Ежесуточно, ночью&lt;/td>
&lt;td style="text-align:left">конфигурация + учётные записи + настройки и журналы из БД&lt;/td>
&lt;td style="text-align:left">не требуется&lt;/td>
&lt;td style="text-align:left">минуты&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Еженедельно, в окно обслуживания&lt;/td>
&lt;td style="text-align:left">полная копия, включая данные телеметрии&lt;/td>
&lt;td style="text-align:left">требуется&lt;/td>
&lt;td style="text-align:left">зависит от объёма данных, обычно 20–90 минут&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">Перед обновлением версии платформы&lt;/td>
&lt;td style="text-align:left">полная копия&lt;/td>
&lt;td style="text-align:left">требуется&lt;/td>
&lt;td style="text-align:left">—&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Глубина хранения по умолчанию: ежесуточные копии — 14 дней, еженедельные — 8 недель,
предобновленческие — до успешной приёмки следующего обновления.&lt;/p>
&lt;h2 id="копирование-конфигурации">Копирование конфигурации&lt;/h2>
&lt;p>Выполняется на работающей платформе.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">BACKUP_DIR&lt;/span>&lt;span class="o">=&lt;/span>/backup/protoobp/&lt;span class="k">$(&lt;/span>date +%F&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir -p &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BACKUP_DIR&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tar -czf &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BACKUP_DIR&lt;/span>&lt;span class="s2">/protoobp-config.tar.gz&amp;#34;&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -C /opt/protoobp &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --exclude&lt;span class="o">=&lt;/span>./data --exclude&lt;span class="o">=&lt;/span>./debug &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> .
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Архив содержит &lt;code>.env&lt;/code> с лицензионным ключом, паролями SMTP и ключом доступа к внешней языковой
модели, поэтому его следует хранить с ограниченным доступом (см. &lt;a href="#%d1%85%d1%80%d0%b0%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bf%d0%b8%d0%b9">Хранение копий&lt;/a>).&lt;/p>
&lt;h2 id="копирование-учётных-записей-и-прав-доступа">Копирование учётных записей и прав доступа&lt;/h2>
&lt;p>Учётные записи, роли, группы и параметры подключения к каталогу пользователей хранятся в БД
сервиса &lt;code>proto-auth&lt;/code>. Копия снимается на работающей платформе:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">docker &lt;span class="nb">exec&lt;/span> proto-postgresql &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> pg_dump -U protoobp -d proto-auth --format&lt;span class="o">=&lt;/span>custom &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> &amp;gt; &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BACKUP_DIR&lt;/span>&lt;span class="s2">/proto-auth.dump&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>При использовании внешнего каталога пользователей (LDAP/AD или OIDC) сами учётные записи
находятся во внешней системе, и в копии сохраняются только настройки подключения и
локальные назначения ролей.&lt;/p>
&lt;h2 id="копирование-настроек-и-журналов-из-бд">Копирование настроек и журналов из БД&lt;/h2>
&lt;p>Выгрузка выполняется на работающей платформе и занимает секунды: перечисленные таблицы малы по
сравнению с телеметрией. Такую выгрузку имеет смысл делать ежесуточно, даже если полное
копирование данных не выполняется.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">CH&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;docker exec proto-database clickhouse-client -u protoobp --password proto-clickhouse&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir -p &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BACKUP_DIR&lt;/span>&lt;span class="s2">/settings&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> T in &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> alert_rules alert_receivers alert_routes &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> dashboards dashboard_folders dashboard_versions &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> business_processes business_process_steps bp_step_map &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> key_business_transactions slo_definitions &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> maintenance_windows maintenance_window_revisions &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> report_definitions report_runs &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> incident_workflow_config incident_workflow_config_history &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> service_apdex_threshold data_extraction_rules annotations &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> normalized_segments &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> resource_types relationship_types resource_type_ci_mapping &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> ci_classes ci_subclasses resource_retention_policies &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> ci_change_history ci_mapping_quarantine rbac_audit_log
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">$CH&lt;/span> -q &lt;span class="s2">&amp;#34;SELECT * FROM proto.&lt;/span>&lt;span class="nv">$T&lt;/span>&lt;span class="s2"> FORMAT Native&amp;#34;&lt;/span> &amp;gt; &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BACKUP_DIR&lt;/span>&lt;span class="s2">/settings/&lt;/span>&lt;span class="nv">$T&lt;/span>&lt;span class="s2">.native&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tar -czf &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BACKUP_DIR&lt;/span>&lt;span class="s2">/protoobp-settings.tar.gz&amp;#34;&lt;/span> -C &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BACKUP_DIR&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> settings &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> rm -rf &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BACKUP_DIR&lt;/span>&lt;span class="s2">/settings&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>В выгрузку входят как сами настройки, так и связанные с ними журналы, которые невозможно
восстановить из других источников: журнал аудита действий пользователей (&lt;code>rbac_audit_log&lt;/code>),
история изменений конфигурационных единиц модели ресурсов (&lt;code>ci_change_history&lt;/code>), карантин
сопоставления типов ресурсов (&lt;code>ci_mapping_quarantine&lt;/code>), история изменений рабочего процесса
инцидентов (&lt;code>incident_workflow_config_history&lt;/code>) и история запусков отчётов (&lt;code>report_runs&lt;/code>).
Их объём растёт со временем, но остаётся на порядки меньше телеметрии; ограничивается сроками
хранения самих таблиц (журнал аудита — согласно параметру срока хранения, история изменений
CI — 365 дней, история запусков отчётов — 180 дней).&lt;/p>
&lt;p>Состав таблиц соответствует версии 202; при обновлении платформы список следует сверять с
примечаниями к выпуску.&lt;/p>
&lt;p>Не входит в выгрузку история исполнения бизнес-процессов
(&lt;code>business_process_execution_steps&lt;/code>) — это телеметрия, привязанная к трейсам, с собственным
коротким сроком хранения; она копируется только вместе с каталогом данных.&lt;/p>
&lt;p>Восстановление такой выгрузки выполняется на запущенной платформе после её первичной
инициализации (таблицы уже созданы):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">tar -xzf protoobp-settings.tar.gz
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> F in ./settings/*.native&lt;span class="p">;&lt;/span> &lt;span class="k">do&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">T&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">$(&lt;/span>basename &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$F&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> .native&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> docker &lt;span class="nb">exec&lt;/span> -i proto-database clickhouse-client -u protoobp --password proto-clickhouse &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -q &lt;span class="s2">&amp;#34;INSERT INTO proto.&lt;/span>&lt;span class="nv">$T&lt;/span>&lt;span class="s2"> FORMAT Native&amp;#34;&lt;/span> &amp;lt; &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$F&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Восстановление поверх существующих данных&lt;/h4>
Загрузка выполняется добавлением строк. Восстанавливать настройки следует &lt;strong>в чистую
инсталляцию&lt;/strong>: при загрузке в платформу, где настройки уже создавались заново, возможны
дубликаты объектов, которые придётся удалить вручную через веб-интерфейс.
&lt;/div>
&lt;h2 id="копирование-данных-телеметрии">Копирование данных телеметрии&lt;/h2>
&lt;p>Хранилища платформы держат часть состояния в памяти, поэтому копирование каталога данных
на работающей платформе даёт &lt;strong>неконсистентную и непригодную для восстановления копию&lt;/strong>.
Полная копия данных снимается только при остановленной платформе.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Остановите платформу:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> /opt/protoobp &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> docker compose -f docker-compose-202.yaml down
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Скопируйте каталог данных, исключив транзитные и кешируемые каталоги:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">tar -czf &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BACKUP_DIR&lt;/span>&lt;span class="s2">/protoobp-data.tar.gz&amp;#34;&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -C /opt/protoobp/data &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --exclude&lt;span class="o">=&lt;/span>./kafka --exclude&lt;span class="o">=&lt;/span>./zookeeper --exclude&lt;span class="o">=&lt;/span>./analyzer &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> .
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Запустите платформу:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> /opt/protoobp &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> docker compose -f docker-compose-202.yaml up -d
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;p>На время останова телеметрия от агентов не принимается и накапливается на стороне агентов
ограниченное время; продолжительный останов приводит к разрыву в данных. Окно обслуживания
следует выбирать в период минимальной нагрузки и заранее объявлять в
&lt;a href="../../alerting/maintenance-windows">режиме обслуживания&lt;/a>, чтобы не порождать ложные оповещения.&lt;/p>
&lt;h2 id="проверка-резервной-копии">Проверка резервной копии&lt;/h2>
&lt;p>Копия, которую ни разу не разворачивали, резервной копией не является. Не реже одного раза
в квартал следует выполнять контрольное восстановление на отдельном сервере и проверять:&lt;/p>
&lt;ul>
&lt;li>платформа поднимается, веб-интерфейс доступен по &lt;code>UI_URL&lt;/code>;&lt;/li>
&lt;li>вход выполняется существующей учётной записью, роли и права сохранены;&lt;/li>
&lt;li>дашборды и правила алертинга присутствуют;&lt;/li>
&lt;li>при восстановлении данных — исторические метрики отображаются на дашбордах.&lt;/li>
&lt;/ul>
&lt;p>Для быстрой проверки целостности архивов достаточно:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">tar -tzf &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BACKUP_DIR&lt;/span>&lt;span class="s2">/protoobp-config.tar.gz&amp;#34;&lt;/span> &amp;gt;/dev/null &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nb">echo&lt;/span> OK
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">tar -tzf &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BACKUP_DIR&lt;/span>&lt;span class="s2">/protoobp-data.tar.gz&amp;#34;&lt;/span> &amp;gt;/dev/null &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nb">echo&lt;/span> OK
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="восстановление">Восстановление&lt;/h2>
&lt;p>Восстановление выполняется на сервере, подготовленном согласно разделу
&lt;a href="../backend-setup#%d0%bf%d0%be%d0%b4%d0%b3%d0%be%d1%82%d0%be%d0%b2%d0%ba%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0">Подготовка сервера&lt;/a>, с установленным Docker.
Версия образов платформы должна совпадать с версией, из которой снята копия
(указана в &lt;code>.env&lt;/code> и &lt;code>docker-compose-202.yaml&lt;/code>). Если на сервере ещё нет Docker-образов
платформы, потребуется доступ к репозиторию образов (&lt;code>docker login&lt;/code>, см.
&lt;a href="../backend-setup#%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-protoobp-backend">Установка бэкенда&lt;/a>) либо образы, перенесённые
вручную по оффлайн-процедуре.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Восстановите конфигурацию:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">mkdir -p /opt/protoobp &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> tar -xzf protoobp-config.tar.gz -C /opt/protoobp
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>При восстановлении на другом сервере проверьте в &lt;code>.env&lt;/code> значения &lt;code>POBP_COMPUTE&lt;/code> и &lt;code>UI_URL&lt;/code>
и, при необходимости, скорректируйте их и DNS-записи.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Восстановите данные телеметрии — только если они копировались:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">mkdir -p /opt/protoobp/data &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> tar -xzf protoobp-data.tar.gz -C /opt/protoobp/data
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Затем в любом случае создайте недостающие каталоги данных и восстановите права доступа
(как при &lt;a href="../backend-setup#%d0%b1%d0%b5%d0%b7-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d1%81%d0%ba%d1%80%d0%b8%d0%bf%d1%82%d0%b0-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b8">установке&lt;/a>):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">mkdir -p /opt/protoobp/data/database &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> chown -R 101:101 /opt/protoobp/data/database
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir -p /opt/protoobp/data/opensearch &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> chown -R 1000:1000 /opt/protoobp/data/opensearch
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir -p /opt/protoobp/data/logs &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> chown -R 1000:1000 /opt/protoobp/data/logs
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir -p /opt/protoobp/data/metrics &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> chown -R 1000:1000 /opt/protoobp/data/metrics
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir -p /opt/protoobp/data/kafka &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> chown -R 65532:65532 /opt/protoobp/data/kafka
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir -p /opt/protoobp/data/zookeeper &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> chown -R 1001:1001 /opt/protoobp/data/zookeeper
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">chown 65532:65532 /opt/protoobp/alertrules.yml /opt/protoobp/alertpolicies.yml
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Запустите платформу и дождитесь инициализации:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> /opt/protoobp &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> docker compose -f docker-compose-202.yaml up -d
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>При первом запуске часть контейнеров инициализируется и перезапускается — как и при
установке, появление ошибки в выводе &lt;code>docker compose&lt;/code> на этом этапе является штатным,
повторите команду.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Восстановите учётные записи:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">docker compose -f docker-compose-202.yaml stop proto-auth
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">docker &lt;span class="nb">exec&lt;/span> -i proto-postgresql &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> pg_restore -U protoobp -d proto-auth --clean --if-exists &amp;lt; proto-auth.dump
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">docker compose -f docker-compose-202.yaml start proto-auth
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Если каталог данных не восстанавливался, загрузите выгрузку настроек и журналов из БД —
порядок описан в разделе
&lt;a href="#%d0%ba%d0%be%d0%bf%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%ba-%d0%b8-%d0%b6%d1%83%d1%80%d0%bd%d0%b0%d0%bb%d0%be%d0%b2-%d0%b8%d0%b7-%d0%b1%d0%b4">Копирование настроек и журналов из БД&lt;/a>.
Загрузку выполняйте после полной инициализации платформы (все контейнеры запущены)
и только один раз, чтобы не создать дубликаты объектов.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Проверьте состояние платформы:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> /opt/protoobp &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> docker compose -f docker-compose-202.yaml ps
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Все контейнеры должны быть в состоянии &lt;code>running&lt;/code>. Затем откройте веб-интерфейс и выполните
проверки из раздела &lt;a href="#%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0-%d1%80%d0%b5%d0%b7%d0%b5%d1%80%d0%b2%d0%bd%d0%be%d0%b9-%d0%ba%d0%be%d0%bf%d0%b8%d0%b8">Проверка резервной копии&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>Если данные телеметрии не восстанавливались, платформа стартует с пустыми хранилищами и
начинает накапливать данные заново. Все пользовательские настройки — правила алертинга, каналы
и маршруты оповещений, дашборды, бизнес-процессы, ключевые транзакции, SLO, окна обслуживания,
расписания отчётов, настройки модели ресурсов, а также журнал аудита и история изменений —
восстанавливаются из копии &lt;code>data/database&lt;/code>
либо из выгрузки таблиц настроек; файлы &lt;code>alertrules.yml&lt;/code> и &lt;code>alertpolicies.yml&lt;/code> платформа
перегенерирует из БД самостоятельно. При отсутствии обеих копий эти объекты будут созданы
заново из поставляемых по умолчанию шаблонов, а пользовательские настройки утеряны.&lt;/p>
&lt;h2 id="хранение-копий">Хранение копий&lt;/h2>
&lt;ul>
&lt;li>Копии размещаются &lt;strong>вне сервера платформы&lt;/strong> — на выделенном хранилище или в системе резервного копирования заказчика.&lt;/li>
&lt;li>Архив конфигурации и дамп учётных записей содержат секреты (лицензионный ключ, пароли SMTP и служебных учётных записей, ключ доступа к языковой модели) — доступ к ним ограничивается администраторами платформы, при передаче по сети используется шифрование.&lt;/li>
&lt;li>Права на файлы копий: &lt;code>0600&lt;/code>, владелец — учётная запись, от имени которой выполняется копирование.&lt;/li>
&lt;li>Факт и результат каждого копирования фиксируются в системе резервного копирования заказчика; отсутствие успешной копии за сутки должно порождать оповещение.&lt;/li>
&lt;/ul></description></item></channel></rss>