Перейти к содержимому
Калькуляторы

новый opensource софт для NOC провайдера

Добрый день!

 

Частенько попадались в форумах вопросы типа "кто чем бэкапит конфиги оборудования?".

 

Позвольте в этой связи представить новый open source проект NOCProject (http://www.nocproject.org/). Бэкап конфигов для него лишь одна из задач...

 

NOC Project is an Operation Support System (OSS) for the Telco, Service provider and Enterprize Network Operation Centers (NOC). Areas covered by NOC:

Fault Management

Service Activation/Provisioning

Multi-VRF Address space management

Configuration Management

DNS provisioning

Peering management, RPSL and BGP filters generator, integrated looking glass

Reporting

NOC Project is Open Source Software distributed under the term of BSD-like LICENSE.

 

Автором я не являюсь, но являюсь пользователем. Если будет интерес - автор тоже подключится к обсуждению :)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Архивирование конфигов - действительно всего лишь одна из задач. Помимо просто архивирования система обнаруживает изменения в конфигах и рассылает оповещения. Конфиги хранятся в системе контроля версий и всегда есть возможность откатиться к нужному моменту времени. Круг поддерживаемого оборудования достаточно широк: от любимых народом zyxel'ей и микротиков до топовых версий MPLS коммутаторов Juniper и Cisco. Добавить поддержку нового типа оборудования достаточно просто.

 

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

 

Система умеет ходить на оборудование, выполнять команды и анализировать результат. Направление service activation сейчас развивается очень активно. Также в активной разработке находится модуль fault management, идет постоянное расширение встроенного набора правил.

 

Систему трудно назвать новой, отдельные ее модули работают уже около двух лет в крупном российском операторе связи и с ней ежедневно работают десятки людей. Есть еще несколько инсталляций в России и Европе.

 

Feedback от российских коллег всегда интересен и приветсвуется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, интересно, а легко ли добавлять поддержку оборудования?

Например помимо роутеров присуствуют кучи дсламов самых разношёрстных и собственно возможно ли добавить и их малой кровью?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, интересно, а легко ли добавлять поддержку оборудования?

Например помимо роутеров присуствуют кучи дсламов самых разношёрстных и собственно возможно ли добавить и их малой кровью?

Все зависит от оборудования, от того, как оно управляется и что требуется с ним делать.

 

Если оборудование рулится по CLI и отдает конфиги в текстовом виде, то обычно все достаточно тривиально: делается профиль оборудования и скрипт get_config.

 

Например, есть Huawei VRP (свичи, коммутаторы, SBC). Профиль выглядит так: /sa/profiles/Huawei/VRP/__init__.py

 

import noc.sa.profiles
from noc.sa.protocols.sae_pb2 import TELNET,SSH

class Profile(noc.sa.profiles.Profile):
    name="Huawei.VRP"
    supported_schemes=[TELNET,SSH]
    pattern_more="^  ---- More ----"
    pattern_prompt=r"^[<#]\S+?[>#]"
    command_more=" "
    config_volatile=["^%.*?$"]

 

После этого появляется возможность заводить объекты типа Huawei.VRP в систему и писать для них скрипты.

Чтобы выгребать конфиги нужен скрипт get_config

 

get_config выглядит так:

/sa/profiles/Huawei/VRP/get_config.py

import noc.sa.script
from noc.sa.interfaces import IGetConfig

class Script(noc.sa.script.Script):
    name="Huawei.VRP.get_config"
    implements=[IGetConfig]
    def execute(self):
        config=self.cli("display current-configuration")
        return self.cleaned_config(config)

 

После этого для всех объектов Huawei.VRP, для которых проставлены галочки "Is Configuration Managed" конфиги будут выгребаться автоматически.

Также полезно сделать скрипт get_version, он пригодится потом для inventory и скрипты для получения дополнительной информации. Например, get_vlans

позволит автоматически выдрать VLAN'ы со свича в базу.

 

Все профили и скрипты лежат в каталоге sa/profiles/, их можно использовать как основу.

Для железок, которые рулятся по HTTP можно использовать в качестве примера ZTE.ZXDSL531 и Audiocodes.Mediant2000

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я не видел скриншотов, поэтому спрошу здесь - а интеграция, например в какти, как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я не видел скриншотов, поэтому спрошу здесь - а интеграция, например в какти, как?

Какого рода интеграция? Системы решают немного разные классы задач.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У продукта оченеь удобно реализована работы с адресным пространством. После запуска системы в работу существенно меньше времени стало уходить на ведение документации по распеделению адресного пространства и его контроля.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Из документации неясно, что должно выйти в результате. Ни демо, ни скриншотов. После установки кажется, что это не продукт, а только каркас для сервиса. В доке вроде бы как что-то есть, но с другой стороны нет толком ничего (ConfigurationManagement). Странно, короче говоря.
"Каркас" - относится скорее не к продукту, а к документации. Она, как всегда, отстает и по многим модулям просто не готова. Это общая беда, не только для этого проекта. Тем не менее, она дописывается и будет приведена в соответсвие текущему функционалу. Частично это связано с тем, что основная работа с продуктом ведется через web-интерфейс и интуитивно понятна.

 

Процесс установки и первоначальной настройки расписан достаточно подробно и затруднений не вызывает.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выложили скриншоты web-интерфейса Скриншоты, относящиеся к Configuration Management

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выложили скриншоты web-интерфейса Скриншоты, относящиеся к Configuration Management

Уже лучше, сразу видно, что к чему: есть CVS-like репозитарий конфигов и учет событий. Наверно, не только они.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выложили скриншоты web-интерфейса Скриншоты, относящиеся к Configuration Management
Уже лучше, сразу видно, что к чему: есть CVS-like репозитарий конфигов и учет событий. Наверно, не только они.

Применительно к конфигам, да. Сейчас поддерживается Mercurial и есть эксперементальная поддержка CVS. Добавить поддержку любимой VCS относительно несложно.

В репозитории помимо конфигов хранятся и сгенерированные зоны DNS, RPSL и префикс-листы. Интерфейс для работы с репозиторием у них общий.

 

Есть разделение прав доступа, можно давать отдельным сотрудникам права на просмотр конфигов только определенного типа оборудования или ограничить его ажминистративной зоной ответсвенности.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поставили поиграться... Какой-то он у вас сырой совсем :(

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, со страничками дело решилось - это они так на встроенном веб-сервере работают. Но вот такие ошибки совсем не радуют:

 

Exception Type: ProtocolError 
Exception Value: <ProtocolError for 127.0.0.1:19702/RPC2: -1 >

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, со страничками дело решилось - это они так на встроенном веб-сервере работают. Но вот такие ошибки совсем не радуют:

 

Exception Type: ProtocolError 
Exception Value: <ProtocolError for 127.0.0.1:19702/RPC2: -1 >

Скорее всего, не запущен noc-sae. Для того, чтобы посмотреть возможности service activation нужно запустить демонов noc-sae и noc-activator.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда он не запущен, возвращается ошибка 111. However,

 

root      2759     1  0 Feb19 ?        00:00:00 python /opt/noc/scripts/noc-activator.py start
root      3610     1  0 Feb19 ?        00:00:02 python /opt/noc/scripts/noc-classifier.py start
root      3617     1  0 Feb19 ?        00:00:03 python /opt/noc/scripts/noc-sae.py start
root     11267     1  0 Feb19 ?        00:00:03 python /opt/noc/scripts/noc-classifier.py start
root     14026     1  0 Feb19 ?        00:00:05 python /opt/noc/scripts/noc-fcgi.py start

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поставили поиграться... Какой-то он у вас сырой совсем :(

 

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

Встроенный web-сервер не обрабатывает параллельные запросы.

 

По найденым ошибкам лучше всего оформлять bugreport: http://trac.nocproject.org/trac/query

 

Большая часть ошибок связана с недонастройкой системы.

 

Когда он не запущен, возвращается ошибка 111. However,

 

root      2759     1  0 Feb19 ?        00:00:00 python /opt/noc/scripts/noc-activator.py start
root      3610     1  0 Feb19 ?        00:00:02 python /opt/noc/scripts/noc-classifier.py start
root      3617     1  0 Feb19 ?        00:00:03 python /opt/noc/scripts/noc-sae.py start
root     11267     1  0 Feb19 ?        00:00:03 python /opt/noc/scripts/noc-classifier.py start
root     14026     1  0 Feb19 ?        00:00:05 python /opt/noc/scripts/noc-fcgi.py start

Имеет смысл запустить SAE в отладочном режиме и посмотреть лог

# su - noc
$ cd /var/www/noc
$ ./scripts/noc-sae -f start

 

Когда он не запущен, возвращается ошибка 111. However,

 

root      2759     1  0 Feb19 ?        00:00:00 python /opt/noc/scripts/noc-activator.py start
root      3610     1  0 Feb19 ?        00:00:02 python /opt/noc/scripts/noc-classifier.py start
root      3617     1  0 Feb19 ?        00:00:03 python /opt/noc/scripts/noc-sae.py start
root     11267     1  0 Feb19 ?        00:00:03 python /opt/noc/scripts/noc-classifier.py start
root     14026     1  0 Feb19 ?        00:00:05 python /opt/noc/scripts/noc-fcgi.py start

От root'а запускать демонов не обязательно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ОК, спасибо за совет.

 

Но проблема не в этом, ошибка там типа

 

2009-02-20 12:08:52,429 ERROR UNHANDLED EXCEPTION (2009-02-20 12:08:52.422072)
Working directory: /opt/noc
<type 'exceptions.TypeError'>
23 has type <type 'int'>, but expected one of: (<type 'str'>, <type 'unicode'>)

 

Могу прислать полный трейс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ОК, спасибо за совет.

 

Но проблема не в этом, ошибка там типа

 

2009-02-20 12:08:52,429 ERROR UNHANDLED EXCEPTION (2009-02-20 12:08:52.422072)
Working directory: /opt/noc
<type 'exceptions.TypeError'>
23 has type <type 'int'>, but expected one of: (<type 'str'>, <type 'unicode'>)

 

Могу прислать полный трейс.

Да, если можно, сделайте тикет и приложите в него трейс из лога. Исправим ошибку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Установил. постгресс ему 8.1 и выше понадобился....

Запустить пока не удалось )))

встроенный http сервер запустил. в окне Add только рефреш интервал можно вводить.

 

Покажите плиз стартап скрипт. А то ни в доках нету ничего.

а в питоне я не силен, чтобы разобраться какие скрипты запускать надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Установил. постгресс ему 8.1 и выше понадобился....

Запустить пока не удалось )))

встроенный http сервер запустил. в окне Add только рефреш интервал можно вводить.

 

Покажите плиз стартап скрипт. А то ни в доках нету ничего.

а в питоне я не силен, чтобы разобраться какие скрипты запускать надо.

Объекты вводятся в модуле sa в форме Managed Objects. Для того, чтобы собирать конфиги нужно поставить галочку "Is Configuration Managed?" и прописать имя файла для конфига в поле "Repo Path".

 

SMF Manifest для Solaris 10 лежат в каталоге share/sunos/manifest. Стартовые скрипты для linux'ов - share/linux.

Все инсталлялии работают на postgresql 8.3. Теоретически, на любой 8-ке должны работать и даже на 7-ках, но это не проверяли.

 

Сами скрипты для запуска демонов лежат в каталоге scripts. Запускаются они одним и тем же образом:

 

Запуск

$ ./scripts/noc-sae.py start

 

Остановка

$./scripts/noc-sae.py stop

 

Для запуска в отладочном режиме (не уходить в демона, писать debug log на консоль)

$./scripts/noc-sae.py -f start

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выложили скриншоты web-интерфейса Скриншоты, относящиеся к Configuration Management

Ой, django + component architecture из trac.core :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выложили скриншоты web-интерфейса Скриншоты, относящиеся к Configuration Management

Ой, django + component architecture из trac.core :-)

WEB на Django, да. Часть демонов использует Django'вский ORM. От trac не используется ничего. Собственн, в overview это сразу и написано. Тем оно и лучше, проще интегрировать в решение другие компоненты на Django, да и Django сейчас достаточно распространен.

 

Скриншотов выложили побольше, CM - относительно небольшая часть, хотя и видимая end-user'у и активно используемая.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В списке рассылне nocproject-users опубликовали инструкцию по установке NOC на Debian. Полезно тем, кто столкнулся с проблемами на Linux'ах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще, круто. Но хотелось бы, чтобы подобный софт запускался из сбора репозитория с минимальными подточками напильником.

 

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

 

Потом надоело, лучше это время девушке уделить)) В рабочее время попробую еще раз, потому что очень рад подобному проекту наших разработчиков :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.