Привет, Хабр! На связи Денис Мурунов, руководитель практики построения ИТ-инфраструктуры К2Тех. Мне все больше кажется, что популярная последние два года тема изучения российских альтернатив западным решениям будет актуальна еще долгие годы. Столько статей на Хабре посвящают отечественным ИТ-продуктам, а запросов от рынка на подбор подходящего меньше не становится. Даже, наоборот, они кратно растут!
В прошлой статье я рассказывал об отечественных службах каталога. А сегодня подготовил обзор на Зодиак АйТиЭм — систему управления ИТ-инфраструктурой. Она есть в реестре и, что важно, написана с нуля, а не базируется на популярном опенсорсе. Система управляет парками из разнообразных устройств, а скоро сможет устанавливать и сами операционные системы. Если есть задача перейти с Windows на Linux, Зодиак АйТиЭм может помочь облегчить этот процесс.
Для этой статьи мы с командой решили протестировать Зодиак АйТиЭм на весьма непростой задаче — развертывание системы мониторинга сетей и серверов Glaber. Все подробности читайте под катом!
Должно быть, вам интересно, почему я выбрал для обзора Зодиак АйТиЭм, а не, например, Колибри-АРМ. У моего выбора несколько причины:
На Хабре пока нет материалов про Зодиак. Когда удается найти тему, о которой еще никто не писал, или продукт, который на Хабре еще никто не обозревал, это настоящая победа для автора! По той же причине я рассказывал про РЕД АДМ и Атом.Домен в своей статье про отечественные аналоги Microsoft Active Directory, а не про уже давно популярные ALD Pro и Альт Домен (при всем уважении). Хочется рассказывать что-то новое!
На данный момент Зодиак – единственный из отечественных систем управления конфигурациями поддерживает высокодоступную кластерную реализацию, что важно для корпоративных заказчиков, с которыми мы работаем.
Практически все вендоры заявляют это как преимущество, но по возможностям Зодиак действительно похож на Microsoft System Center Configuration Manager (SCCM).
Проведя тестирование Зодиака и поработав с системой на проектах, мы с командой получили полезный опыт и теперь можем предупредить о подводных камнях, с которыми можно столкнуться. И посоветовать как их обойти.
Сначала расскажу про саму систему — ее архитектуру, возможности, преимущества и недостатки (сравню с подобными решениями), а потом поделюсь опытом работы и результатами тестирования.
Что умеет Зодиак АйТиЭм
Зодиак АйТиЭм предназначен для администрирования и управления парками рабочих станций и серверов с разными ОС и процессорными архитектурами. Он ориентирован на интеграцию в существующий ИТ-ландшафт и, по заявлениям разработчиков, подходит для инфраструктуры любого размера — от десятка до сотен тысяч компьютеров.
Можно выделить шесть основных возможностей этой системы:
Инвентаризация оборудования, программ и файлов.
Распространение и обновление ПО, в том числе и при помощи магазина приложений для пользователей.
Массовое управление настройками устройств.
Удаленное подключение к экранам рабочих станций для помощи пользователям.
Обнаружение сетевых устройств.
Разработка Зодиака началась задолго до 2022 года, что позволяет надеяться на зрелость решения. Но чтобы узнать наверняка, нужно взглянуть на него поближе.
Архитектура системы
В данном случае за управление корпоративной инфраструктурой отвечает комбинация из нескольких серверов и набора агентов, которые устанавливаются на конечные устройства.
Серверы
Серверная часть Зодиака основана на классической трехзвенной модели: слой данных, реализованный на базе СУБД PostgreSQL, слой логики и СХД, предназначенный для хранения распространяемых пакетов. В нашем случае в роли СХД выступала локальная файловая система.
Слой логики состоит из двух ролей серверов:
Сервер коммуникаций обеспечивает связь с агентами. Он имеет встроенное не реляционное хранилище для буферизации данных. Это снижает нагрузку на слой данных.
Сервер администрирования, который отвечает за управление системой и предоставляет веб-интерфейс.
Оба компонента поддерживают горизонтальное масштабирование и спроектированы с учетом требований по отказоустойчивости.
Передача данных между агентами системы и серверами коммуникаций, а также доступ к веб-интерфейсу происходят по HTTPS. Система интегрируется со службами каталогов, например, Active Directory, через внешнюю систему SSO без прямого подключения. По умолчанию устанавливается бесплатный Keycloak, но можно использовать и другие решения Web-SSO.
Агенты
Агент Zodiac ITM устанавливается на управляемые серверы и рабочие станции, они выполняют широкий спектр задач: инвентаризацию, установку ПО, изменение конфигурации и другие операции.
Агент взаимодействует с сервисом коммуникации. Важно отметить, что инициатором связи всегда выступает агент, действующий по заданному расписанию. Сервер никогда не обращается к агентам напрямую. Такой подход устраняет необходимость в прямой адресации всех машин в сети и открытии дополнительных портов — безопасники одобряют.
Для обмена данными агенты передают только новые или измененные данные, а не весь объем информации, то есть разработчики подумали об экономии трафика. В Windows для управления полосой пропускания применяется технология Bits.
Точки обслуживания
Для оптимизации трафика в географически распределенной ИТ-инфраструктуре можно назначить одному из серверов на удаленной площадке роль «точка обслуживания». Тогда пакеты развертывания ПО будут скачиваться с центрального сервера на площадку только один раз и распространяться по остальным компьютерам с локальной точки обслуживания.
Установка и тестирование Зодиак АйТиЭм
Для тестирования Зодиак АйТиЭм мы с командой выбрали сложную задачу: развертывание системы мониторинга сетей и серверов Glaber (это отечественный форк Zabbix). Выбор обусловлен комплексностью Glaber, которая содержит много разнообразных компонентов, в нашем случае она должна была включать следующее:
Бэкэнд и фронтенд Glaber.
Высокодоступную установку Grafana.
Распределенный на два ЦОДа кластер СУБД PostgreSQL.
Два экземпляра Clickhouse в разных ЦОДах, объединенных в кластер с помощью Clickhouse Keeper.
Кластер etcd для управления СУБД (Key-Value Storage для хранения конфигураций).
Задача — развернуть все эти компоненты с помощью Зодиак. Основной операционной системой выступила Astra Linux, но один из клиентов работал под управлением Windows.
Трудности, с которыми мы столкнулись
При тестировании Зодиака мы с командой столкнулись с несколькими проблемами:
1. Задержка установки пакетов
Мы решили протестировать механизм доставки и установки APT-пакетов, но процесс шел неравномерно. На одной машине пакеты установились через полчаса, а на второй прогресса не было вплоть до конца рабочего дня. Такое странное поведение поставило нас в тупик. Кроме того, обнаружились проблемы с установкой некоторых пакетов из репозитория.
2. Трудности с доступом к логам
Мы не смогли найти информацию, необходимую для диагностики проблем с доставкой и установкой пакетов. Хотя в документации упоминались некоторые логи, в них не нашлось ничего полезного.
3. Проблема с вводом паролей
Установка Glaber требует ввода паролей в ручном режиме. В обычных условиях администратор делает это самостоятельно, но при автоматизированной установке нужно решение без участия человека.
И как с ними справиться
Изучив документацию и не сумев самостоятельно разрешить эти вопросы, мы обратились к вендору. Здесь проявилось преимущество проприетарного решения: служба поддержки реагировала оперативно, предоставляя ответы даже в нерабочее время.
Передача паролей
У Зодиака есть утилита zointer, которая во время автоматизированной установки ПО позволяет запросить у залогиненного пользователя АРМа ввод пароля (или любой другой информации), чтобы передать его процессу установки ПО. Однако для серверов, где обычно отсутствует графическая оболочка, она не очень пригодна. В итоге проблема с передачей паролей при установке Glaber была решена индивидуально для каждого компонента. Для Clickhouse мы использовали директиву Зодиака для создания файла с паролем определенной структуры. В случае с PostgreSQL мы передавали файл на целевое устройство в пакете развертывания, а затем экспортировали содержимое в переменную окружения при помощи скрипта, выполняющего echo "password" > /path/to/file.
Возможно, такой подход кому-то покажется небезопасным, но если все делать аккуратно, то, например, благодаря ролевой модели Зодиака, чтобы не компрометировать пароль, администратор Glaber, имеющий доступ к пакетам развертывания, может добавить файл с паролем в пакет, а администратор Зодиака, у которого нет доступа к просмотру содержимого пакета, назначит его на целевое устройство без возможности узнать пароль.
Где найти логи
Вендор предоставил нам информацию о расположении еще одной директории с логами и показал специальную утилиту для диагностики системы, которая собирает все логи в один архив. Хотя она не описана в пользовательской документации, ее можно вызвать с помощью команды zodiag.
Почему не устанавливались пакеты
Собранная информация помогла разобраться в проблеме с пакетами. Оказалось, что Зодиак оповещает о том, что пакет был доставлен с задержкой — уже после того, как он установлен. Мы же пытались доставить некорректный пакет, который заведомо не устанавливался. Так получилось, что мы сперва планировали протестировать сам механизм доставки пакетов и взяли первый попавшийся пакет, который оказался нерабочим. Соответственно, мы ждали сообщения о том, что пакет доставлен, но его не было, так как это оповещение приходит только после окончания установки. В итоге разработчики признали недоработку и пообещали сделать процесс установки более прозрачным.
В случае с пакетами из репозитория проблема возникла потому, что установщик не нашел зависимости, указанные в пакетах, и застрял на этом этапе работы. У Glaber есть неявные зависимости, они не подтягиваются автоматически. Так что попытки разрешить зависимости не увенчались успехом, что привело к отказу в установке новых пакетов до устранения ошибки.
В итоге мы в очередной раз убедились, что лучше начинать с установки пакетов на тестовых стендах, и только потом раскатывать их на прод. Если на стенде не получится установить какое-то ПО с помощью Зодиака, то в первую очередь стоит попробовать сделать это вручную и убедиться, что пакеты точно рабочие.
Система управления: группы, директивы и ассоциации
После первичной отладки Зодиак АйТиЭм вел себя стабильно и предсказуемо, так что мы принялись изучать его функциональность. Эта система управляет ИТ-инфраструктурой через связь директив (формализованных задач) и групп устройств с помощью ассоциаций.
Система позволяет связывать группы устройств с группами задач. Такая логика работы хорошо подходит для управления большим парком компьютеров.
В качестве директивы можно назначить установку скриптов, сбор информации, инвентаризацию оборудования, обновление приложений, в том числе с указанием версий — любую задачу администрирования, которая поддерживается системой.
Предусмотрена и гибкая группировка устройств по разным критериям на основании результатов инвентаризации, например, по:
операционной системе;
имени компьютера;
пользователям или отделам;
используемому ПО;
а также вручную.
Одно устройство может входить в несколько групп одновременно.
Ассоциации позволяют связывать разные группы с разными директивами без ограничений. Таким образом можно автоматизировать задачи с замысловатой логикой их применения к управляемым компьютерам.
Поддержка наследования и множественных иерархий сокращает число связей в системе. Например, директива верхнего уровня иерархии автоматически распространяется на нижние уровни. Благодаря этому логика работы системы управления сохраняет прозрачность и понятность по мере усложнения.
Инвентаризация в Зодиак АйТиЭм
Иерархии и наследование — не единственные фичи Зодиака, предназначенные для крупных инфраструктур. Так, разработчики понимали, что стоит минимизировать объем трафика, потребляемый при инвентаризации, и сделали ее максимально гранулярной. Это позволяет собирать только нужную информацию и сокращает время ее сбора. Система поддерживает несколько видов инвентаризаций.
Базовая инвентаризация
Базовая инвентаризация запускается при регистрации агента на машине и регулярно повторяется.
Зодиак собирает информацию по операционной системе, железу, процессору, оперативной памяти, подсистеме хранения, сетевым адаптерам, включая их IP-адреса, MAC-адреса. Инвентаризация кроссплатформенная и выдает однотипные отчеты и с Linux, и с Windows.
Все это работает из коробки и не требует дополнительной настройки, однако базовую инвентаризацию нельзя настраивать самому.
Настраиваемая инвентаризация
Кроме того, Зодиак АйТиЭм позволяет собирать информацию при помощи самописных скриптов. Система поддерживает PowerShell для Windows, Shell для Linux, а также платформонезависимые команды для управления инвентаризацией на базе синтаксиса JavaScript и CoffeeScript. Преимущество платформонезависимых сценариев в том, что с их помощью можно решать те или иные задачи вне зависимости от операционной системы, на которой они будут исполняться.
Многие bash и powershell скрипты, не представленные в документации, можно найти в интернете и использовать в Зодиаке без дополнительных изменений. Простейшие виды инвентаризации и вовсе можно выполнить одной строкой кода.
Инвентаризация пользователей
Система собирает информацию об учетных записях, которые выполняли вход на компьютер, и автоматически категоризирует их по трем категориям: доменные, локальные и системные.
Инвентаризация ПО
Работает на виртуальных и физических машинах и использует для сбора информации штатные компоненты операционных систем. Так, в Windows данные агрегируются в реестре, а в случае с Linux — при помощи пакетного менеджера, например, apt или yum.
Зодиак предлагает несколько встроенных инструментов для работы с данными о программном обеспечении. Каталог программного обеспечения предоставляет интерактивное представление всего ПО, используемого в организации. Он поддерживает фильтры, позволяет находить APT-пакеты и установленные службы.
Система управления ИТ-инфраструктурой также формирует отчеты по программному обеспечению. Они позволяют хранить несколько версий, содержат интерактивные значения с возможностью перехода к группам устройств. Для создания отчетов предусмотрен удобный мастер с экспортом в xlsx-формат.
WMI-инвентаризация
WMI-инвентаризация доступна только для Windows и запускается по расписанию, при старте компьютера или агента, однократно или регулярно по триггерам. В систему встроен довольно удобный конфигуратор и база знаний по классам и свойствам, что исключает необходимость взаимодействия с серверами Microsoft.
Результаты WMI-инвентаризации можно просматривать в окне создания и редактирования, через выборки и представления, а также с помощью SQL-запросов. Система предлагает подсказки с названиями таблиц и полей, что упрощает работу с запросами.
Инвентаризация соседних устройств
Этот тип инвентаризации позволяет находить соседние компьютеры и серверы благодаря тому, что агент содержит сетевой сканер и может выступать в качестве детектора. Такой подход к инвентаризации позволяет избежать повторной передачи данных о соседних устройствах с каждого агента и находить компьютеры, до которых нет прямой связности.
Обнаружение устройств происходит двумя способами: классическим перебором IP-адресов и с помощью ZeroConf протоколов (LIMINAR, MDNS, UPnP, SNMP). Последние значительно снижают нагрузку на сеть. При сканировании система собирает MAC-адреса устройств. Затем сервер дополняет эти данные, указывая производителя и дату регистрации устройства, что во многих случаях позволяет администратору понять, какой компьютер обнаружен еще до установки агента, это удобно.
Развертывание ПО
Еще здесь есть функции для управления программным обеспечением на рабочих станциях. Администраторы могут выполнять установку программ сразу на всех устройствах или выборочно в определенных группах. Их можно раскатить однократно или настроить регулярную проверку наличия определенных программ. Кроме того, можно автоматически проверять, что установлены зависимости, необходимые для этого приложения.
Важно отметить, что в Зодиаке не предусмотрен собственный репозиторий. Скорее всего, это следствие политики многих вендоров, которые предпочитают полностью контролировать распространение своих продуктов. Например, Astra Linux признает безопасным только собственный репозиторий. Поэтому администраторам Зодиака необходимо самостоятельно искать и подключать подходящие источники обновлений. В то же время для пользователей рабочих станций система предоставляет удобный каталог программ, который наполняет администратор.
Роли, границы и механизмы аутентификации в Зодиаке
Еще один признак ориентации на масштабные инфраструктуры — гибкая система ролей для администраторов. Можно ограничить их возможности, например, выдать права на установку ПО только в рамках одной из динамических групп. Такой подход обеспечивает безопасность и эффективное управление в больших компаниях.
Система также позволяет создавать пользовательские скрипты границ. Это решение особенно важно для Linux-систем, где концепция сайтов, популярная в Windows, неприменима. Администраторы могут разрабатывать произвольные сценарии определения границ, что позволяет направлять агентов к ближайшим точкам обслуживания.
В вопросах аутентификации Зодиак полагается на внешние специализированные решения Web-SSO. Разработчики решили не создавать собственный механизм аутентификации, по умолчанию используется внешний провайдер учетных данных (OpenID Connect). В составе дистрибутива идет бесплатный Keycloak, но если в организации уже используется система Web-SSO, то можно использовать ее.
Выводы по итогам тестирования Зодиак АйТиЭм
Эта российская система управления ИТ-инфраструктурой выделяется на фоне конкурентов благодаря нескольким ключевым особенностям.
Прежде всего, она предлагает весьма широкую функциональность. Особенно радует гибкая система инвентаризации, позволяющая создавать авто-группы. Также стоит отметить разнообразие сценариев установки ПО и возможность тонкой настройки ролей и границ доступа. Кросс-платформенность системы, работающей как с Linux, так и с Windows, расширяет возможности ее применения. А ориентация на крупные инсталляции делает ее привлекательной для больших географически распределенных компаний.
При этом установка сложного многокомпонентного ПО при помощи Зодиак АйТиЭм для инженера без опыта может быть непростой. Если дать готовую директиву, то наверняка все получится, но правильно ее собрать и отладить — совсем другая история. Здесь многое зависит от особенностей конкретной системы, и даже специалист с большим опытом работы с Зодиаком может столкнуться с подводными камнями.
Гибкость системы, будучи ее сильной стороной, также может создавать определенные сложности. Администрирование через веб-панель интуитивно понятное, с низким порогом вхождения, но для решения отдельных задач без скриптов на PowerShell и Bash не обойтись.