Jump to content
Калькуляторы

новый 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.

 

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

 

 

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
Хм, интересно, а легко ли добавлять поддержку оборудования?

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

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

 

Если оборудование рулится по 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

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

Share this post


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

 

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

 

 

Share this post


Link to post
Share on other sites

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

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

Share this post


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

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

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

 

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

 

 

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites
Ну, со страничками дело решилось - это они так на встроенном веб-сервере работают. Но вот такие ошибки совсем не радуют:

 

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

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

Share this post


Link to post
Share on other sites

Когда он не запущен, возвращается ошибка 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

Share this post


Link to post
Share on other sites
Поставили поиграться... Какой-то он у вас сырой совсем :(

 

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

Встроенный 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'а запускать демонов не обязательно

Share this post


Link to post
Share on other sites

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

 

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

 

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'>)

 

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

Share this post


Link to post
Share on other sites
ОК, спасибо за совет.

 

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

 

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'>)

 

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

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

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

Share this post


Link to post
Share on other sites
Установил. постгресс ему 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

 

 

Share this post


Link to post
Share on other sites
Выложили скриншоты web-интерфейса Скриншоты, относящиеся к Configuration Management

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

Share this post


Link to post
Share on other sites
Выложили скриншоты web-интерфейса Скриншоты, относящиеся к Configuration Management

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

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this