Я очень долгое время ходил вокруг NOC и облизывался на него, как та лиса на виноград. Ставил, тыкался и бросал. А потом снова возвращался, ибо прельщал подлец своими возможностями. И понимание того, что именно его не хватает в жизни для «щастья» в конце концов заставило зажать нервы в узду и взяться за NOC всерьез.
Если кто-то еще не знает что такое noc project, то это центр управления сетевой инфраструктурой. Программа позволяет организовать контроль за сбоями, слежение за производительностью, активацию сервисов, ведение базы знаний, управление адресным пространством, управление виртуальными сущностями (VLAN, DLCI), архивирование и ведение базы конфигураций, обеспечение работы DNS, генерацию отчетов. Вот тут можно про него почитать, офигеть от его крутости и вернуться сюда. А конкретно здесь я чуть-чуть расскажу про особенности установки, немного коснусь темы добавления оборудования, слегка углублюсь в вопросы его настройки, пробегусь по некоторым функциям этого программного комплекса и закончу на чем-нибудь позитивном или не очень. Как получится :)
Про особенности установки
Итак, установить NOC можно несколькими способами. Самый простой — скачать образ виртуальной машины. Он хорошо запускается в VirtualBox, однако если ваша виртуальная среда что-нибудь вроде ESXi, вам придется его туда конвертировать. Как это делать сами найдете, не маленькие. Также есть еще один изящный способ.
Для Ubuntu:
apt-get install ca-certificates
wget -q -O- https://cdn.nocproject.org/bs/Ubuntu-12.04.txt | sh | tee /tmp/install.log
Для Debian:
apt-get install ca-certificates
wget -q -O- https://cdn.nocproject.org/bs/Debian-7.0.txt | sh | tee /tmp/install.log
Предупреждение для убунтоводов! Если вы, как и я, решили развернуть noc на виртуальной убунте, скажите привет птичке обломинго — не встанет. На виртуальном дебиане система разворачивается прекрасно, а вот убунта принимает ее только живя на железе. Увы. Но, есть лайфхак. Ставите вашу любимую ОС на любую железяку, накатываете noc, потом снимаете образ Clonezilla-ой и уже его заливаете на ESXi. У меня таким образом получилось перенести инсталляцию со старенького ноутбука на ESXi 5.1 Все прошло без сучка без задоринки.
Основным недостатком noc project до недавнего времени являлось отсутствие документации. Но сейчас разработчики активно исправляют этот пробел, причем делают это на русском языке. Так что те, кто хотят окунуться в пучину первоисточника, могут пройти сюда.
Собственно установка это самое простое. Дальше настройка. Здесь веселее. Я не буду расписывать где есть что и для чего оно надо. Напишу свою последовательность настройки, после которой NOC выдает ожидаемый результат.:)
Итак, вы установили NOC или запустили его виртуальный образ. Настроим оповещения. Идем в самый верхний каталог Main — Setup — Configs. В поле Config выбираем etc/noc-notifier.conf.
В секции mail, в поле enabled, в столбце Value прописываем True. Также заполняем поля smtp_server, smtp_port, если требуется use_tls, from_address, smtp_user, smtp_password. Также доступны оповещения по xmpp протоколу и уведомления в файл. Заполняете их на свое усмотрение. Жмете кнопку Save.
В каталоге Users можно создать новых пользователей. Здесь тонкостей нет.
В Notification Group создаём группу оповещения. Жмем Add. Заполняем поля. В секции Users прописываем Time Pattern и пользователя. Они выбираются из выпадающего списка. В секции Other также выбираем время и способ оповещения.
Внимание! Я также заполняю поле Params указывая для mail — адрес получателя, для file — имя файла. Без этого у меня оповещения не работают. Однако в irc-канале люди утверждают, что у них все работает без поля Params на основе адресов занесенных в свойства пользователя. На растерянное «Как же так?», был ответ: «Это noc, детка» :))
Чтобы проверить, что оповещения работают, отмечаете группу чекбоксом и нажимаете кнопку Test selected groups на панели инструментов. Если письма не уходят и задерживаются в Main — Pending Notification, перезапустите noc в терминале сервера /etc/init.d/noc-launcher restart. Если это не помогло изучайте логи в /srv/noc/log/noc-notifier.log
И еще. Не уверен насколько это необходимо, но где-то на сайте проекта видел что надо, в Main — Setup — Prefix Tables я в обоих активаторах прописал сети в секции Prefixes. Не забываем про Save.
Немного коснусь темы добавления оборудования
Так, с Main кажется закончили. Теперь идем в Service Activation — Managed Objects. Здесь собственно и находится оборудование которым мы будем управлять. Описание установки я копипастить не буду, а просто дам ссылку, т.к. более полно и подробно я не напишу.
Несколько важных уточнений:
В ваших устройствах должны быть настроены snmp community, snmp traps и установлено правильное время!!!
При добавлении устройства прописывайте ему теги.
Не создавайте и тем более не устанавливайте Collector. Эту рекомендацию мне прямым текстом дали в irc-канале проекта. По умолчанию его в системе и нет, что как бы намекает...
Не забудьте в Service Activation — Managed Object Selector создать селектор который будет фильтровать устройства по определенному параметру, в моем случае по тегу.
Слегка углублюсь в вопросы его настройки
А теперь небольшое углубление в тему оборудования и в частности в SA Profile. SA Profile имхо самая важная часть настройки. Именно она задает как NOC будет общаться с оборудованием. Насколько правильно они (устройства и NOC) друг друга понимают можно посмотреть в Discovery на страничке устройства.
Зеленые галочки сообщают что все ОК. Самые важные из них, опять же для меня, version_inventory, config_discovery и interface_discovery. В идеале, чтобы зеленые были все. В моём случае пришлось здорово помучиться. Дело в том что у нас в компании есть несколько свитчей Cisco SG500. Не смотря на именитый бренд, по сущности своей, это типичные Linksys. А наиболее подходящим для этих железок профилем оказался, кто бы вы думали? — Eltex! До того дня я даже не слышал про такого производителя. Как подобрать наиболее подходящий профиль, четких рекомендаций нет. Можно долгим перебором. Учтите, в выпадающем списке отображаются не все профили сразу. Остальные находятся на соседних страничках. Либо, если знаете какая именно команда вам нужна, можете искать по содержимому скриптов которые находятся в /opt/noc/sa/profiles/ Это в самой операционной системе, если что. Я свои нашел именно так. Если у вас аналогичная ситуация и вы нашли наиболее подходящий профиль не там где ожидали, вы можете создать нужный Sa Profile сами. Идем в файловую систему в упомянутый /opt/noc/sa/profiles/Бренд/, создаем каталог с желаемым именем, заполняем его скриптами из подходящего профиля. Затем внутри скриптов заменяем Производителя и модель на свои. Я соответственно менял Eltex.MES на Cisco.SG5XX. Также не забудьте изменить название в скрипте __init__.py По моему именно здесь задается как будет выглядеть название SA Profile в выпадающем списке. После этого перезагружаете noc — /etc/init.d/noc-launcher restart и идете смотреть новый профиль, подставлять его в оборудование и смотреть что получилось. Чтобы новый профиль применился, необходимо отметить устройство галочкой, нажать кнопку Group Actions и выбрать Run Discovery Now. Посмотреть результат можно опять же в Discovery.
Пробегусь по некоторым функциям этого программного комплекса
Итак, мы добавили оборудование и правильно подобрали профиль. Что имеем на выходе уже сейчас?
На странице устройства, кнопкой Config, мы можем посмотреть конфигурацию оборудования, а также когда и какие изменения были внесены.
Кнопка Interfaces покажет сетевые порты устройства.
Service Activation — Tasks — Mac Report — позволяет выполнить поиск по MAC адресу и определить к какому порту какого свитча устройство с этим MAC подключено.
Service Activation — Tasks — Run commands — поможет запустить несколько однотипных операций сразу на нескольких устройствах.
Service Activation — Tasks — Version Inventory — покажет версию прошивки одного или всех устройств.
Address Space Managment — Assigned Addresses — отобразит список ваших IP адресов, покажет сколько занято и сколько свободно.
На почту начнут приходить уведомления в случае изменения конфигурации устройства.
Что еще можем подкрутить?
Сделаем карту добавленных устройств и отобразим связи между ними. Важно!!! Связи будут отображаться только если у устройства отработал interface_discovery.
Идем в Inventory — Setup — Network Charts, щелкаем Add, заполняем форму. Не забудьте указать Selector. Затем в Inventory — Interfaces выбираем устройство, щелкаем по иконке «Link/Unlink» сетевого интерфейса, выбираем Object, указываем к какому порту подключен, жмем Connect. После этого можем пройти в Inventory — Network Map. в Chart выбираем имя карты, смотрим что получилось.
И еще. Сами создатели проекта уделяют особое внимание модулю Fault Managment. Собственно название — «Модуль управления инцидентами и авариями» обо всем говорит. На данном этапе он практически не настроен и только собирает snmp трапы в раздел Events. Классификация данных трапов, настройка оповещений и реакция на события, это отдельная огромная тема с которой я только начинаю разбираться.
Закончу на чем-нибудь позитивном или не очень
Вот небольшая часть функционала NOC которую мне удалось постичь и внедрить. Если вам хочется большего, курите kb.nocproject.org, спрашивайте в official IRC channel is #nocproject.org at irc.freenode.net и разбирайтесь самостоятельно изучая интерфейс и копая логи. Удачи.