Система мониторинга и управления сетью.

Скачать ознакомительную версию системы мониторинга сети можно по ссылке: http://celere.ru/?ct=s&pcs=pmfcs4&paqst=11-skachat-sistemu-monitoringa-seti&pgit=11 

 

   Цель проекта: создать систему мониторинга и управления сетью провайдера (и не только). 

   Средства: Для написания системы использую php, mysql, ajax, shell, родной html, вероятнее всего, к этому подключу ранее написанные скрипты на python и/или perl. Сервер - linux (впринципе любой, лишь бы LAMP (линукс апач мускул пхп) был, я балуюсь с ubuntu и fedora). На сервере так же должны быть установлены и настроены snmp (думаю, понятно почему), cron-cli (аналогично), postfix (отправляем почту о событиях). В качестве файервола - iptables. На сервере должен быть GD Support enabled (php5-gd). 

   Данная система является только моей инициативной разработкой и к местам работы не имеет никакого отношения. 

   Краткое описание: При входе в систему - попадаем на главную страницу ресурса. 

Главная страница

 

Главная страница

 





   Про меню подробно расписывать не буду, скажу лишь, что легко меняется (на скрине уже третий вариант меню :-)). И так, после регистрации и авторизации в системе пользователь получает права guest, до изменения администратором системы до нужного уровня доступа. (группы admin, main, moni, узлы (прочие узлы - задаются в панеле администрирования)). На скринах - вид меню администратора.

   Объекты мониторинга: отображение таблицы с объектами, подлежащими мониторированию. Замечу, что тип устройств и системные имена определяются автоматически, что сильно упрощает работу с администрированием системы (так же как и устройства в сети - система обнаруживает самостоятельно) (со скринов вырезана служебная информация). В таблице слева на право: id оставил для отладки, системные имена устройств, ip-адреса, типы устройств, три колонки временно для отладки, последняя колонка - время простоя (опять же пока что для отладки). 

Объекты мониторинга

 

Объекты мониторинга

 





   Ping мастер: Осуществляется с помошью ICMP Echo-Request опрос всех объектов мониторинга (частота опроса легко меняется), я поставил опрос раз в 10 минут. Все запросы выполняются параллельно, поэтому на опрос сети из 3000 объектов (можно тестово понабрать ip mail.ru и других, как в одном из скринов) уходит около половины минуты (проц intel core2, два ядра по 1,86 GHz, память - гиг). Дополнительно каждые 5 минут сканируются недоступные ранее объекты (интервалы между сканированиями можно так же легко поменять в crontab). Информация о недоступных объектах на экране пользователя обновляется раз в две минуты (ajax). На фото под текстом пример отображения текущего отчета. 

Ping мастер

 

Ping мастер




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

дополнительный тест

 

Ping мастер дополнительный тест




   В результате получаем: (события, менее 15 минут - удаляю из БД, чтобы сильно не разрасталась (время можно менять)) 

дополнительный тест, результат

 

Ping мастер, результат дополнительного теста

 





   Мониторинг портов: удобно реализована постановка на мониторинг. Для администратора появляется дополнительный пунк в таблице, рядом с портом ("мониторить") так же в виде ссылки. Запускается опрос портов по crontab. Поставил опрос на каждые 3 минуты. 

Мониторинг портов

 

Мониторинг портов




   При нажатии на ссылку - открывается окно для внесения комментария к мониторируемому порту и подтверждения постановки на мониторинг. 

Комментарий/подтверждение

 

Комментарий/подтверждение




   Отображение событий мониторинга портов (PORTOVOZOR) можно выводить вместо с мониторингом устройств (PING мастер) (ну и какой-нибудь инструмент в придачу) на одной страничке в виде конструктора. 

PORTOVOZOR, мониторинг портов, отображение событий

 

"PORTOVOZOR", мониторинг портов, отображение событий

 





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

Выбор дат начала и конца возникновения событий для отображения

 

Выбор дат начала и конца возникновения событий для отображения



События, начавшиеся в выбранны временной период

 

События, начавшиеся в выбранны временной период

 





   MTR-статистика полезна для мониторинга качества оказываемых услуг, качества связи с вышестоящими провайдерами и т.д. и т.п. mrt-демон собирает traceroute (точнее данные с вывода mtr (аналог pathping в windows)) (поставил на крон один проход раз в 15 минут) до ресурсов, внесенных в БД и разрешенных для мониторинга, записывает полученные данные с каждого хопа в бд. Количество, размер и прочие параметры пакетов выставляются в конфигурационном файле, в данном примере высылаю по 10 пакетов на каждый хоп, остальные параметры по-умолчанию (т.е. mtr - c 10 google.ru , например). 

Внесение объекта для мониторинга mtr

 

Внесение объекта для мониторинга mtr



   При выборе соответствующего пункта меню - открывается диалог выбора нужных пользователю параметров для отображения ("Объект" - объект mtr-мониторинга, год, месяц, день (хочу заметить, что в выпадающем списке отображаются только год, месяц и день, когда ресурс мониторился, чтобы избежать ненужных "клацаний" по страничкам и сразу получать информацию), так же Last, Avg, Best, Wrst, StDev - параметры, которые непосредственно вырисовываются на графике в виде кривых). 

Выбор параметров для графического отображения

 

Выбор параметров для графического отображения



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

Пример отображения статистики, выбраны Last, Avg, Best

 

Пример отображения статистики, выбраны Last, Avg, Best



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

Пример отображения статистики, выбраны Last, Avg, Best, интерактивность

 

Пример отображения статистики, выбраны Last, Avg, Best, интерактивность



Информация по потерям пакетов

 

Всплывающее java-окно

 





   Утилиты: Сканирование сети диапазона IP/24 с отображением IP-адресов доступных устройств.
И вывод информации о нужном доступном объекте (имя, тип устройства, версия, далее добавлю вывод загрузки cpu и прочих "вкусностей")(на скринах вырезана служебная информация).

сканирование диапазона IP

 

сканирование диапазона IP



информация об устройстве

 

информация об устройстве




информация об устройстве 03.11.2010

 

информация об устройстве мод. 03.11.2010




информация об устройстве 07.11.2010

 

информация об устройстве мод. 07.11.2010



   "Кликабельные" порты рассматриваемого устройства и IP удаленных устройств. 

Порты устройства

 

Порты устройства




информация об устройстве 12.11.2010

 

информация об устройстве мод. 12.11.2010



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

информация о портах устройства 12.11.2010

 

выбранный порт




   Профиль пользователя: пока что только смена анкетных данных, заполняемях при регистрации (ФИО, логин, пароль, e-mail, телефон служебный, сотовый, дата рождения (дата регистрации и прочее - заносится в БД автоматически)) и смена пароля (пароль хранится в виде md5 от зашифрованного пароля :-)). Изменение анкетных данных будет перенесено в панель администрирования (сможет менять только администратор). Ведется лог изменений. 

профиль пользователя

 

профиль пользователя




   Панель администрирования: опишу по-порядку (скрины потом).
Пункт "Добавить тип устройств" - добавляет типы устройств, которые могут находиться в сети (оставил для теста, этот фильтр, впринципе не нужен, так как система на данном этапе уже умеет самостоятельно определять типы устройств).
Пункт "Внести сеть" - добавляет в БД для дальнейшего мониторинга доступные на момент добавления IP-адреса из сети с маской /24.
Пункт "Добавить IP" - добавляет IP-адрес в БД, независимо от его доступности на данный момент.
Пункт "Не мониторить устройство" - помечается введенный IP, как не мониторируемый. Не мониторится, пока "демон", сканирующий сеть, не пометит его как мониторируемый объект.
Пункт "Добавить узел" - позволяет добавить сеть/24, а так же отдельные IP-адреса с мнемоническим описанием для сканирующего демона, который, при нахождении устройства и данной сети, помечает его данным мнемоническим описанием принадлежности к данной сети/24 или IP адресу.
Пункт "Сервскан1 type" - Сканирует все доступные IP-адреса устройств, определяя тип устройства и его системное имя и внося данные в БД.
Пункт "Сервскан 2 CDP" - автосканирование CDP топологии, внесение найденных данных об устройствах и портах в БД.
Пункт "Сервскан 3 узлы/24" - сканирование внесенных в пункте "Добавить узел" сетей/24 и IP-адресов, внесение данных в БД. 

панель администрирования

 

панель администрирования




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

Добавить соответствие узла и мнемонического обозначения сети и/или конкретного IP-адреса

 

добавить соответствие узла и мнемонического обозначения сети и/или конкретного IP-адреса




Типы определяемых устройств: cisco (при необходимости разделю на подтипы, например 7200, 10720, 3560E и тд. по модельному ряду), натексы (ACE16, ACE120), ZyXEL IES 100 и 1000, Siemens-hiX563..., NOKIA-D500, QTECH QSW-2900, свичи от D-Link и тп. На скрине ниже - пример нахождения модема абонента (порсто добавил сеть, в которой теоретически могут быть модемы). Эти функции осуществляются при запуске пункта меню "Сервскан1" (можно запускать его по крону с любым, нужным, интервалом). 

определение устройств

 

определение устройств




   Демон рассылки почты - отправляет на почтовые адреса информацию о событиях на сети, в данный момент (19.11.2010) идет рассылка информации о недоступности устройств и портов на два списка e-mail адресов, перечисленных в конфигурационном файле системы.





   log: 
07.05.2011 Официально закрываю поддержку NSMM, нет необходимости в расширении ее функционала, поскольку идет разработка новой, расширенной, системы мониторинга сети.
18.02.2011 Праздники прошли не даром. Многое сделано. Почти доделан шаблонизатор, сделана "коллекция элементов", т.е. можно создавать и редактировать свой профиль, создавать коллекцию элементов, которая сохраняется, и можно начинать работу сразу с нее, сделана утилита для отображения загрузки cpu и оперативной памяти сервера. В скором времени опишу на этой страничке. Сегодня базу данных перевел на InnoDB. Волшебным оказался запрос SET GLOBAL innodb_flush_log_at_trx_commit = 0;
15.12.2010 До настоящего времени реализовал вывод отчета о событиях, демона mtr, который записывает двнные о mtr-статистике в бд, ну и вывод статистики в виде симпотичных интерактивных графиков за выбраное время.
19.11.2010 Реализовал рассылку почтовых сообщений о недоступности устройств и портов на два списка e-mail адресов.
14.11.2010 Реализовал мониторинг портов. Так же сделал из рабочей странички - конструктор, теперь можно выводить несколько пингмастер и портвизор сс еще каким - нибудь пунктом меню на одну страницу.
11-12.11.2010 Стали так же "кликабельными" порты рассматриваемого устройства, как в CDP топологии, так и в "порты устройства".
10.11.2010 Стали "кликабельными" ip соседних устройств (в "Информация об устройстве"). По клику на IP-адрес открывается в новом окне информация о выбранном устройстве. Разделил вывод информации на полный (как было в предыдущей модификации), так и добавил отдельно краткую информацию, отдельно информацию по портам и отдельно информацию по CDP соседям (так же "кликабельно", можно в реальном времени "путешествовать" по CDP топологии).
07.11.2010 Расширил получаемую информацию об устройстве (в "Инструменты"-->"Информация об устройстве"). Добавил отображение CDP, так же отображение портов устройства, состояния интерфейсов/сабинтерфейсов, прописанные на (sub)интерфейсах IP адреса.
03.11.2010 Не сдержался и немного расширил получаемую информацию об устройстве в "Инструменты"-->"Информация об устройстве". Теперь скрипт получает еще и информацию о средней загрузке устройства за 5 и 60 секунд и за 5 минут, объем свободной памяти, время uptime, и причину последней перезагрузки.
12.10.2010-17.10.2010 Улучшен "демон" автообнаружения сетей/24 по фильтрам с автоматическим добавлением новых адресов в сканируемые устройства. Изменен внешний вид выводимой информации о событиях (добавлена информация о "имени" сети, внесенная в фильтры). По многочисленным просьбам - сделал звуковое оповещение при возникновении новых событий. 
10.10.2010 Реализовано автоматическое заполнение топологии сети устройств cisco (CDP через SNMP), пока что без графического отображения, только в БД.





   В планах реализация "шаблонизатора" для управление сетью "кликом мышки", т.е. пользователями вводятся шаблоны для нужных дейсткий над устройствами (вонфигурирование, просмотр параметров и др.) для автозамены. В результате - применение своих шаблонов на любых устройствах, управление коими возможно через telnet. После - реализация мониторинга загрузок каналов и пр. (a-la mrtg и подобные системы). Ну и: автокартирование сети (на скрине - пример/результат работы "набросаного" кода.) 

картирование сети

 

графическое отображение топологии сети, пример




   Последнее изменение статьи 18.02.2011 

   Искренне Ваш,

         Фешин Виталий. 

 

Ознакомительную версию системы можно скачать по ссылке: http://celere.ru/

Прочитана 2119 раз
Автор: Фешин Виталий Александрович