3

Мое рабочее место — 2

Posted by admin on 30.08.2014 in Без рубрики |

Мое рабочее местоНаконец-то я сделал ЭТО. Давно хотел, но все как-то руки не доходили, а тут приспичело, хочу и всё. Охота пуще неволи. На самом верхнем мониторе над системным блоком запущена программа мониторинга. Там на одном экране наглядно отображается текущее состояние некоторых (основных) объектов локальной сети. Мне (да и всем в комнате) хорошо видно этот экран практически с любой точки, и с рабочего места, и от входа. Ещё до того, как люди начнут звонить и вещать о проблемах, можно увидеть, что произошло, ну, или хотя бы — где.

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

Вспомнился разрекламированный микрософтовский бесплатный WebMatrix, на нем и была сделана (а точнее, не доделана) первая версия мониторинга локальной сети. Кстати, среда WebMatrix мне очень понравилась своей простотой и удобством разработки. Но там было не понятно, как периодически выполнять опросы по таймеру. Все работало, но при первом открытии страницы или принудительном обновлении (F5). А мне то нужно, чтобы автоматически постоянно сканировалось. Погуглив, вышел на то, что нужно «проапгрейдиться» до Visual Studio. Там все и реализовал. Времени потратил уйму. Среду Visual Studio видел впервые, да еще плюс веб-специфика, каждый шаг — с боями, но результат мне очень нравится.

Вот Справка по программе, которую пришлось сразу составить для себя же и для коллег:

База данных

Объекты для мониторинга хранятся в базе данных в формате Access:

 Имя             Тип               Размер
Code          Длинное целое           4
Name          Текстовый              50
Object        Текстовый             255
Active        Логический              1
Type          Целое                   2
Ord           Целое                   2
DOW           Текстовый              20

1 раздел. Наличие Файлов (резервные копии)

Из основной таблицы выбираются строки с полем “Type” = 1.
Для каждой строки проверяется поле “Object”. Если оно содержит шаблон %DATE% (обязательно все буквы заглавные), то программа заменяет его на дату в формате: «yyyy-MM-dd». При этом сначала проверяется, заполнено ли в таблице поле “DOW”. Если оно не заполнено, то дата берется текущая. Если поле заполнено, то предполагается, что НЕ для каждой даты должен существовать файл с таким шаблоном (%DATE%). Например, резервная копия делается только по дням недели: ВТ, СР, ЧТ, ПТ, СБ. Таким образом, даже если в ВС или ПН нет соответствующего файла, то это не значит, что сразу нужно включать красный флаг. Нужно сначала проверить, есть ли файл за тот день, когда он должен был создаваться в последний раз. Предполагается, что в поле “DOW” содержатся цифры, соответствующие дням недели, в которые должен создаваться файл. Порядок следования цифр и пробелы не учитываются. Для приведенного выше примера (ВТ, СР, ЧТ, ПТ, СБ) в поле “DOW” может быть “23456”. Также возможны различные варианты, например. “3 4 5 6 2”. В любом случае программа ищет ближайшую предыдущую дату, для которой в поле “DOW” указан день недели. Именно эта дата и подставляется вместо шаблона %DATE% в формате «yyyy-MM-dd». После этого проверяется наличие такого файла. Если файл присутствует, то его имя записывается в нижнее поле панели, а сама панель окрашивается в зеленый. Если нет — в красный. Но тогда программа ищет в том же каталоге “последний” файл с таким же расширением и подставляет его имя в нижнее поле панели. (На самом деле поиск последнего файла производится не по дате его создания, а по имени, т.к. используемый шаблон даты сортируется как по дате, так и по имени одинаково.) В верхнее поле записывается значение из поля “Name” основной таблицы.

2 раздел. Доступ к каталогам на серверах

Из основной таблицы выбираются строки с полем “Type” = 2.
Для каждой строки считывается поле “Object”, в котором должен быть указан полный путь к каталогу, доступность которого нужно проверить. Если каталог доступен, то его панель окрашивается в зеленый, если недоступен — в красный. Значение поля “Object” записывается в нижнее поле панели, “Name” — в верхнее.

3 раздел. PING

Из основной таблицы выбираются строки с полем “Type” = 3.
В поле “Object” может содержаться как имя, так и IP-адрес. Но, нужно учитывать, что реально пингуется именно IP-адрес. Поэтому заданное имя должно корректно разрешаться в него.

Если адрес доступен, то его панель окрашивается в зеленый, если недоступен — в красный. Значение поля “Object” записывается в нижнее поле панели, “Name” — в верхнее.

4 раздел. Пространство на дисках

Из основной таблицы выбираются строки с полем “Type” = 4.
В поле “Object” может содержаться путь к любому доступному каталогу, например, “\\server\NameShare\” или “\\serv1\C$”. Наличие обратного слэша на конце безразлично. Программа проверяет свободное место по указанному пути и общий объем того диска, на котором расположен заданный каталог. Потом делит первое на второе, и если соотношение меньше указанных процентов (по умолчанию — 15), то окрашивает панель в красный, если свободного места больше заданного количества процентов, — в зеленый. В нижнее поле панели записываются оба параметра через слэш. А в верхнее — значение поля “Name”. После запуска программы порог 15 процентов можно изменить, отредактировав это значение прямо в заголовке раздела.

Для всех разделов

Сортировка

Внутри раздела, определяемого полем “Type”, объекты сортируются в соответствии со значением поля “Ord” по возрастанию.

Активность

Временно неиспользуемые строки в основной таблице можно отключить, сбросив флажок в поле “Active”

Разделители

Если в поле “Name” указано “separator” (без кавычек строчными буквами), то вместо панели в страницу вставляется новая строка с текстом из поля “Object”.

Если в поле “Name” указано “break” (без кавычек строчными буквами), то панель для такого объекта не создается, поле “Object” игнорируется, а следующие панели (с учётом сортировки) идут с новой строки.

Дополнение

Практика показала, что иногда возникают ложные покраснения. Если сразу после отрицательного результата тестирования проверить ресурс вручную или обновить страницу, перезапустив таймер, или клавишей F5, то ресурс оказывается доступным. Во избежание такого ненужного «дребезга» на экране, во втором и третьем разделах панельки НЕ краснеют сразу после первого неудачного теста. А краснеют только после второго неудачного теста подряд.

Т.о., если ресурс оказывается попеременно то доступен, то — нет, то его панелька останется зеленой, пока не будет хотя бы двух подряд отрицательных результатов мониторинга.

3 Comments

  • User:

    а можно исходники получить или саму программу?

  • Alex:

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Copyright © 2011-2017 Сисадминские будни All rights reserved.
Любое воспроизведение материалов сайта возможно только с активной ссылкой на admsoft.ru.