Tikpilot

Автоматические бэкапы конфигов MikroTik

Копия настроек нужна не тогда, когда роутер сгорел. Она нужна, когда кто-то что-то поменял неделю назад, и теперь непонятно, что именно. Разбор: что снимать, как часто, сколько хранить и как потом найти изменение.

Binary или export

Это не выбор, это два разных инструмента.

Binary (.backup)Export (.rsc)
Что внутри Слепок всей системы, включая пароли, ключи и сертификаты Текст команд, которыми конфигурация воспроизводится
Читается глазамиНетДа
Сравнивается построчноНетДа
Переносится на другую модель Нет, только на такую же и обычно ту же версию Да, с правками под другие имена интерфейсов
Пароли внутри Есть всегда Нет, если не указать show-sensitive
Когда спасает Железка умерла, нужна такая же и быстро Надо понять, что изменилось, или собрать точку заново

Вывод простой: снимать надо оба. Binary для восстановления, export для понимания. По отдельности каждый закрывает половину случаев.

Как часто и сколько хранить

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

Место это почти не занимает. Текстовый экспорт роутера весит десятки килобайт, двоичная копия сотню-другую. Для полусотни точек четырнадцать ежедневных копий это порядка сотни мегабайт, то есть ничего.

Где их держать

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

И не только на сервере с панелью. Если он умрёт, пропадёт всё сразу: и копии, и база с историей. Поэтому отдельно снимается архив самой панели, с базой, настройками и ключом шифрования, и вот его надо держать где-то ещё. Ключ важнее остального: без него пароли устройств в базе не расшифровать.

Как это устроено в панели

Раздел бэкапов: правила расписания и список копий по точкам

Снимок с живого парка из 49 роутеров, названия и адреса подменены самой панелью.

Проверка, о которой забывают

Бэкап, который никто не пробовал восстановить, это не бэкап, а надежда. Раз в квартал стоит взять копию случайной точки и развернуть её на запасной коробке той же модели. Заодно выяснится, что binary с версии 7.14 не встаёт на 7.21, и что половина точек снимает копии в три часа ночи, когда провайдер на площадке уводит канал на профилактику.

Панель показывает возраст последней копии по каждой точке и поднимает в блок «требует внимания» те, у которых копии старше недели или нет вовсе. Это не отменяет проверку восстановлением, но закрывает более частый случай: копии не снимались, и никто не заметил.

git clone https://github.com/maximdr86/tikpilot
cd tikpilot && cp .env.example .env
docker compose up -d
Подробнее про установку Код на GitHub MIT · Python · без облака · работает в сети без интернета

Частые вопросы

Можно ли обойтись только export?

Можно, но восстановление точки после смерти железки займёт вечер вместо десяти минут, и сертификаты придётся выпускать заново.

Нужно ли шифровать копии?

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

Что снимать с точки, которая почти всегда недоступна?

Ничего особенного. Правило отработает в следующий раз, когда точка будет на связи, а панель покажет, что копия старая.

Как быть с паролями в текстовом экспорте?

По умолчанию их там нет. Галочка show-sensitive существует, но включать её стоит, только понимая, что дальше этот файл живёт как секрет.

Открыть файл в полном размере