Разработка программного модуля инвентаризации на основе протокола SNMP
Секция: Технические науки
XXXIX Студенческая международная заочная научно-практическая конференция «Молодежный научный форум: технические и математические науки»
Разработка программного модуля инвентаризации на основе протокола SNMP
Цель работы: реализовать программный продукт, предназначенный для сбора данных о ПО и местоположении всех рабочих станции находящихся в локальной сети института, для более полного контроля за нелицензионным и неразрешенным программным обеспечением на территории института, тем самым предотвратив санкции со стороны проверяющих органов и обеспечив получение полной информации автоматизированной информационной системы управления. Для этого целесообразно использовать протокол SNMP, в связи с тем что оборудование реализующее сетевое взаимодействие (коммутаторы и маршрутизатор) способны получать команды посредством этого протокола.
Переходу от традиционных сетей с коммутацией каналов к пакетной передаче данных сопутствует лавинообразный рост возможностей по контролю сетей. Решающими факторами успеха для оператора становятся качество и оперативность их предоставления. От того, насколько эффективно и комплексно выполняются эти задачи отделом автоматизации, зависят затраты компании на сопровождение сети.
Самый распространенный метод фактического контроля – инвентаризация. С её помощью не только контролируется сохранность собственности организации, но и обеспечивается достоверность фактических данных.
Если нужно проводить инвентаризацию и контроль за программными продуктами находящимися на локальных и сетевых машинах организации, необходимо держать штат людей, которые будут непосредственно заниматься решением этой задачи, в связи с этим организация может терпеть значительные денежные потери. Поэтому целесообразно рассмотреть возможность автоматизации этой трудоемкой операции, на основе сетевых решений.
Цель работы: реализовать программный продукт предназначенный для сбора данных о ПО и местоположении всех рабочих станции находящихся в локальной сети института, для более полного контроля за нелицензионным и неразрешенным программным обеспечением на территории института, тем самым предотвратив санкции со стороны проверяющих органов и обеспечив получение полной информации автоматизированной информационной системы управления. Для этого целесообразно использовать протокол SNMP, в связи с тем что оборудование реализующее сетевое взаимодействие (коммутаторы и маршрутизатор) способны получать команды посредством этого протокола.
В процессе разработки приложения были реализованы следующие классы, которые будут описаны ниже:
Классы:
Реализация протоколов:
· SNMPClient Выполнение SNMP-запросов, поддержка MIB;
· MySQLClient Выполнение SQL-скриптов.
Обработчики команд интерпретатора:
· DataImport Перенос данных из БД SNMP в БД интерпретатора;
· DataManage Обработка данных внутри БД интерпретатора;
· DataExport Перенос данных из БД интерпретатора в БД GLPI.
Таймер перебора реализуется на сервере. Скрипты запускаются конфигурируемым блоком по таймеру либо по команде пользователя из интерфейса.
Рисунок 1. Общий алгоритм работы программы
GET StringsQueryLabel StringsOID
Получает данные из SNMP по запросу sOID и заносит во временную таблицу результат запроса в виде пар (OID, Value), помеченных идентификатором сессии и идентификатором sQueryLabel
SQL StringsSQLQuery
Выполняет SQL-скрипт, обрабатывающий данные во временных таблицах. Может изменять выполняемый алгоритм, добавляя и удаляя команды.
MAP StringsSQLQuery StringsEntityClass
Выбирает данные из временных таблиц в виде записей с именованными полями. Каждая запись относится к одной сущности из БД GLPI. Выбранные данные используются блоком отображения БД для сохранения в БД GLPI. Тип сущности, которую описывают записи, определяется в соответствии с sEntityClass.
Рисунок 2. Общая схема работы скрипта
Уничтоженных сущностей GLPI:
Производится при анализе сохраняемых данных, например:
1. Запись «Cisco с ID и нулевыми полями» соответствует удалению сущности Cisco с соответствующим ID.
2. Запись “Wire с двумя PortID” сохраняется в таблицу glpi_networking_wire. При этом Записи, конфликтующие с данной, автоматически удаляются.
За взаимодействие с коммутатором отвечает класс CiscoEntry, по протоколу SNMP он опрашивает выбранную циску о всех её параметрах:
· Все конечные узлы которые подключены к ней$
· Все мосты до следующих коммутаторов.
Каждый объект хранит информацию об одной циске и указатели на другие объекты, связанные с циской:
· Набор «MAC-записей», найденных на данной циске.
· Набор «записей местоположений», найденных на данной циске.
Рисунок 3. Алгоритм построения списка и обхода коммутаторов элементов относительно коммутаторов
Класс SnmpClient служит для реализации взаимодействия с устройствами по протоколу SNMP, в конструктор передаются общие параметры подключения.
Рисунок 5. Блок-схема алгоритма проверки целостности данных
Рисунок 6. Блок-схема алгоритма сохранения полученных данных
В ходе выполнения работы был разработан такой алгоритм работы программы, который позволяет обнаруживать рабочие станции в сети, вычислять их местоположение, строить карту сети и получить сведения об установленном программном обеспечении.