Сегодня у меня на обзоре необычная система INFRAX, которая включает в себя мониторинг инфраструктуры, удалённые подключения к серверам и сетевым устройствам, модуль технической поддержки и некоторые другие возможности. Я развернул её на небольшой реальной инфраструктуре и попробовал в работе. Благодаря этому далее я предметно и с конкретными примерами расскажу о ней.
Введение
Сразу отмечу, что написание этой статьи у меня заказали разработчики, но при этом не предъявляли никаких требований к содержимому. Всё, что написано ниже, от структуры до наполнения - полностью мой текст.
Моя задача - попробовать систему и рассказать о ней. Сразу могу сказать, что система необычная, и мне понравилась. Закрывает базовые потребности по управлению инфраструктурой, так что рекомендую познакомиться.
Бесплатная версия на сегодняшний день имеет очень лояльные ограничения в 100 пользователей и 100 объектов мониторинга, плюс сама система ориентирована на максимальную простоту внедрения. Специальные знания не нужны. Установка выполняется простым запуском готового скрипта, а настройка в интуитивном веб интерфейсе. Всё это делается сходу без изучения руководств или документации.
Что такое INFRAX
Как я уже сказал, INFRAX - комплексная система, которая включает в себя несколько модулей, связанных между собой как единой панелью управления, так и функциональностью.
Покажу сразу на конкретном примере, как это может работать:
- Вы устанавливаете агент мониторинга INFRAX на сервер. Он следит за основными метриками системы и её доступностью.
- Если срабатывает какой-то триггер, например, на недостаток свободного места на сервере, автоматически создаётся заявка в модуле техподдержки с привязкой к серверу, назначается ответственный.
- Ответственный человек получает уведомление, заходит в заявку, видит проблему.
- Через веб-интерфейс INFRAX он подключается к серверу и разбирается с проблемой. При этом сеанс подключения к серверу записывается, чтобы можно было посмотреть действия инженера. Плюс, все события подключений и отключений заносятся в журнал.
И так для всех событий, которые могут быть созданы автоматически системой мониторинга, либо вручную через привычное заведение заявки.
Основные возможности
Перечислю кратко все основные возможности системы.
🔹 Мониторинг в режиме реального времени. Сбор метрик осуществляется с помощью легковесного агента. Внешние проверки доступности выполняются напрямую. Для мониторинга предустановлены собираемые метрики, пороги срабатывания триггеров, базовые графики и дашборды. То есть продукт из разряда запустил и он сразу же работает. Тонкую настройку можно производить по мере необходимости. Наблюдаемые узлы можно объединять в бизнес сервисы для отслеживания состояния сервиса в целом.
🔹 Техподдержка для управления инцидентами и обращениями. INFRAX реализует полнофункциональную систему Service Desk. Работа с заявками, инцидентами и запросами пользователей происходит в едином интерфейсе. Триггеры из системы мониторинга автоматически создают заявки в системе HelpDesk со всеми необходимыми связями с узлами, где можно быстро посмотреть историю заявок и решений, метрики мониторинга и другие события.
🔹 Удалённый доступ к объектам управления. Используя единую точку входа в виде веб-интерфейса INFRAX, можно через браузер или внешние приложения подключаться к наблюдаемым хостам через протоколы SSH, RDP, VNC, утилиту Winbox или попадать в веб-интерфейс управляемого устройства, если он у него присутствует. Для всех сессий выполняется запись и аудит событий.
🔹 Управление учётными записями с контролем доступа на основе ролей (RBAC). Используется для всех компонентов системы. Аутентификация пользователей может осуществляться по современным протоколам, типа LDAP, OAuth и др. Для всех пользователей осуществляется полный аудит действий.
🔹 ИИ‑помощник для решения инцидентов. В рамках заявки по решению инцидента можно общаться с ИИ помощником, который может проверить логи, предложить выполнить какую-то команду, перезапустить сервис, исследовать аномалии и т.д. Все действия журналируются прямо в инциденте. Выполнение команд только строго в рамках ваших политик доступа.
🔹 Инвентаризация. На момент написания обзора модуль был в разработке и лично я его не видел. С его помощью можно будет вести учёт ИТ-активов: оборудование, ПО, лицензии, следить за TLS сертификатами.
Архитектура
INFRAX - современный продукт, построенный с использованием микросервисной архитектуры. Логически он разбит на модули, каждый из которых отвечают за свою часть функциональности:
- Веб-интерфейс пользователя (UI)
- Сервис аутентификации и авторизации (IAM / IDENTYX)
- Служба удалённого доступа (ITOM)
- Служба мониторинга (ITOM)
- Service Desk (ITSM)
Все компоненты запускаются в Docker контейнерах и могут управляться с помощью Docker Compose или Kubernetes. Благодаря этому установка, обновление и обслуживание в целом очень простые. Разработчики подготовили скрипт с консольным меню управления, с помощью которого можно выполнять базовые действия: установка, запуск, остановка, бэкап, обновление, смена доменного имени и т.д. Не нужно знать нюансов работы с Docker для того, чтобы обслуживать приложение. В общем случае все необходимые действия выполняются через меню управления.
Для сбора метрик на удалённые системы устанавливается легковесный агент мониторинга. Система INFRAX функционирует по модели pull-мониторинга. Центральный сервер сам опрашивает агентов, установленных на контролируемых узлах сети. Соответственно, у сервера должен быть прямой доступ к агентам.
Если нужна установка без подключения к интернету, то можно заранее подготовить пакет для установки всей системы в закрытой среде.
Кому и как может пригодиться
INFRAX создана компанией, которая давно и активно занимается IT-аутсорсингом. Разработчики на своём опыте знакомы с основными потребностями организаций в управлении IT активами и процессами. В связи с этим программа закрывает максимально широкий спектр задач в этой области.
Системные администраторы получают единый инструмент и точку входа для решения типовых задач по поддержке инфраструктуры: мониторинг, удалённое управление, автоматизация рутинных операций, взаимодействие с заявками.
Пользователи через Infrax взаимодействуют с технической поддержкой, создавая и отслеживая свои заявки. Если среди пользователей есть разработчики, которым необходим доступ к инфраструктуре, они его получают здесь же, централизованно.
Служба безопасности с помощью INFRAX получает возможность вести аудит доступа к информационным системам, в том числе с записью сессий, создавать политики доступа и управлять всем этим из единого интерфейса.
Я немного попользовался этой системой и напишу простыми словами своё видение, как системный администратор. Мне показалось, что именно для них эта система даёт максимальное удобство. В едином интерфейсе у вас мониторинг, триггеры, заявки и подключение.
Допустим, что-то случилось в системе, кончилось место на диске или проблемы в целом у какого-то бизнес сервиса. Автоматически создаётся заявка. Вы в неё заходите и в ней уже видите какие-то подробности. Например, сколько свободного места было вчера, сколько ушло за сутки, когда примерно оно вообще закончится. Тут же из заявки вы можете либо выполнить какой-то скрипт, если задача типовая и не раз решалась, либо посмотреть метрики и события мониторинга, либо отсюда же подключиться к серверу и посмотреть вручную, что там происходит, либо можете у ИИ-агента что-то спросить или попросить сделать. На практике это очень удобно, особенно если вы сфокусированы именно на поддержке.
Установка Infrax
Установить INFRAX просто, потому что практически всё выполняется автоматически. Достаточно подготовить виртуальную машину с подходящими характеристиками.
Системные требования:
- Docker Desktop 4.0+ (включает Docker Engine 20.10+ и Docker Compose 2.0+)
- Git
- Минимум 2 ядра процессора (рекомендуется 4 ядер)
- Минимум 4GB RAM (рекомендуется 8GB+)
- Минимум 20GB свободного места (10GB для приложения + место для резервных копий)
Далее установка будет различаться в зависимости от выбранной операционной системы.
Windows
Для ОС Windows установка INFRAX выглядит максимально просто, потому что существует готовый установщик в привычном для этой системы формате. Достаточно сходить в официальный репозиторий, скачать его и запустить. Там же можно посмотреть видео с демонстрацией установки.
Я для своей статьи использовал установку на Linux, поэтому подробнее остановлюсь на ней.
Linux
Как я уже сказал ранее, для запуска INFRAX используется Docker, поэтому предварительно стоит установить его на сервер. Я обычно делаю это так:
# curl https://get.docker.com | bash -
Далее нужно установить git:
# apt install git
После этого нужно скопировать репозиторий разработчиков:
# git clone https://git.audit-telecom.ru/infrax/infrax.git
И запустить скрипт установки:
# cd infrax # bash infrax.sh
Вас встретит меню управления:
Выбирайте варианты установки на своё усмотрение. Дальнейшие шаги простые и понятные. Всё подробно описано на русском языке. Я не буду комментировать все этапы, чтобы не загромождать статью.
В конечном итоге вы получите адрес панели управления вида https://192.168.0.18:8045, если выбрали url в виде IP адреса, и учётные данные для входа - admin / admin. Переходите в браузер и открывайте веб панель. Дальнейшая настройка системы будет проходить там.
Обновление
Отдельно в этом разделе остановлюсь на процессе обновления. Во время моего использования системы INFRAX, вышли несколько обновлений. Об их появлении меня уведомляли в веб интерфейсе.
Чтобы произвести обновление, я заходил на сервер, запускал скрипт:
# bash infrax.sh
И выбирал соответствующий раздел меню:
Запускалось автоматическое обновление, которое включало в себя остановку сервиса, бэкап, обновление Docker контейнеров с приложением и последующий их запуск.
Всё выполнялось автоматически без моего участия. Как я и говорил, разбираться в нюансах работы Docker контейнеров полезно, но в данном случае не обязательно. Все базовые задачи автоматизированы через интерфейс управления.
Базовая настройка
Мастер настройки сети
При первом входе в веб интерфейс вам будет предложено создать свою первую сеть. Достаточно указать адресное пространство.
На следующем этапе сеть будет просканирована.
Все узлы со службами, через которые может осуществляться управление, будут предложены к перемещению в отдельную группу Серверы. Все остальные найденные узлы - в группу Устройства. Потом всё это можно вручную рассортировать по группам так, как это будет нужно вам.
Дальше будут ещё несколько простых шагов, после которых вы окажетесь в основном интерфейсе панели управления INFRAX. Я сразу же поменял тему на тёмную, так что все дальнейшие картинки будут с тёмной темой.
Добавление узлов
После автоматического сканирования, я создал подходящую мне структуру директорий и раскидал по ней хосты, попутно переименовав их. Получилось примерно так.
Для ручного добавления узла по его IP адресу достаточно выбрать нужную группу, нажать на шестерёнку и выбрать пункт Добавить узел сети.
Для повторного автоматического сканирования сети перейдите в раздел Узлы сети, на вкладку Автообнаружение узлов. И там раскройте выпадающий список со своей сетью. Все обнаруженные, но не добавленные в структуру хосты, будут отображены. Отсюда их можно выбрать и добавить в нужную группу. У меня тут нашлась пара потеряшек.
Много ещё можно рассказать про работу с хостами. В каждый из них можно зайти, поменять какие-то настройки, переименовать и т.д. Не буду на всём этом подробно останавливаться.
Интеграция с Telegram
Отдельно отмечу интеграцию с Telegram в виде оповещений о различных событиях. Нам это пригодится далее, когда надо будет настраивать мониторинг, поэтому отдельно остановлюсь на этом моменте.
По настройке там всё просто. Достаточно сделать бота и ввести его токен и имя.
По желанию в соседнем разделе настраиваются уведомления по email. На почту и в Telegram будет приходить информация о тикетах и инцидентах.
Настройка мониторинга
Настроим теперь работу встроенного мониторинга. Доступность хостов уже проверяется простыми icmp проверками, или по простому - пингом. Для сбора остальных метрик необходимо установить агент в операционную систему.
INFRAX собирает следующие метрики:
- Доступность для icmp проверок
- Утилизация процессора
- Утилизация оперативной памяти
- Скорость приёма, передачи данных на сетевых интерфейсах
- Заполнение дисков, время отклика, скорость чтения/записи данных, количество операций в секунду (IOPS)
- Использованием процессами ЦПУ и ОЗУ
Установим агента для сбора этих метрик. Для этого выбираем из списка узел и нажимаем на кнопку с установкой агента.
В моём примере будет узел с системой на базе Linux, так что мне для установки агента нужно будет ввести учётные данные пользователя с полными правами.
Обращаю внимание, что учётные данные можно как вводить вручную для каждого узла, так и использовать настроенные заранее в модуле IDENTYX. Это внутреннее название сервиса cистемы управления идентификацией и доступом (IAM). Чуть подробнее рассмотрю его в отдельном разделе.
Установка агента проходит быстро, если нет каких-то проблем с доступом или ошибок. Обычно это занимает 5-10 секунд. После установки в карточке узла появятся соответствующие метрики, графики, триггеры.
По умолчанию в системе уже преднастроены триггеры или пороговые значения, при превышении которых создаётся инцидент и отправляется уведомление. Эти значения настраиваются как глобально для всех хостов, так и выборочно для каждой группы или отдельных хостов.
В завершении этого раздела покажу общий дашборд модуля мониторинга.
Бизнес сервисы
Узлы сети с настроенным мониторингом можно объединять в единые сервисы для отслеживания состояния сервиса в целом. В настоящий момент работает это просто. Если хотя бы для одного узла сети создан инцидент от системы мониторинга, состояние сервиса из нормального переходит в проблемный.
Выглядит это примерно так. Объединяем узлы сети:
Если у какого-то узла срабатывает триггер, то он в том числе будет отображаться в списке инцидентов сервиса. А сам сервис на дашборде мониторинга будет помечен проблемным.
Удаленные подключения
Мониторинг настроили, теперь настроим подключение к узлу сети. Для этого заходим в его Параметры и на вкладке Общее выбираем протокол подключения.
Доступны следующие протоколы для подключений:
- RDP
- VNC
- SSH
- Приложение Winbox
Теперь при нажатии на кнопку Подключиться открывается окно с выбором способа подключения.
Их доступно два:
- Через браузер. Подключение происходит тут же в отдельной вкладке. Только для этого типа подключений работает запись сессий.
- Через клиент, который нужно установить на компьютер. Для соединения с узлом автоматически создаётся VPN туннель между INFRAX и вашим компьютером, чтобы настроить сетевую связность. Непосредственно подключение осуществляется с помощью putty, если протокол SSH, и с помощью встроенного RDP клиента, если подключение, соответственно, по RDP. Запись подобных сессий не производится.
Далее для подключения вам нужно будет ввести учётные данные, либо выбрать из сохранённых ранее для этого узла или группы узлов.
После этого вы окажетесь на сервере. Через браузер картинка получается так себе, потому что тут всё растягивается под конкретное окно. Наверное, если подогнать размер окна под шрифт, то всё это может выглядеть аккуратнее. Но в целом работать можно.
В интерфейсе подключения можно вызвать меню для взаимодействия с хостом. Там открывается файловый менеджер с возможностью загрузить файл с локальной машины на удалённый сервер. Также через это меню можно установить агент мониторинга.
После завершения сессии, её можно посмотреть. Все сохранённые сессии, как и информация о них, хранятся в отдельном разделе.
По каждой сессии можно посмотреть подробную информацию и запись.
Специально всё это настраивать не надо. Запись сессий работает автоматически после всех описанных выше действий. Я специально ничего не делал.
Модуль Service Desk
Система INFRAX включает в себя полноценную систему по управлению обращениями и инцидентами (ITSM). В Help Desk системе заявка может быть создана следующим образом:
- Вручную пользователем для решения его задачи.
- Вручную сотрудником техподдержки с назначением ответственного.
- Автоматически системой мониторинга.
Подробнее остановлюсь на последнем, так как это наиболее интересная и функциональная возможность. С ручными заявками всё более-менее стандартно.
Когда в системе мониторинга срабатывает триггер, автоматически создаётся заявка. Посмотреть её можно в разделе Техподдержка ⇨ Тикеты.
В моём примере с системой работаю только я, поэтому ответственного автоматически не назначаю. А это можно сделать. Ответственный в том числе будет автоматически назначен, если начать активность в заявке. Это видно на примере некоторых заявок, в которые я заходил и что-то делал.
Ниже примеры автоматического тикета от системы мониторинга:
Расписал основные моменты сразу на скриншоте. Лично мне такая связка мониторинга, HelpDesk системы и подключений к серверам показалась наиболее интересной и удобной из всей системы. По отдельности каждый из компонентов не представляет из себя чего-то особенного. А связка их в едином интерфейсе даёт удобство в реальном обслуживании инфраструктуры.
Вот ещё пример тикета от системы мониторинга:
ИИ Агент
Отдельно расскажу про ИИ. Я немного с ним поработал. Он интегрирован в интерфейс INFRAX и может быть вызван из разных его модулей. Например, я открыл один из узлов и вижу, что там на одном из дисков занято очень много места. Тут же в интерфейсе узла я нажал на ИИ помощника и задал ему вопрос:
Подскажи, чем занято место в разделе /mnt/backup?
После этого автоматически создаётся тикет с привязкой к этому узлу. Дальше всё общение с ИИ происходит в тикете. Помощник отвечает, что он предлагает сделать.
В своих ответах он предлагает конкретные команды, которые могут быть выполнены агентом автоматически. Результат работы можно либо просто посмотреть, либо посмотреть и сразу отправить обратно в ИИ. Если в выводе может быть приватная информация, то автоматически отправлять ответ в ИИ не надо.
Я в тикете немного пообщался с ИИ, выполнил его рекомендации. Итог получился такой.
В принципе, всё адекватно. С другой стороны, я намного быстрее всё это посмотрел бы вручную. ИИ может решать более сложные задачи на связке узлов сети в единый сервис. В контексте этого сервиса он может делать более глубокий анализ.
Повторяющиеся заявки
В разделе Автоматизация ⇨ Планировщик тикетов можно создать повторяющиеся заявки. Выглядит это примерно так:
Если у вас есть какие-то повторяющиеся процедуры, то можете автоматически создавать для них заявки с назначением ответственных.
Отчёты и аналитика
В разделе Поддержка можно посмотреть дашборды со сводной аналитикой по обращениям пользователей и автоматическим инцидентам от системы мониторинга.
Обращений пользователей у меня не было, там дашборд пустой. А по инцидентам выглядит примерно так:
Если вы работаете в аутсорсинге с поддержкой разных компаний силами нескольких специалистов, данный дашборд предоставит вам базовую аналитику по заявкам от компаний и загрузке сотрудников. Это всё - базовая функциональность. Настраивать дашборды вручную не придётся.
Также есть отдельный дашборд с аналитикой по подключениям. Выглядит примерно так.
Управление пользователями, их ролями и правами доступа
Как я уже упоминал выше, для управления правами и пользователями используется отдельный модуль IDENTYX, у которого свой веб интерфейс.
Это довольно навороченная система, которая сама по себе достойна отдельной статьи, поэтому постараюсь в рамках этой очень кратко про неё рассказать.
IDENTYX - централизованная RBAC система, имеет интеграции с LDAP/OAuth, свой встроенный аудит и возможность моментальных блокировок пользователей.
Основные возможности IDENTYX:
- Единый веб-интерфейс для управления доступом ко всем объектам доступа в режиме реального времени.
- Интеграция с сервисами через стандартные протоколы (LDAP, SAML, OAuth и др.)
- Мгновенная блокировка доступа одним действием ко всем системам в случае увольнения или каких-то нештатных ситуаций.
- Полный аудит всех действий пользователей с привязкой к объектам.
- Ролевая модель доступа на основе политик, применяемых на основе различных атрибутов, таких как организация, отдел или конкретный сотрудник.
Заключение
Статья получилась очень объёмной, хотя я прошёлся только по верхам, отобразив самую базовую функциональность, не затронув базу знаний, планировщики заданий, базу скриптов, создание и сбор собственных метрик и многое другое. Возможно всё это разберу в будущих публикациях.
Система мне понравилась. Я её развернул на реальном объекте и пару недель использовал до момента написания статьи. С учётом того, что она недавно вышла в релиз, выглядит добротно и целостно. Использовать её можно уже сейчас. Она решит многие базовые вопросы по обслуживанию инфраструктуры.
Скорее всего продолжу её использовать, если ничего не изменится. А с учётом очень лояльных ограничений бесплатной версии могу порекомендовать и вам хотя бы попробовать.
Единственное, чего мне показалось, что не хватает INFRAX, так это встроенной в агент какой-то системы для подключения в сенсы пользователей для технической поддержки. В данной архитектуре вам придётся вручную настраивать у пользователей какой-то VNC сервер и подключаться из INFRAX к нему. Соответственно, всё обслуживание VNC серверов будет вне общей системы управления. А хочется, чтобы было что-то типа встроенного AnyDesk с максимально простым и быстрым подключением к компьютерам пользователей с такой же установкой, как и агент мониторинга. Насколько я понял, этого нет, потому что позиционируется система в первую очередь как инструмент для серверной инфраструктуры.
Реклама, ООО «Аудит-Телеком», ИНН 7733293872, erid: 2SDnjeSEkQE
https://localhost:8045, https://localhost:8040
Не рабочие ссылки, выбирая которые по URL, те самые
Я вышел из приложения управления на Linux и на этом все, как снова подключится не ясно, нет документации? )
Достаточно опять запустить этот же скрипт, который установку делает. Он универсальный для любых действий.
Жаль, что нет поддержки snmp, не получится коммутаторы подключить(
Да, пока нету. Но разработчики вроде собирались snmp проверки добавить.
В версии 0.3 планируется добавить snmp
Не осилил оповещения в Телеграм. Сделал бота, бот просит код из личного кабинета. В личном кабинете ничего похожего. Да даже место, которое имеет в названии "Личный кабинет" отсутствует.
Сам отвечаю.
В приложении INFRAX (не IDENTYX) заходим в Предпочтения, вкладка Телеграм, кнопка Получить код. Его вводим в Бота в телеге. Проверяем, настраиваем.
Работает.
Там есть ещё нюанс, что надо перезапустить контейнеры после настроек Телеграм бота. У меня система его не видела подключенным, пока не перезапустил.
Есть нюанс как не крутил не заработали уведомления в телегу. Как вам удалось это настроить?
Надо перезапустить службы после добавления настроек бота. Я тоже долго не мог понять, почему не работает. Потом перезапустил и заработали.
Ещё не забудьте проверить настройки в разделе Предпочтения -> Telegram.