Словари и их использование в «Центральном Пульте»

Предлагаемый к ознакомлению материал посвящен такому, казалось бы, частному вопросу как использование словарей в системах мониторинга и представлению соответствующих возможностей, реализованных к настоящему моменту в программном комплексе «Центральный Пульт».


Общие сведения о словарях и особенностях их использования в системах мониторинга

Специалистам хорошо известно, что словари (справочники, хеш-таблицы) в контексте мониторинга цифровых инфраструктур являются мощными инструментами, способными вносить ощутимый вклад в повышение эффективности работы систем мониторинга и в обеспечение непрерывности функционирования наблюдаемых сервисов и приложений.

Словари могут успешно применяться в самых разных сценариях и аккумулировать информацию о различных сущностях, позволяя эффективно хранить, извлекать и осуществлять управление данными, что особенно критично для оперативного отслеживания состояния компонентов инфраструктуры.

Некоторые аспекты использования словарей в системах мониторинга:

  • унификация данных: словари помогают стандартизировать и унифицировать данные, собранные из различных источников, что упрощает анализ и обработку информации в условиях разнообразия используемых технологий и инструментов
  • автоматизация процессов: словари позволяют автоматизировать процессы, такие как классификация инцидентов, настройка правил и триггеров для уведомлений, назначение приоритетов и т.п.
  • обеспечение совместимости: использование словарей обеспечивает совместимость различных инструментов и систем мониторинга, что позволяет интегрировать их в единую инфраструктуру
  • улучшение точности анализа: стандартизированные термины и определения способствуют более точному анализу данных и принятию решений на основе корректной информации
  • снижение числа ошибок: автоматизация и унификация процессов на основе словарей помогают снизить количество ошибок, возникающих из-за человеческого фактора
  • отчетность и контроль: словари помогают улучшить процессы отчетности и контроля, предоставляя стандартные шаблоны и форматы для формирования данных и отчетов
  • обучение и адаптация сотрудников: словари являются полезным инструментом для обучения новых сотрудников и повышения квалификации существующих, поскольку обеспечивают доступ к стандартизированной информации и лучшим практикам

Основные преимущества от использования словарей в системах мониторинга:

  1. Быстрый доступ к данным:
    • О(1) сложность: словари обеспечивают постоянное время доступа к данным по ключу, что делает их востребованными для задач, в которых необходим быстрый отклик
    • эффективность: быстрый доступ к данным позволяет оперативно реагировать на изменения в состоянии системы и принимать своевременные меры
  2. Гибкость:
    • разнообразие типов данных: словари могут хранить различные типы данных, включая строки, числа, списки, а также и другие словари, что делает их универсальным инструментом
    • динамическое изменение: словари легко изменять и обновлять, что позволяет адаптироваться к изменениям в конфигурации и состоянии системы
  3. Простота использования:
    • интуитивно понятный синтаксис: словари легко создавать и использовать в большинстве популярных языков программирования, таких как Python, JavaScript и др.
    • интеграция: словари легко интегрируются с другими структурами данных и системами, что упрощает их использование в существующих архитектурах, создавая единую и целостную картину состояния инфраструктуры

Некоторые примеры использования словарей в системах мониторинга:

  1. Хранение метрик:
    • словари могут использоваться для хранения метрик, таких как утилизация CPU, памяти, дискового пространства и сетевого трафика
    • преимущества – быстрый доступ к метрикам по ID оборудования, возможность легко добавлять новые метрики и устройства
  2. Отслеживание состояния сервисов:
    • словари могут использоваться для отслеживания состояния различных сервисов, таких как базы данных, веб-серверы и приложения
    • преимущества – легкость обновления состояния сервисов, возможность быстрого определения их текущего состояния
  3. Управление конфигурациями:
    • словари могут использоваться для хранения конфигурационных данных, таких как параметры подключения к базам данных, настройки сети и т.д.
    • преимущества – централизованное хранение конфигурационных данных, упрощение управления и обновления конфигураций
  4. Журналирование и отладка:
    • словари могут использоваться для хранения логов и данных отладки, что облегчает анализ и устранение проблем
    • преимущества – удобство поиска и анализа логов по датам, возможность хранения структурированных данных отладки

Примеры типов словарей, используемых в системах мониторинга:

  • CMDB (Configuration Management Database): база данных управления конфигурациями, включающая информацию о конфигурационных единицах (серверы, сети, приложения и т.д.) и их взаимосвязях
  • словари инцидентов: справочники для классификации и описания инцидентов, включающие категории, приоритеты, статусы и типы инцидентов
  • словари активов: справочники для учета ИТ-активов, включая типы устройств, их характеристики, местоположение и текущий статус
  • словари событий: справочники для стандартного описания событий, происходящих в системе, включая типы событий, их важность и действия, которые необходимо предпринять при наступлении событий
  • словари мониторинговых метрик: справочники для описания метрик мониторинга, таких как использование CPU, памяти, дискового пространства, сети и т.д.
  • словари сервисов и приложений: справочники для описания ИТ-сервисов и приложений, включая их характеристики, взаимосвязи и зависимости
  • словари протоколов и стандартов: справочники для описания используемых сетевых протоколов и стандартов, таких как TCP/IP, HTTP, SNMP и т.д.
  • словари терминов и нормативных ресурсов: словарь может содержать ссылки на алгоритмические, информационные и нормативные ресурсы системы, а также нормативные документы как источники терминов предметной области
  • словари пользователей и ролей: справочники для управления учетными записями пользователей и их ролями в системе, включая права доступа и уровни привилегий

Возможности использования словарей в программном комплексе «Центральный Пульт»

Программный комплекс «Центральный Пульт» – современная, высокопроизводительная, надежная и эффективная отечественная платформа мониторинга цифровых активов. Комплекс способен качественно выполнять широкий спектр задач, типичных для ведущих систем мониторинга.

В последних по времени выпуска релизах платформы специальное внимание было уделено расширению функционала словарей, реализации новых возможностей по их использованию в работе программного комплекса.

Словарь в терминологии «Центрального Пульта» представляет собой специальный элемент системы, который хранит данные в формате «ключ – значение» или «ключ – массив значений» (с контролем уникальности ключа).

Настройка словарей и работа с ними выполняется в окне конфигурации веб-интерфейса системы при наличии у пользователя необходимых прав.

Создание нового словаря выполняется путем перехода в окне конфигурации в раздел «Словари», нажатием кнопки , вводом в окне справа от списка имени словаря и настройки его значений и нажатием кнопки «Применить». Там же можно отредактировать (обновить) ранее созданные словари, выбирая имя интересующего словаря из списка в окне.

Рисунок 1. Редактирование существующего словаря

Операции экспорта / импорта предусматривают выбор интересующего словаря в списке и нажатием кнопок или , расположенных над таблицей значений («Данные»).

Рисунок 2. Экспорт/импорт словаря

Операции со словарями можно выполнять через REST API программного комплекса, доступны следующие запросы: «Создать словарь», «Обновить словарь», «Получить словарь», «Получить все словари» и «Удалить словарь по ID».

Формат HTTP-запросов для получения конкретного словаря по его идентификатору (ID) и обновления словаря:

GET /node/api/objects/dictionaries/:id
PATCH /node/api/dictionaries/:id

Пример запроса на обновление словаря (реализация на bash):

login=<…>
password=<…>
saymon_hostname=<…>
dictionary_id=<…>
url=https://$saymon_hostname/node/api/dictionaries/$dictionary_id
curl -X PATCH $url -u $login:$password \
    -H “Content-Type: application/json” \
    -d @- <<EOF
{
    “name”: “Door state”,
    “content”: {
        “0”: “Closed,
        “1”: “Opened”
    }
}
EOF

Пример ответа сервера на подобный запрос:

{
    “id”: “5e9eb1bf10b1f754077f3f03”,
    “name”: “Door status”,
    “content”: “{\”1\”:\”Closed\”,\”2\”:\”Opened\”}”
}

Значениям словаря можно присвоить название, используя функционал именованных полей. Присвоить названия полям в текущей реализации можно при импорте словаря из таблицы в формате MS Excel.

Рисунок 3. Словарь с именованными полями

Поля в словарях могут быть зашифрованными, что востребовано при хранении в базе данных пользовательских паролей и иной чувствительной информации. Для шифрования полей необходимо активировать соответствующую возможность в конфигурации сервера.

Рисунок 4. Редактирование зашифрованного словаря

Словари в текущей реализации можно используются для настройки отображения значений в виджетах и свойствах.

Словари можно применять для преобразования значений виджетов в человекочитаемый формат. К примеру, датчик контроля двери в аппаратную присылает в систему мониторинга значения “1” или “0”, что соответствует открытию или закрытию двери. Отобразить состояние двери в понятном человеку виде можно, добавив виджету словарь со значениями: “0” – “Дверь закрыта”, “1” – “Дверь открыта”.

Рисунок 5. Преобразование значений виджетов в человекочитаемый формат

Словари позволяют хранить данные, которые можно задействовать в свойствах элементов, в качестве переменных, а также и в других частях системы.

К полям словаря можно обращаться как к элементам массива, что используется при изменении отображения словарей в классах свойств, при подстановке значений из словаря в качестве переменных и в некоторых других случаях.

Свойство в программном комплексе – это любой вид текстовой информации, привязанной к элементу (объекту, связи или потоку), в формате «имя – значение». Свойства позволяют добавлять к элементам описание и иную полезную информацию.

При задании свойств можно использовать не только явно назначаемые имена и соответствующие им значения, но и выбирать значения из выпадающих списков (доступен как одиночный, так и множественный выбор). Набор значений в списке задается с помощью функционала словарей и классов свойств.

Рисунок  6. Форма выбора значений свойства из выпадающего списка

Класс свойств – это специальный шаблон, задающий общие правила для оформления свойства в веб-интерфейсе. Конкретный класс свойств определяется набором параметров, влияющих на отображение свойства в соответствующей секции вида подробной информации – имя класса свойств, описание, тип значения свойства, значение по умолчанию.

Каждый класс свойств может иметь только один тип значения, принадлежащий к ограниченному стандартному набору (например, целочисленный, вещественный, строковый, логический, время, дата, IP-адрес, MAC-адрес, URL, e-mail, телефон и др.).

Выбор типа значения «Словарь» приводит к добавлению в набор параметров класса  дополнительных полей:

  • источник – словарь, который служит источником для значений данного класса свойств
  • множественный выбор – определяет возможность выбора несколько значений в свойстве
  • разделитель нескольких значений – произвольная строка, подставляемая системой при нескольких выбранных значениях
  • шаблон отображения значения – строка, с помощью которой можно настроить отображение словаря ({{0}} – ключ словаря, {{1}} – {{N}} – значения словаря)

Рисунок 7. Редактирование класса свойств


Заключение

Словари играют важную роль в развитых системах мониторинга ИТ-инфраструктур, обеспечивая быстрый и эффективный доступ к данным, стандартизацию информации, автоматизацию процессов, упрощая управление, включая метрики, состояние сервисов и конфигурационные данные, что способствует повышению надежности и производительности систем, быстрому и точному выявлению и устранению проблем.

В конечном счете вносится весомый вклад в обеспечение высокого качества и бесперебойности предоставления на базе цифровых инфраструктур различных востребованных пользователями ИТ-сервисов.

Внедрение словарей в системы мониторинга способствует значительному улучшению функциональности и удобства использования в разных ситуациях, предоставляет полезные инструменты для администраторов и разработчиков.

Описанные в материале возможности работы и использования словарей в программном  комплексе «Центральный Пульт» уже способны оказать помощь использующим его специалистам разных категорий. Вместе с тем, вполне оправданным представляется производимое дальнейшее развитие функционала словарей с реализацией новых методик и сценариев их использования на практике.

В ожидаемом к выходу новом релизе «Центрального Пульта» запланировано появление специального функционала словарей для целей мониторинга, представляющих собой централизованное хранилище общих данных, которые могут использоваться при настройке задач мониторинга (сенсоров). Предполагается разделение словарей на системные и пользовательские с возможностью группировки.

Мы будем держать вас в курсе новых доработок системы по этому направлению, отражая соответствующие обновления и улучшения в выпускаемых пресс-релизах и заметках в нашем блоге.