На днях переносил Oxidized со старенького сервера с CentOS 7 на актуальную Ubuntu, повспоминал нюансы с настройкой и решил написать небольшую заметку.
Oxidized позволяет сохранять конфигурации сетевых устройств, забирая их регулярно по ssh или telnet. Это гораздо удобнее, чем бэкапы скриптами с самих железок или какие-то самоприколоченные решения, т.к. все настраивается централизованно, а шаблонами можно изменять логику сбора конфигурации сразу для большого количества устройств.
Oxidized написан на Ruby. Устанавливается как служба и работает в фоне, периодически опрашивая указанные железки. По сути состоит из двух составляющих: самой службы и веб-части. Веб-интерфейс лишен аутентификации, поэтому сразу рекомендуется настроить обратный прокси хотя бы с базовой аутентификацией.
Основной экран со списком устройств и датами последних бэкапов |
Сама служба скачивается как gem-пакет и устанавливается в глубинах системы, в которые лезть особенно не придется, если только не захочется что-то "допилить". Основная конфигурация сохраняется в домашнем каталоге пользователя в ~/.config/oxidized. Туда же можно добавить новые или измененные шаблоны.
Основные настройки задаются в файле ~/.config/oxidized/config. Наиболее важные параметры: source и output. Source определяет, где будет храниться список устройств для бэкапирования. Возможно использовать csv-файл, MySQL, SQLite. Output определяет, куда будут сохраняться бэкапы: Oxidized может просто создавать текстовики (1 файл на 1 устройство), отправлять данные по http и что самое крутое - сохранять в git-репозиторий. Последнее - просто незаменимая опция, если у вас периодически возникает вопрос: а что поменялось в конфиге за последние несколько часов/дней/месяцев? Инструмент для сравнения встроен прямо в веб-часть, так что сопоставить пару бэкапов с интервалом в несколько дней или недель крайне просто. По-умолчанию Oxidized хранит всю историю (как и положено в git).
Экран с логом бэкапов из git |
Сервис развивается, и хотя документация по-прежнему не очень богая, особенно для новичка, разобраться можно без необходимости лезть в код. Шаблоны тоже дорабатываются, добавляются новые. В общем, разработка потихоньку продолжается. Из коробки сервис умеет создавать резервные копии устройств:
- Mikrotik (есть поддержка ROS v7 в части нового синтаксиса отображения паролей в конфиге, SwOS),
- коммутаторов D-Link (правда не всех),
- Cisco (iOS, ASA и т.д.),
- Brocade,
- Frotigate,
- Juniper,
- pfSense,
- TPLink,
- Ubiquiti (не Unifi, а именно Edge линейки и AirOS),
- Zyxel (ndms в Keenetic 2 версии и старше, коммутаторы, но не ZyWALL)
Немного покопавшись в уже имеющихся шаблонах, вполне можно написать свой. Oxidized позволяет выполнять постобработку конфига, удаляя ненужные строки. Например, последние записи лога или пароли. Для последних здесь даже есть системная переменная remove_secret. Если ее значение учитывается в шаболоне, можно глобально устанавливать предпочтения: сохранять конфигурации с секретами или без. Например, с Mikrotik это точно работает.
Раньше я использовал Oxidized только для Mikrotik, но сейчас начинаю пробовать подключать и другие устройства, так как хранить конфигурации для быстрого восстановления или анализа изменений оказалось очень удобным.
Комментарии
Отправить комментарий