Единственное, что может быть лучше резервной копии, — это резервная копия с контролем версий и проверкой целостности.
Существует множество софта различного платного уровня для разных операционных систем для резервного копирования файлов, баз данных и образов, а также для управления конфигурациями серверов и ПО.
Но решений для работы с конфигурациями сетевого оборудования не так много.
Мы создали приложение cBackup (из резервной копии конфигурации) для работы с конфигурациями сетевого оборудования.
Помимо непосредственно резервного копирования конфигов, вы можете отслеживать изменения между их версиями, что помогает локализовать источник проблемы при восстановлении после сбоев.
cBackup имеет открытый исходный код и распространяется бесплатно, включая отдельно загружаемые шаблоны для поддержки различных сетевых устройств.
Для кого?
cBackup был разработан администраторами для администраторов, которым не нужен такой тяжеловес, как NOC Project. В своей работе мы администрируем несколько тысяч свитчей и маршрутизаторов, поэтому поддержание конфигурации сети в должном порядке является жизненной необходимостью.Отсюда и вполне ощутимые параллели в основных принципах работы: обнаружение, как в системах мониторинга сетевой инфраструктуры; терминология уже встречалась где-то в большинстве разделов; управление расписанием, как в crontab и так далее.
Что уже существует?
Текущая версия доступна для скачивания в виде архива tar.gz, а также пакетов rpm и deb. Доступна документация.Система изначально разрабатывалась для Linux, но ее можно запустить и под Windows, хотя официальной поддержки пока нет. После установки пакета или распаковки его на подготовленный сервер вам необходимо будет пройти установку на саму систему через веб-установщик.
В документации этот процесс описан максимально подробно, поэтому установка и эксплуатация не будут описываться в рамках материала в пиар-хабе.
Если возникнут какие-то запросы, о технической стороне работы и вариантах использования я расскажу в отдельном материале в профильном хабе.
Если кратко описать архитектуру, то интерфейс cBackup представляет собой веб-приложение, написанное на платформе Yii2, с демоном, написанным на Java 8 с использованием Spring Boot. MySQL используется в качестве базы данных, а Git — для контроля версий.
Система, обрабатывающая 1200 свитчей и роутеров, вполне комфортно чувствует себя на виртуальной машине с двумя ядрами и двумя гигабайтами оперативной памяти, обрабатывая задачи по сбору конфигураций, STP и геокарт в 30 потоков.
Место на жестком диске также используется экономно – за год использования папка приложения с данными занимает 350 МБ, а база данных – 35 МБ.
cBackup бесплатен и распространяется под лицензией Affero GPL v3. Наши плагины, обновления и загружаемый контент также бесплатны и поддерживаются поставщиками и устройствами.
На данный момент интерфейс системы поддерживает английский и русский языки.
Никаких скрытых комиссий, ограничений функциональности или микротранзакций нет и не планируется.
Однако наша команда открыта к сотрудничеству по внедрению, запросам на официальную поддержку бизнеса с SLA и корпоративную поддержку, в том числе индивидуальных разработок.
Регистрация подсетей и оборудования, автоматический поиск новых устройств
cBackup может работать как с предварительно заданным вручную списком хостов, так и с указанными подсетями, обнаруживая установленные устройства (обнаружение).Отдельно вы можете исключить адреса из любых процессов и задач.
Аппаратная поддержка загружается и устанавливается из официального репозитория.
Если сервер с резервной копией находится в изолированной сети и не имеет доступа в Интернет, вы можете загружать файлы вручную или самостоятельно добавить поддержку нового оборудования.
Само по себе управление реестром подсетей и оборудования может показаться слишком сложным, но поработав с разными поставщиками, мы убедились, что каждый придумывает какие-то свои хитрости в протоколах и процессах.
И речь даже не о STP, реализация которого может отличаться как день от ночи, а о банальной работе с командной строкой через SSH. Таким образом, управление инфраструктурой является очень детальным, предоставляя возможность создавать плагины и фабрики для отдельных моделей и/или поставщиков, переопределяя взаимодействие с устройством или моделью на любом этапе.
Резервное копирование конфигурации
Непосредственные задачи взаимодействия с узлами возлагаются на системный сервис, который работает в многопоточном режиме.Сервис представляет собой исполняемый файл на Java и не использует системный crontab, используя исключительно его функционал.
Демон общается с ядром системы через RESTful API и теоретически его можно даже перенести на отдельный сервер, если возникнет такая необходимость.
Взаимодействие с конечными устройствами оформляется в виде последовательностей команд с обработкой полученных данных и может осуществляться по протоколам Telnet, SSH и SNMP v1/v2.
Система контроля версий
Одной из основных целей для нас было предоставить возможность не только прочитать и восстановить конфиг из резервной копии в рамках аварийного восстановления, но и найти проблему в случае факапа с конфигурацией.Поскольку с оборудованием работает значительное количество операторов, поиск и локализация изменений были для нас крайне важной задачей.
В целом Git в нашей системе имеет довольно много функций: контроль версий конфигурации, обновления системы, загрузка и обновление оборудования и поддержка вендоров.
Плагины и API
Мы убеждены, что каждая система должна выполнять свою работу.Поэтому, если в названии программы присутствует слово «резервное копирование», то она должна в первую очередь заниматься самим резервным копированием.
Все остальное строго необязательно.
В cBackup реализован функционал подключения плагинов, но на данный момент их всего два — позиционирование узла на карте на основе информации в OID system.sysLocation.0 и рисование STP-деревьев.
Если возникнет реальная необходимость и запрос, мы будем рады добавить необходимый функционал.
Сюда также входит API, который позволяет интегрировать cBackup с другими сервисами.
Что случится?
Изначально проект писался «для внутренних нужд» и по сути представлял собой переделку с нуля самописной утилиты для сохранения конфигураций коммутаторов.Уже в процессе рефакторинга пришла идея, что проект может быть полезен за пределами наших сетей.
Система приобрела массу новых возможностей с прицелом на универсальность, получила многоязычность и более серьезную документацию и теперь выложена в открытый доступ.
Есть планы по развитию, а на доске позади меня — дорожная карта будущих версий.
Но поскольку cBackup в настоящее время покрывает все наш потребности, хотелось бы прислушаться к пожеланиям сообщества и пользователей, если кто-то начнет использовать это программное обеспечение.
Предложения и вопросы можно оставлять по почте, на нашем форуме, в трекере задач на Github или в нашем чате на Discord. Среди ключевых функций в нашей очереди на реализацию: поддержка SNMP v3, поддержка IPv6, проверка конфигов по заданным правилам и импорт узлов из внешних баз данных или API. Список поддерживаемого оборудования будет дополняться по просьбам пользователей «в работе»; к счастью, для этого не требуется обновление установленной системы.
Мы постараемся сделать этот процесс плавным, в надежде, что ни один из поставщиков не придумает трюков лучше, чем MikroTik. Также в планах изменения в архитектуре демона, чтобы добавить к нему плагины.
Где ссылки?
Теги: #Сетевые технологии #Системное администрирование #Резервное копирование #сетей #сетевое администрирование #резервное копирование #резервное копирование систем-
Космополия. It-Мир После Кризиса
19 Oct, 24 -
Js-Библиотека Для Вашего Проекта?
19 Oct, 24 -
Эволюция Платежных Технологий 20-Х Годов
19 Oct, 24