Вопросы
Вопросы и ответы
Что будет, если упадёт панель?
Бэкапы продолжатся. Расписание и последний принятый план хранятся на каждом сервере, агент отправляет бэкапы в хранилища напрямую. Журнал он копит у себя и досылает, когда панель вернётся. В истории это время отмечено: «панель была недоступна» — История.
Пока панели нет, не работают ЛК, «Бэкап сейчас», изменения плана, уведомления, ночные проверки и очистка хранилищ. Восстановить данные можно и без неё: sudo arcula restore на сервере или по recovery kit на новой машине — Восстановление без панели.
О своём падении панель сообщить не может. Поставьте внешнюю проверку адреса https://<адрес панели>/api/web/v1/health.
Что будет, если упадёт одно хранилище?
Остальные продолжат сохранять: у каждого хранилища своя очередь отправки, и недоступное никого не держит. У серверов копия в этом хранилище станет «отстаёт», после ближайшей проверки доступа — «нет доступа», у самого хранилища — «Нет доступа». Пока в другом хранилище есть свежий бэкап, статус серверов — «Есть замечания».
Когда хранилище вернётся, туда уйдёт последний готовый бэкап. Бэкапов за время сбоя в нём не будет — они есть в другом хранилище. Подробно — Нет доступа.
Может ли взломанный сервер удалить бэкапы?
Да. Защиты от удаления в arcula нет: агенты пишут в S3 напрямую своим ключом, отдельного шлюза между ними и хранилищем нет — так решено 24.10.
- Режим «один ключ на все серверы» — взломанный сервер может удалить бэкапы всех серверов в этом хранилище.
- Режим «свой ключ у каждого сервера» — только свои, если провайдер умеет ключи с доступом к одной папке.
Что снижает риск: свой ключ у каждого сервера; второе хранилище у другого провайдера или в другом аккаунте; защита от удаления у самого провайдера, если он её умеет, — arcula её не настраивает. После взлома смените ключи S3: при отключении сервера ЛК напомнит, какие именно. Режим ключа выбирается у хранилища — Хранилища.
Где хранятся пароли и ключи?
| Что | Где |
|---|---|
| Пароли restic-репозиториев | В базе панели, зашифрованы мастер-ключом. На сервере — /etc/arcula/repos/<id хранилища>.key, только для root. В recovery kit |
| Ключи S3 | В базе панели под мастер-ключом. На сервере — /etc/arcula/repos/<id хранилища>.json. В recovery kit. Секрет ЛК больше не показывает |
| Ключи агента для панели | /etc/arcula/credentials на сервере |
| Мастер-ключ панели | Вне базы: файл, Vault или переменная ARCULA_MASTER_KEY. Копия — у вас в менеджере паролей |
| Пароль recovery kit | Только у вас, панель его не хранит |
Пароли ваших баз и содержимое .env агент в панель не отправляет: он берёт их внутри контейнера в момент дампа. Подробно — Recovery kit и мастер-ключ.
Что будет, если потерять мастер-ключ?
Им зашифрованы ключи хранилищ и пароли репозиториев в базе панели. Без него даже панель, поднятая из бэкапа своей базы, этих секретов не прочитает. Останется восстановление по recovery kit: в нём всё нужное, мастер-ключ ему не нужен.
Поэтому храните оба офлайн: kit — файлом на своём компьютере, мастер-ключ — в менеджере паролей. Мастер-ключ.
Как проверить, что из бэкапа можно восстановиться?
Recovery kit открывается. arcula kit verify проверяет, что kit расшифровывается, каждый репозиторий каждого сервера читается, а в последнем бэкапе — нужный сервер. Root не нужен, подойдёт любая Linux-машина с restic. Данные команда не восстанавливает.
arcula kit verify ./arcula-recovery-kit.ageДанные поднимаются. Пробное восстановление на сервере: в мастере выберите режим component. База импортируется в новую базу рядом с рабочей и проверяется, рабочие данные не трогаются.
sudo arcula restoreПосле этого у бэкапа на вкладке «Бэкапы» — «восстановлен компонент». Делайте так регулярно, по очереди на всех серверах. Подробно — Восстановление.
Что значит «Пропало с сервера» в плане?
Это есть в плане, но агент при последнем обходе сервера больше этого не нашёл: том удалили, каталог переехал, контейнер убрали. Копировать нечего. При сохранении плана такие строки уйдут из него, а старые бэкапы с этими данными останутся в хранилищах.
Пропало по ошибке — верните данные на сервер и нажмите «Обнаружить сейчас»: сервер → «Настройки защиты». Пропало с сервера.
Почему в журнале «Нет на сервере: путь из плана»?
Агент начал бэкап, а пути или тома из плана на диске нет. Чаще всего контейнер ссылается на каталог, которого на этом сервере нет, — например, Compose из CI с путём другой машины. Или каталог удалили. Копировать нечего, данные не теряются.
Уберите его из плана: после «Обнаружить сейчас» он окажется в «Пропало с сервера», и сохранение плана его уберёт. Пока он в плане, у сервера может висеть «… не попадает в бэкап» — Компонент не попадает в бэкап.
Почему неполный бэкап всё равно считается?
Если один компонент не собрался — например, упал pg_dump, — всё остальное в этом бэкапе собрано и сохранено, и из него можно восстановиться. Поэтому «Последняя копия» и состояние копий в хранилищах считаются и по нему.
Чтобы это не прятало проблему, сервер сразу становится «Критично» со строкой «… не попадает в бэкап: причина» — пока следующий бэкап снова не соберёт компонент. Сам этот компонент берите из более раннего бэкапа — Бэкапы.
sudo arcula status на сервере считает «If it fails now» только по полным бэкапам, поэтому после такого сбоя цифры в ЛК и на сервере расходятся.
Как изменить частоту бэкапов?
В плане сервера, карточка «Как часто»:
| Профиль | Бэкап | Норма |
|---|---|---|
| «Критичный» | каждые 30 мин | не старше 1 ч |
| «Обычный» | каждые 6 ч | не старше 12 ч |
| «Редко меняется» | ежедневно | не старше 36 ч |
Выберите профиль и нажмите «Сохранить план». Агент получит новый план в течение минуты. Расписание считается по поясу панели. Своего интервала, кроме этих трёх, в этой версии нет. Как норма связана с потерей — Сколько потеряется.
Что такое «часть 2/30»?
Это ночная проверка данных хранилища. Каждую ночь с 03:00 до 06:00 по поясу панели она читает одну тридцатую часть данных каждого репозитория (restic check --read-data-subset=2/30) и сверяет шифрование и контрольные суммы. «2/30» — какая часть прочитана этой ночью. За 30 ночей данные прочитаны целиком, и круг начинается заново.
Нашла ошибку — круг стоит, следующей ночью читается та же часть. «Проверить данные» на странице хранилища читает следующую часть сразу. Проверка данных.
Как удалить arcula с сервера?
На сервере:
sudo arcula uninstallКоманда отвязывает сервер от панели и удаляет службу, бинарник, /var/lib/arcula и /etc/arcula вместе с паролями репозиториев. С --keep-config пароли остаются — по ним можно читать репозитории без панели. Бэкапы в хранилищах команда не удаляет никогда. Если панель в этот момент недоступна, сервер отвяжется только у себя — отключите его в ЛК вручную.
В ЛК сервер станет «Сервер отключён», история и бэкапы останутся. Убрать его совсем, с бэкапами или без, — «Настройки защиты» → «Удалить сервер». Удалить сервер или хранилище.
В каком часовом поясе время в ЛК?
В поясе устройства, с которого вы смотрите. Открыли ЛК в другой стране — время пересчитается само. В журнале — полное время с поясом.
У панели свой пояс: по нему идут расписание бэкапов, ночные проверки и очистка, время в уведомлениях. Он показан в «Настройки» → «Часовой пояс». Если вы переехали надолго, там же есть «Сделать поясом панели».
Как обновить агентов?
Новая версия агента приходит вместе с образом панели. Агенты ставят только версию, подписанную вашим ключом, поэтому сначала её нужно подписать. Затем «Настройки» → «Обновления агента» → «Обновить везде» или «Обновить агента» на странице одного сервера.
Агент дождётся конца бэкапа и заменит себя. Если новая версия не запустится за 3 минуты, он сам вернёт прежнюю. Итог — в журнале сервера: «Агент обновлён» или «Агент не обновился».
С сервера — sudo arcula update. Старую версию можно поставить только так: sudo arcula update --version X.Y.Z. Подробно — Обновить агентов и Обновления агента.
Что попадает в бэкап с хоста?
Настройки сервера, которые вы отметили в плане, карточка «Настройки сервера»:
- пользователи и группы —
/etc/passwd,/etc/group; - службы systemd —
/etc/systemd/system; - cron —
/etc/crontab,/etc/cron.d, crontab пользователей; - конфиг Docker —
/etc/docker/daemon.json; - Caddy и nginx —
/etc/caddy,/etc/nginx; - сертификаты Let's Encrypt —
/etc/letsencrypt.
Не входят: пароли пользователей (/etc/shadow), SSH-ключи, установленные пакеты, образ системы целиком. При восстановлении настройки хоста только извлекаются в /var/lib/arcula/restore/<id>/host — на место их кладёте вы. Способы бэкапа.
Почему копия «отстаёт»?
Последний бэкап, сохранённый в этом хранилище, старше нормы профиля. Обычные причины:
- хранилище отвечает ошибкой — причина у копии на вкладке «Хранилища» сервера, расшифровка — в Ошибках копий;
- канал медленнее, чем идут бэкапы, — в журнале много «Бэкап пропущен»;
- для этого хранилища задано окно отправки «ночью» — днём копия отстаёт, так и задумано;
- отправка в это хранилище выключена;
- в режиме «свой ключ у каждого сервера» для сервера не задан ключ.
Подробно — Копия отстаёт.
Почему в журнале «Бэкап пропущен»?
Пока в хранилище уходил предыдущий бэкап, был готов более новый. Агент отправляет только последний готовый, а промежуточный пропускает: очереди из десятков бэкапов нет.
Изредка это нормально. Если пропусков много подряд, канал до этого хранилища не успевает за расписанием: выберите профиль реже или отправляйте в это хранилище ночью.
Агент не на связи — бэкапы идут?
Да, если сервер работает. Агент делает бэкапы по последнему плану и без панели, журнал досылает потом. Пока он молчит, панель раз в час сама смотрит его репозитории в хранилищах и учитывает найденные бэкапы в «Последней копии». Что проверить — Агент не на связи.
План подтверждён, а сервер «Не настроено» — почему?
Первый бэкап ещё не сохранён. Агент забирает план в течение минуты и сразу делает первый бэкап, но большой первый бэкап может уходить долго. Ход виден на странице сервера: «Идёт бэкап: …».
Если за две нормы профиля после подтверждения ни один бэкап не сохранился, статус станет «Критично» с причиной — Нет свежего бэкапа.
Удаляет ли arcula старые бэкапы?
Только если вы включили очистку у хранилища. По умолчанию она выключена, и бэкапы копятся. Очистка идёт ночью по поясу панели и удаляет то, что не попало в правила хранения. Всегда остаются последние бэкапы каждого сервера, всё моложе суток и последний бэкап, из которого удачно восстанавливали. Ключевые точки очистка не трогает никогда. Агент на сервере бэкапы не удаляет.
Что будет, когда хранилище дойдёт до лимита?
Ничего не остановится: лимит — ваш бюджет в ЛК, а не квота провайдера. С 90 % у хранилища появится «До лимита осталось …». Если у провайдера есть своя квота, по её исчерпании бэкапы перестанут сохраняться. Освободить место — очисткой. До лимита осталось мало места.
Останавливает ли arcula сервисы на время бэкапа?
Нет. PostgreSQL снимается pg_dump внутри работающего контейнера, тома и каталоги restic читает с диска на ходу. Единственная пауза — у способа «согласованная копия SQLite»: контейнер замирает (docker pause) на время копии файлов базы, и только если они не больше 1 ГБ. Восстановление тоже ничего не запускает — сервисы включаете вы. Способы бэкапа.
Почему sudo arcula status и ЛК показывают разное?
arcula status считает по журналу на самом сервере и работает без панели. Точные статусы считает панель. Расхождения бывают такие:
- после неполного бэкапа:
arcula statusсчитает потерю только по полным бэкапам, ЛК — по последнему сохранённому; - пороги свежести на сервере — два и четыре интервала расписания; у профиля «Редко меняется» это 48 и 96 ч, а в ЛК — 36 и 72 ч;
- панель видит свои проверки доступа и данных хранилищ, агент о них не знает.
Как защитить саму панель?
Так же, как любой сервер: поставьте агента на сервер панели и включите в план её PostgreSQL. Мастер-ключ держите не только на этом сервере — копия в менеджере паролей. Recovery kit — у себя на компьютере. Без мастер-ключа секреты из бэкапа базы панели не прочитать, а по kit данные поднимаются и без панели.
Если панель и Vault на одном сервере, поднимайте сначала Vault, затем панель. Восстановление без панели.
Та же статья — в панели, в разделе «Справка».