суббота, 28 ноября 2015 г.

Автоматизация ведения поэтажных планов АС

Можете ли вы ответить на вопрос о инфраструктуре вашей организации - где находятся ваши компьютеры? А конкретнее, в каком помещении какие узлы расположены прямо сейчас?
  • Безопасник, в его бумажном воплощении, ответит - надо открыть технический паспорт и поэтажные планы расположения ОТСС/ВТСС, там все указано.
  • Администратор ответит - надо подключиться к коммутационному оборудованию и посмотреть ARP/MAC таблицы, еще можно посмотреть AD/DHCP и просканировать сеть.
Оба варианта имеют свои недостатки - бумага устаревает быстрее чем это может показаться, а работать на прямую с инфраструктурой не удобно.
Далее расскажу о том, как все знать о своей инфраструктуре и ничего не делать, а конкретнее - об опыте автоматизации ведения поэтажных планов АС.

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

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

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

Далее опишу основные компоненты системы и их настройки. Решение подойдет и вашей инфраструктуре, если она построена на проводной ЛВС.

Общая схема работы по созданию поэтажных планов

1. Определяемся с помещениями

Как понять, в каком помещении фактически находится узел? Только по сетевой розетке, в которую он подключен. Распределение портов коммутаторов по сетевым розеткам кабинетов обычно отражается в рабочей документации на СКС. Но можно вести учет напрямую на коммутаторах, в поле "Описание" для каждого порта. В нашем случае описание портов на коммутаторе представляет собой что то вроде "125-lalala" и включает как номер помещения, так и имя или описание узла, подключенного к порту. Для нашей задачи интересен, прежде всего, номер помещения. Учитывая, что перекоммутация происходит достаточно редко и всегда с участием сетевого администратора, поддерживать такие таблицы достаточно легко.

2. Собираем исходные данные

В качестве источников выступили:
  • коммутаторы: собираем информацию о том, какие MAC адреса на каких портах подключены, а так же VLAN и описания этих портов (в описаниях указаны номера кабинетов);
  • DHCP сервер: для каждого MAC-адреса собираем его FQDN имя.
Данные собираются скриптом по расписанию и сохраняются в результирующий файл следующего вида: Имя узла | Коммутатор | Порт | VLAN | Описание порта
Уже на этом этапе мы получили весьма полезную информацию которая позволяет провести инвентаризацию сети.

3. Строим основу для поэтажных планов

Для отображения поэтажных планов была выбрана бесплатная система мониторинга Zabbix. Ее настройка свелась к следующим этапам:
  1. В Zabbix были подгружены поэтажные планы организации, созданы "карты сети" для каждого этажа;
  2. Созданы "группы узлов" соответствующие номерам кабинетов;
  3. На картах сети были размещены объекты "элементы группы узлов сети" в соответствии с расположением кабинетов;
  4. Настроено соответствие иконок отображения узлов в зависимости от параметров узла (параметром выступал номер VLAN); 
Теперь, при добавлении узлов в Zabbix и распределении их по группам, они отображаются на соответствующих поэтажных планах.

4. Экспортируем узлы в Zabbix

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

Пример поэтажного плана

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

5. Обрабатываем новые и старые узлы

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

В результате

На создание решения пришлось потратить немало времени, но в итоге мы получили:
  1. Всегда актуальные схемы поэтажного расположения узлов сети, которые можно в течение 10 минут добавить в Технических паспорт (при ежегодном контроле эффективности или аттестации);
  2. Удобный инструмент для визуального анализа инфраструктуры на "физическом" уровне.
Помимо эстетической красоты от подобного отображения есть и практическая польза, так как в процессе визуального осмотра карт легко обнаружить:
  • лишние узлы в помещениях;
  • что находится рядом с интересующим нас узлом;
  • подозрительное/некорректное распределение узлов по VLAN (например, если в помещениях отдела продаж появляется узел, входящий в VLAN бухгалтерии, или в VLAN принтеров окажется компьютер пользователя);
  • факты подключения к сети несанкционированных устройств (даже если его подключали на 10 минут, он появится на схемах и будет там оставаться в течение месяца).
Кроме того, нам становится доступен весь функционал Zabbix по работе с узлами. В нашем случае Zabbix проверяет доступность узлов и выделяет на поэтажном плане недоступные на текущий момент узлы . Но если добавить установку на узлы агентов или сбор информации по SNMP то появляются весьма мощные возможности.

Возможно, подобный подход будет актуален и в вашей инфраструктуре. А если нет, то как задачу актуализации поэтажных планов АС решаете вы?

1 комментарий: