РАСШИРЕНИЕ ФУНКЦИОНАЛЬНОСТИ MON - СИСТЕМЫ МОНИТОРИНГА КОМПЬЮТЕРНОЙ СЕТИ

В.В. Парменова

Система мониторинга технического состояния компьютерной сети MON используется системой телекоммуникаций "Ботик" для наблюдения за состоянием городской компьютерной сети[2]. Система способна осуществлять мониторинг около 20-ти локальных и удаленных сервисов.

Система MON является свободно-распространяемым продуктом. Ознакомиться со всеми возможностями системы, всегда найти свежую версию, а также задать интересующий вас вопрос по работе системы можно на странице в Интернет http://kernel.org/software/mon .

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

  1. повышение качества проверок - мониторная система должна уметь отличать серьезную поломку от незначительного сбоя в работе сети с доследующим самовосстановлением;
  2. оповещение о поломке в сети, а также оповещение о восстановлении работоспособности оборудования (сервиса), даже если восстановились не все компьютеры в группе, а только часть из них;
  3. представление результатов проверок в Web по всем параметрам проверки и в любой момент времени. Кроме этого, было выдвинуто дополнительное требование к мониторной системе: создание новой политики оповещения - системы с обратной связью.

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

  1. группы компьютеров (маршрутизаторов, серверов), которые должны подвергаться проверке;
  2. сервисы, которые должны проверяться на указанных группах компьютеров и, если необходимо, специальные параметры проверок;
  3. время проведения проверок и интервалы между проверками;
  4. методы оповещения, частота посылки сообщений, адреса.

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

Результаты проверок и действия основного процесса фиксируется в журнале системы. Также в журнал за-писываются ошибки, произошедшие в процессе работы системы MON. Система реализована на языке Perl[l] и предназначена для работы в ОС Linux.

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

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

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

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

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

Создание нового Web-интерфейса. В оригинальной версии системы MON действия и результаты работы системы фиксировались в некотором системном файле. Однако, этого оказалось недостаточным для достижения желаемого функционирования системы MON. Было решено вести дополнительные записи для последующего их использования при построении сайта состояния сервисов и всей сети в целом. Для этого был создан новый модуль Write_Log.

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

Создание информативного Web-сайта для системы мониторинга позволяет постоянно следить за состояние отдельных сервисов и сети в целом. Наглядное представление удобно для восприятия и анализа. Модуль All_Stat предназначен для разбора log-файлов и формирования данных в нужном формате для последующего отображения их в Web. Вызов модуля All_Stat производится из основного процесса по окончании всех действий, необходимых для проведения проверки. Формирование новых данных происходит с некоторой периодичностью. Период определяется как минимальный интервал между проверками среди всех интервалов, заданных в конфигурационном файле. В результате модуль All_Stat создает текстовый файл определенного формата, в котором записано состояние каждого компьютера из группы по всем сервисам после всех проверок, произведенных за текущие сутки.

Затем JavaScript-программы используют эти данные для построения сайта состояния сети. Оно представлено в Web в виде таблицы. Перед таблицей указано, к какой группе и сервису она относится. В столбцах указано время проверок, в строках - названия проверяемых компьютеров. На пересечении стоки и столбца можно увидеть состояние интересующего компьютера в определенный момент времени. Состояние отображается цветом. Считается, что работоспособный сервис отображен зеленым цветом, неработоспособный - красным. Цвет клетки вычисляется специальной функцией в зависимости от степени доступности сервиса.

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

Система оповещения с обратной связью позволяет осуществить многоуровневую схему сообщения о проблеме. В системе MON имеется реализация отправки нескольких сообщений об одной поломке, но при этом сообщения отправляются одинаковым способом (например, по e-mail), и администратор получит ровно столько сообщений, сколько указано в конфигурационном файле. Принцип работы новой схемы можно описать следующим образом: после обнаружения поломки администратору посылается сообщение. При этом система MON, работая в обычном режиме, способна принять ответ в виде электронного письма от администратора. В случае не получения ответа по истечении определенного промежутка времени система посылает еще одно сообщение, посчитав, что человек не прочитал посланное о поломке письмо. Это может быть сообщение другого типа (например, sms), но оно будет содержать информацию о той же поломке. Если и на это сообщение ответа не будет, снова будет отправлено сообщение. Количество сообщений определяется в конфигурационном файле. В нем же можно указать тип отправляемого сообщения - например, сначала это может быть mail.alert, далее sms.alert. Если же система получила подтверждение, что о поломке известно, дальнейшего отправления сообщений не происходит. Ответ системе MON предполагается посылать с помощью e-mail или специализированного web-интерфейса, связанный с администра-тивной системой Nadmin, которая используется для взаиморасчетов с абонентами СТ "Ботик".

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

ЛИТЕРАТУРА:

1. Т. Кристиансен, Н. Торкингтон PERL: библиотека программиста. Питер 2001.
2. Абрамов С. М., Пономарев А. Ю., Шевчук, Ю. В. Широко доступный Интернет как путь в открытое общество. Опыт Переславля-Залесского. Труды конференции "Интернет. Общество. Личность". Спб, 1999.
3. Olaf Kirch, Terry Dawson Linux Network Administrator's Guide, 2nd Edition http://linuxland.itarn.nsc.ru/eng/lmuxNAG