На самой макушке лета, 14 июля 2022 года, вышел в свет очередной релиз отечественной программной платформы мониторинга и управления цифровыми активами «Центральный Пульт» (SAYMON), разрабатываемой петербургской компанией «РОССИННО». За прошедший с момента выхода предыдущего релиза (v.3.9.83) квартал очередной виток развития уже традиционно получили как функциональные возможности, так и отдельные элементы пользовательского интерфейса платформы.
Новые математические функции для построения графиков и виджетов
Графики в платформе «Центральный Пульт» строятся автоматически или вручную пользователями для всех числовых значений и дают возможность в наглядном виде отслеживать эволюцию исторических и иных типов данных. Графики могут быть построены на основе заданной метрики конкретного для контекста работы или внешнего объекта, константы и математической формулы, использующей константы и переменные величины метрик.
В системе имеется возможность создавать мультиграфики (несколько графиков на общей панели, с функцией масштабирования значений), формировать страницы с набором графиков, которые можно использовать для оперативного контроля, генерации отчетов или при встраивании в IFrame-виджеты.
В том случае, если возвращаемых в результате проверки данных и графиков по ним оказывается недостаточно, может быть задействован функционал построения графиков на основе математических операций над метриками из одного или нескольких объектов. Создание графика такого типа предполагает выбор для интересующего объекта необходимых метрик из списка, а также использование элементарных математических операций, скобок и констант.
В новом релизе комплекса были реализованы следующие дополнительные математические функции для построения графиков:
- delta() – разница между текущим и предыдущим значением метрики
- deltaRoll() – неотрицательная разница между текущим и предыдущим значением метрики
- timestamp() – метка времени каждой метрики из возвращаемого ряда значений в формате 13-значного числа (с миллисекундами)
Функция deltaRoll() может оказаться полезной при работе с накопительными метриками, значения которых нарастают до момента обнуления, например, количество входящих/исходящих байт, показатель расхода электричества или других ресурсов, а timestamp() – при построении графиков скорости по значению одометра или нагрузки на сетевой интерфейс.
Например, можно построить график, заданный формулой
deltaRoll( ifInOctets.value ) / delta(timestamp())
для наблюдения за интенсивностью входящего потока на сетевом интерфейсе:
Для новых функций также доступна возможность включения на графике сразу нескольких наблюдаемых величин, например так:
deltaRoll( ifInOctets.value ) / delta(timestamp()) | deltaRoll( ifOutOctets.value ) / delta(timestamp())
Дополнительные возможности работы с событиями (SNMP-трапами)
Один из многих реализованных в программном комплексе механизмов проверок базируется на концепции пассивного мониторинга и использует в качестве источников информации о событиях в наблюдаемой инфраструктуре, поступающих в «ловушки» (механизм SNMP-трапов). SNMP-трапы получают агенты системы (которые могут быть расположены в различных подсетях и регионах). Агенты передают данные в серверную часть программного комплекса для их возможной предварительной фильтрации, исключения гарантированно ненужных сообщений и последующего отображения в журнале событий. Следует отметить, что применение для больших и распределенных цифровых инфраструктур сети ловушек сбора сообщений позволяет обеспечить надежный механизм получения и обработки важной мониторинговой информации.
Привязка SNMP-трапа к объекту осуществляется в системе при настройке мониторинга с возможностью задания критериев привязки (к примеру, значений соответствующих переменным протокола SNMP полей Trap OID, Trap Type, Enterprise OID, Agent Address и IP-адреса отправителя), уровня критичности и срока актуальности данных. В новом релизе стало возможным привязать к одному объекту сразу несколько SNMP-трапов, что позволяет более гибко учитывать и контролировать состояние данного объекта и объектов, связанных с ним в иерархии.
Дальнейшее развитие функционала IFrame-виджетов
Виджеты используются в системе для визуализации актуальных и исторических данных, вывода информации об объектах контролируемой инфраструктуры и связях между ними. Тип виджета IFrame позволяет встраивать в веб-интерфейс комплекса содержимое сторонних ресурсов или low-code-расширений, а также создавать страницы с графиками любых метрик объектов из «Центрального Пульта» для включения в IFrame-виджеты или генерации отчетов.
В текущем релизе добавлены возможности встраивания в виджет IFrame страницы с журналом пользовательских сессий и сохранения настроек страницы с графиками в отдельных представлениях. Для удобства оперативного контроля работы пользователей реализована возможность открытия страницы с журналом по прямой ссылке, которую можно задействовать, например, для включения в виджет IFrame.
Пример ссылки на журнал сессий:
Здесь с помощью дополнительных параметров (period и limit) задан вид страницы – установлен временной период выдачи данных о сессиях (за последний месяц) и ограничение в 10 записей.
Система дает возможность настроить страницу с набором графиков из одного или нескольких объектов, которую можно использовать для генерации отчета или встраивания в виджет IFrame. По умолчанию, при включении одной и той же страницы с графиками в несколько IFrame-виджетов изменения, внесенные через элементы управления на одном из виджетов, будут применены и к остальным.
Изменения с настройками отображения страницы можно зафиксировать в отдельном представлении с помощью нового параметра адреса страницы с графиками – widget-instance-id. При указании этого параметра в адресе, изменения, вносимые через другие IFrame-виджеты на странице с графиками, не будут влиять на настройки, сохраненные в представлении. Данный функционал может оказаться полезным при необходимости одновременного просмотра графиков одних и тех же метрик с различными настройками отображения.
Возможность указания состояний объектов при отсутствии данных
Все наблюдаемые объекты имеют в системе определенные состояния, которые могут меняться в процессе мониторинга в зависимости от получаемых данных и в соответствии с заданными условиями перехода. Смена состояния объекта может, в частности, служить сигналом для генерации аварии.
Ранее, в отсутствии в системе данных по истечении заданного периода времени проверки, объект автоматически переводился в состояние «нет данных» (NO DATA), что могло расцениваться как аварийная ситуация. Вместе с тем, отсутствие данных для некоторых проверок не является причиной фиксации аварии, и перевод затронутого объекта в состояние NO DATA не требуется. В таких случаях следует использовать новую функциональную возможность – задание условия с типом «Экспирация данных». В качестве действия при этом можно установить «Не переводить состояние» или выбрать из предлагаемого списка состояние, у которого не задана критичность аварии.
Примером обсуждаемой ситуации может быть сбор объектом информации об ошибках – если ошибок нет, то данные в систему не поступают, и в этом случае целесообразно переводить объект в состояние WORKING.
Интерактивные ссылки на родительские объекты аварийных элементов
Инциденты в программном комплексе могут быть сгенерированы с помощью назначения условий перехода состояний объектов или условий генерации аварий. В любом случае, аварийный инцидент автоматически помещается на страницу активных аварий, где представлен динамический список всех проблемных элементов инфраструктуры. Аварии могут быть автоматически или вручную погашены и переведены в список исторических.
Наряду с такими параметрами аварии, как время регистрации, время возникновения, связанный объект, уровень критичности в таблицах активных и исторических аварий в веб-интерфейсе доступен столбец с именем «Путь», в ячейках которого содержатся имена родительских объектов аварийного элемента. В новом релизе ссылки на родительские объекты стали активными, а для случаев, когда на каком-либо из уровней иерархии активирован режим мультиродителя имя объекта этого уровня будет выделено жирным шрифтом, и при щелчке по нему левой кнопкой мыши будет открыт список всех родительских объектов со ссылками на них.
Подобная функциональность помогает нагляднее представить картину взаимосвязи объектов в иерархии и взаимном влиянии в аварийных ситуациях, оперативно отследить затронутые элементы, открывая возможности для анализа и поиска корневых причин событий (Root Cause Analysis, RCA).
Возможность просмотра журнала сессий пользователей
Работа пользователей в любой информационной системе подлежит обязательному протоколированию и учету. Сбор и предоставление администраторам информации о пользовательских сессиях позволяет, к примеру, отслеживать время работы пользователей, собирать и анализировать статистические данные, фиксировать факт нахождения пользователя в системе в настоящий момент, содействовать расследованию негативных событий и инцидентов и т.п.
Журнал сессий пользователей отображается в новом релизе платформы в специальном разделе окна конфигурации системы с указанием для каждой сессии времени входа пользователя в систему, времени выхода и срока действия сессии (времени автоматического завершения сессии при отсутствии активности пользователя). По умолчанию отображаются пользовательские сессии, начавшиеся в последние 24 часа (при необходимости, период можно изменить), активные сессии для наглядности выделяются зеленым цветом.
Возможность подключения к Telnet-терминалу из контекстного меню объекта
Контекстное меню объекта – это динамическое меню, активируемое при нажатии правой кнопки мыши на объекте. Меню предоставляет возможности оперативного выполнения типовых операций (клонирование, переименование, удаление) и связанных с объектом действий, таких как переход к просмотру информации об активных авариях и их истории, свойств объекта, отображению объекта на геокарте, перехода по гиперссылке, указанной в свойствах объекта, индивидуальных для объекта операций и др.
Ранее для объекта была реализована функция открытия SSH-терминала, обеспечивающего упрощенный доступ из Web UI к терминалу связанного сервера с целью выполнения действий по его администрированию. В новом релизе добавлена аналогичная возможность открытия Telnet-терминала для сеанса работы в веб-интерфейсе с сетевыми и серверными устройствами в режиме командной строки (требуется указание доменного имени или IP-адреса в наборе свойств объекта).
Контекстное меню доступно в дереве объектов, на основных панелях интерфейса и в панелях интерфейсов работы с инцидентами. У объектов класса Host пункт меню для дистанционного доступа по протоколу telnet активен даже если не задан адрес для соединения: в этом случае пользователю будет необходимо указать адрес, порт и логин пользователя с правами администратора. Введенные параметры можно будет сохранить в свойствах объекта, в результате последующие запуски терминала будут использовать сохраненные параметры.
Добавление новой опции контекстного меню объекта – «Перейти по адресу»
Другой небольшой доработкой в отношении контекстного меню объекта стало добавление в него дополнительного пункта «Перейти по адресу», активация которого инициирует открытие в новой вкладке браузера страницы, указанной в свойствах объекта (URL или IP-адрес).
Данный пункт отображается в меню при наличии хотя бы одного из заполненных у объекта свойств, в порядке приоритетности: web_link, address, ip (при наличии более одного из этих свойств переход будет происходить на страницу, указанную в самом приоритетном из них). Напомним, что под свойством в системе понимается любой вид текстовой информации, привязанной к объекту в формате «имя – значение».
Всплывающее окно с результатом выполнения операции
Операции с позиции терминологии и функционала платформы представляют собой набор предопределенных действий, которые могут выполняться при нажатии кнопки запуска (в секции, контекстном меню объекта/связи или на виджете) и при срабатывании триггера (действия при смене состояний). Операции могут быть использованы для изменения состояния или параметров управляемого объекта (или связи), получения данных от объекта (параметры, конфигурация, версия ПО и т.д.), загрузки на объект новой версии программного обеспечения.
Существуют два типа операций, в зависимости от выбора которых изменяются поля для заполнения в форме создания (редактирования) – выполнение программы/скрипта и отправка сообщения по протоколу MQTT. В текущем релизе для обоих типов добавлена возможность показа во всплывающем окне результатов выполнения операции при ее запуске в ручном режиме (выводится имя операции, путь к объекту в иерархии и результат выполнения), что повышает удобство контроля работы и оперативного анализа результатов.
Возможность отключения автоматического применения фильтра в панели навигации
Панель навигации по иерархии объектов расположена в левой части окна веб-интерфейса системы и представляет собой дерево всех доступных пользователю объектов и связей. Панель отображает актуальную информацию о текущих состояниях объектов и связей, выделяя их соответствующим цветом.
Объекты в панели можно фильтровать по имени, набирая текст в предназначенное для этого поле: при этом в выдаче будут оставлены только объекты, соответствующие введенному фильтру, и родительские по отношению к ним.
Ранее фильтр автоматически применялся всякий раз, когда происходил ввод очередного символа в поле, что при большом количестве объектов могло приводить к неоправданным задержкам. Во избежание этого, в текущем релизе добавлена возможность управления отрисовкой кнопки «ручного» применения фильтра (в разделе Tree конфигурационного файла клиента) – ее включение деактивирует автоматическое применение фильтра.
Замечание:
Для того, чтобы фильтр объектов заработал, в настройках сервера должна быть выставлена опция tree: { filterSubmit: true }
Возможность устанавливать ограничения на число запросов к API для групп пользователей
Платформа имеет собственный прикладной программный интерфейс API, относящийся к категории REpresentational State Transfer (REST) и предоставляющий возможности выполнять RESTful-методы для добавления, чтения, изменения и удаления информации (с использованием протокола JSON over HTTP).
Любые операции или действия, реализованные в веб-интерфейсе системы, могут быть выполнены с помощью публично доступного API, например – получение списка или иерархической структуры объектов, получение текущего статуса объектов и истории состояний, запись данных в объекты без использования агентов, настройка и получение свойств и параметров объектов, работа с инцидентами, создание классов с добавлением проверок и т.п.
В целях сохранения высокой производительности и масштабируемости работы общепринято вводить ограничения частоты запросов к API. В «Центральном Пульте» имелась возможность устанавливать ограничения количества запросов в единицу времени для IP-адресов, конкретных REST-методов и пользователей.
В актуальном релизе стало возможным устанавливать ограничения на число запросов к API для групп пользователей, для чего в конфигурационном файле сервера (/etc/saymon/saymon-server.conf) нужно в подразделе limits раздела Rest_server добавить параметр group со значением в виде идентификаторов соответствующих групп и указать требуемый лимит.
Возможность использовать поле discovery_id модели объекта в API-запросах
REST-методы «Create Object» и «Clone Object» позволяют создавать и клонировать объекты через API программного комплекса. Вместе с этими методами теперь можно использовать новое поле модели объекта – discovery_id.
Это поле может быть задействовано в качестве созданного пользователем внешнего идентификатора и использоваться для непосредственной работы с объектом. В случае, если discovery_id указано в теле API-запроса, метод создаст новый объект с этим идентификатором (если объект с указанным discovery_id не существует) или тело объекта будет обновлено (в противном случае).
Примеры API-запросов для клонирования объекта с id = 6013d0c604ab1a73eda738f5 и discovery_id = Qwerty:
по ID: http://<saymon_hostname>/node/api/objects/6013d0c604ab1a73eda738f5/clone
по discovery ID: http://<saymon_hostname>/node/api/objects/discovery_id:Qwerty/clone
Возможность сохранять временную метку из данных агента
В комплексе появилась возможность сохранять временную метку (поле timestamp) из данных агента, не перезаписывая ее временем сервера. Для этого в конфигурационном файле /etc/saymon/saymon-server.conf в разделе Server для параметра use_stat_timestamp следует задать значение true.
Улучшение интерфейса окна поиска и групповых операций
Окно поиска и групповых операций позволяет осуществлять расширенный контекстно-атрибутивный поиск среди всех объектов системы по различным критериям и, при необходимости, менять настройки мониторинга, параметров, условий перехода состояний, генерации аварий, действий при смене состояний и свойств объектов.
Кнопка удаления найденных в результате поиска объектов ранее располагалась в окне не совсем удачно – между кнопками применения изменений и генерации отчета. В текущем релизе для наглядности и уменьшения рисков случайного нажатия эта кнопка была перемещена в правую часть строки.
Исправление шаблона email-уведомлений
Уведомления пользователей об определенных событиях могут осуществляться в программном комплексе путем отправки сообщений по электронной почте, в виде SMS и в мессенджер Telegram (полному описанию возможностей мы посвятим отдельную заметку – о механизме уведомлений и автоматического описания действий, о расписаниях, отсрочках и эшелонировании операций). Уведомления могут быть индивидуальными и групповыми, относиться к процессам регистрации пользователя в системе и восстановления доступа, а также к случаям изменения состояний объектов или связей.
Доступные в веб-интерфейсе системы шаблоны уведомлений предоставляют возможность конфигурирования всех типов уведомлений и настраиваются в редакторе шаблонов, в котором можно использовать отдельные тэги HTML-разметки и специальные базовые переменные. С помощью базовых переменных можно включить в текст уведомления, например, имя элемента, его тип (объект или связь), имя и информацию о состоянии элемента, информацию о сработавшем условии перехода состояний, время возникновения события и другие сведения.
Ранее в конце шаблона email-уведомлений обязательно добавлялась информация о его генерации платформой SAYMON. В новом релизе пользователь может, при желании, включать или не включать такую строку в текст уведомления.
Программная платформа «Центральный Пульт» (SAYMON) продолжает совершенствоваться и становится все более доступной и удобной для реализации конечных цифровых решений в интересах корпораций любого масштаба и любой отрасли, реализации внутрикорпоративных и облачных сервисов.
Сегодня для системных интеграторов и команд поддержки операций на предприятиях доступна поставка «Центрального Пульта» в форме Docker-контейнеров или виртуальных машин. Опытные администраторы систем развернут «Центральный Пульт» за несколько минут. Установка дополнительных модулей и настройка интеграций могут занять некоторое время.
Пробуйте, пишите, звоните – берегите себя, свое время и своих близких!