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

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

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

 

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

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

вообще ставится и, зачастую, работают только в присутсвии авторов.

 

Над упрощением инсталляции работать будем, сейчас не хватает ресурсов. Если кто хочет помочь в этом направлении, будем рады :)

 

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

 

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

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


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

Вышла версия 0.1.5. Основное нововведение данной версии - экспериментальный коррелятор событий и поддержка статусов событий (неклассифицировано/активно/закрыто).

 

Доводим fault management до ума, в принципе, им уже можно пользоваться.

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


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

когда .deb тестовый появится?

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


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

когда .deb тестовый появится?
На тему packaging'а под основные системы начали думать. Сейчас приоритеты смещены в другую сторону и будет хорошо,

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

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


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

Интересная какая штука. Я сейчас попробую все собрать под фряхой, если получится выложу мануал :-)

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


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

Интересная какая штука. Я сейчас попробую все собрать под фряхой, если получится выложу мануал :-)

Под фрей была инсталляция, особых проблем быть не должно

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


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

Тем временем вышла версия 0.1.6.

Среди новвоведений:

  1. Новая более удобная система навигации (Скриншот)
  2. Используется стандартный distutils python'а
  3. Появился новый экспериментальный демон SLA Monitor, обеспечивающий мониторинг ключевых параметров производительности

 

Новое меню навигации более логично и интуитивно понятно.

 

С началом использования distutils проект начинает переходить на стандартную python'овскую схему распространения и установки пакетов.

Появился экспериментальный RPM build (download), который надо потестировать и

поправить зависимости. Пакет для Solaris появится чуть позже.

 

Для SLA Monitor есть HTTP проба, которая замеряет время установления соединения с сервером и время обработки запросов. Проверяли на ферме из 50 http-серверов, систему грузит минимально.

 

 

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


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

Угу. А механизм обновления какой?

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


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

Угу. А механизм обновления какой?

Update из репозитория mercurial.

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


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

Получаю ошибку:

 

[noc@statbackup ~]$ python manage.py syncdb

Traceback (most recent call last):

File "manage.py", line 11, in <module>

execute_manager(settings)

File "/usr/local/lib/python2.5/site-packages/django/core/management/__init__.py", line 340, in execute_manager

utility.execute()

File "/usr/local/lib/python2.5/site-packages/django/core/management/__init__.py", line 295, in execute

self.fetch_command(subcommand).run_from_argv(self.argv)

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 192, in run_from_argv

self.execute(*args, **options.__dict__)

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 218, in execute

self.validate()

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 246, in validate

num_errors = get_validation_errors(s, app)

File "/usr/local/lib/python2.5/site-packages/django/core/management/validation.py", line 28, in get_validation_errors

for (app_name, error) in get_app_errors().items():

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 128, in get_app_errors

self._populate()

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 57, in _populate

self.load_app(app_name, True)

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 72, in load_app

mod = __import__(app_name, {}, {}, ['models'])

File "/usr/local/noc/../noc/main/models.py", line 28, in <module>

report_registry.register_all()

File "/usr/local/noc/../noc/lib/registry.py", line 51, in register_all

__import__(mb+f[:-3],{},{},self.classname)

ValueError: Empty module name

 

Откатываюсь обратно на версию 0.1.5 - и все нормально:

 

python manage.py migrate

Running migrations for main:

- Nothing to migrate.

Running migrations for sa:

- Nothing to migrate.

Running migrations for fm:

- Nothing to migrate.

Running migrations for cm:

- Nothing to migrate.

Running migrations for ip:

- Nothing to migrate.

Running migrations for vc:

- Nothing to migrate.

Running migrations for dns:

- Nothing to migrate.

Running migrations for peer:

- Nothing to migrate.

 

python manage.py runserver 0.0.0.0:8080

Validating models...

0 errors found

 

Django version 1.0.2 final, using settings 'noc.settings'

Development server is running at http://0.0.0.0:8080/

Quit the server with CONTROL-C.

 

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


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

NOC должен быть распакован в каталог noc, а не noc-0.1.6.

Начиная с версии 0.1.6 порядок установки немного поменялся и стал ближе к стандартному,

сейчас вносятся изменения в документацию.

 

Получаю ошибку:

 

[noc@statbackup ~]$ python manage.py syncdb

Traceback (most recent call last):

File "manage.py", line 11, in <module>

execute_manager(settings)

File "/usr/local/lib/python2.5/site-packages/django/core/management/__init__.py", line 340, in execute_manager

utility.execute()

File "/usr/local/lib/python2.5/site-packages/django/core/management/__init__.py", line 295, in execute

self.fetch_command(subcommand).run_from_argv(self.argv)

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 192, in run_from_argv

self.execute(*args, **options.__dict__)

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 218, in execute

self.validate()

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 246, in validate

num_errors = get_validation_errors(s, app)

File "/usr/local/lib/python2.5/site-packages/django/core/management/validation.py", line 28, in get_validation_errors

for (app_name, error) in get_app_errors().items():

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 128, in get_app_errors

self._populate()

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 57, in _populate

self.load_app(app_name, True)

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 72, in load_app

mod = __import__(app_name, {}, {}, ['models'])

File "/usr/local/noc/../noc/main/models.py", line 28, in <module>

report_registry.register_all()

File "/usr/local/noc/../noc/lib/registry.py", line 51, in register_all

__import__(mb+f[:-3],{},{},self.classname)

ValueError: Empty module name

 

Откатываюсь обратно на версию 0.1.5 - и все нормально:

 

python manage.py migrate

Running migrations for main:

- Nothing to migrate.

Running migrations for sa:

- Nothing to migrate.

Running migrations for fm:

- Nothing to migrate.

Running migrations for cm:

- Nothing to migrate.

Running migrations for ip:

- Nothing to migrate.

Running migrations for vc:

- Nothing to migrate.

Running migrations for dns:

- Nothing to migrate.

Running migrations for peer:

- Nothing to migrate.

 

python manage.py runserver 0.0.0.0:8080

Validating models...

0 errors found

 

Django version 1.0.2 final, using settings 'noc.settings'

Development server is running at http://0.0.0.0:8080/

Quit the server with CONTROL-C.

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


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

Он и установлен в /usr/local/noc, а не noc-0.1.6. Почитал Changelog, там есть упоминание о каталоге установки /opt/noc - перенес всю эту красоту туда:

 

[noc@statbackup /opt/noc]$ python manage.py migrate

Traceback (most recent call last):

File "manage.py", line 11, in <module>

execute_manager(settings)

File "/usr/local/lib/python2.5/site-packages/django/core/management/__init__.py", line 340, in execute_manager

utility.execute()

File "/usr/local/lib/python2.5/site-packages/django/core/management/__init__.py", line 295, in execute

self.fetch_command(subcommand).run_from_argv(self.argv)

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 192, in run_from_argv

self.execute(*args, **options.__dict__)

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 218, in execute

self.validate()

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 246, in validate

num_errors = get_validation_errors(s, app)

File "/usr/local/lib/python2.5/site-packages/django/core/management/validation.py", line 28, in get_validation_errors

for (app_name, error) in get_app_errors().items():

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 128, in get_app_errors

self._populate()

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 57, in _populate

self.load_app(app_name, True)

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 72, in load_app

mod = __import__(app_name, {}, {}, ['models'])

File "/opt/noc/../noc/main/models.py", line 28, in <module>

report_registry.register_all()

File "/opt/noc/../noc/lib/registry.py", line 51, in register_all

__import__(mb+f[:-3],{},{},self.classname)

ValueError: Empty module name

 

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


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

Завел тикет #139 по этой проблеме. Будем разбираться.

Он и установлен в /usr/local/noc, а не noc-0.1.6. Почитал Changelog, там есть упоминание о каталоге установки /opt/noc - перенес всю эту красоту туда:

 

[noc@statbackup /opt/noc]$ python manage.py migrate

Traceback (most recent call last):

File "manage.py", line 11, in <module>

execute_manager(settings)

File "/usr/local/lib/python2.5/site-packages/django/core/management/__init__.py", line 340, in execute_manager

utility.execute()

File "/usr/local/lib/python2.5/site-packages/django/core/management/__init__.py", line 295, in execute

self.fetch_command(subcommand).run_from_argv(self.argv)

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 192, in run_from_argv

self.execute(*args, **options.__dict__)

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 218, in execute

self.validate()

File "/usr/local/lib/python2.5/site-packages/django/core/management/base.py", line 246, in validate

num_errors = get_validation_errors(s, app)

File "/usr/local/lib/python2.5/site-packages/django/core/management/validation.py", line 28, in get_validation_errors

for (app_name, error) in get_app_errors().items():

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 128, in get_app_errors

self._populate()

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 57, in _populate

self.load_app(app_name, True)

File "/usr/local/lib/python2.5/site-packages/django/db/models/loading.py", line 72, in load_app

mod = __import__(app_name, {}, {}, ['models'])

File "/opt/noc/../noc/main/models.py", line 28, in <module>

report_registry.register_all()

File "/opt/noc/../noc/lib/registry.py", line 51, in register_all

__import__(mb+f[:-3],{},{},self.classname)

ValueError: Empty module name

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


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

Если могу чем-то помочь, то обращайтесь, но в питоне я полный 0

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


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

Если могу чем-то помочь, то обращайтесь, но в питоне я полный 0

А

python manage.py syncdb

сделан перед migrate?

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


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

Да, конечно, все как написано в wiki

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


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

Да, конечно, все как написано в wiki
Забавно. Пробовал воспроизвести ситуацию на нескольких платформах, чисто проходило все.

 

Можно поподробнее:

1. Какая ОС, версия?

2. Какая версия python?

3. Из какого архива ставится NOC?

4. Если можно, по шагам: скачал это, сделал это, сделал это, приехал.

 

В качестве reference можно использовать Solaris Installation HOWTO.

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

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


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

Добрый день!

 

с версией noc-0.1.6 та же проблема. что и у Irish, ставлю на debian testing согласно мануалке

откат на 0.1.5 помог установить, но после толком ничего так и не смог сходу завести, т.е. например исправляю в sa default activator (он стоит на той же машине, что и noc), после запуска активатора под пользователем noc ругается на невозможность открытия порта для принятия snmp traps, но это нормально, перезапускаю активатор под рутом, авторизация на sae проходит, запускаем встроенный веб-сервер заводим пользователя, заводим в sa managed object (для теста под руками есть cisco 7206) со всеми реквизитами, в cm->configs появляется запись, типа должно бы опрашиваться и сливаться конфиг (временные интервалы крутить пытался), но ничего не происходит, в логах никакой ругани, если активатор завести с ключом -f, то что-то вроде попыток опроса железки есть, но если честно моск с трудом воспринимает вывод и непонятно, что ему не нравится

да, если например в cm->configs в строке записи о конфиге нажать ссылку view, то jungo выдает ошибку

может я просто что-то не так делаю, не подскажете?

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


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

Добрый день!

 

с версией noc-0.1.6 та же проблема. что и у Irish, ставлю на debian testing согласно мануалке

откат на 0.1.5 помог установить,

Документация по установке от версии 0.1.5 разъехалась с 0.1.6. Сейчас внесли все необходимые изменения. Новая версия по ссылке. Рекомендую ставить напрямую из репозитория, так легче обновляться. Packaging сейчас все еще экспериментальный и python'овские distutils могут подкинуть еще сюрпризов.

 

но после толком ничего так и не смог сходу завести, т.е. например исправляю в sa default activator (он стоит на той же машине, что и noc), после запуска активатора под пользователем noc ругается на невозможность открытия порта для принятия snmp traps, но это нормально, перезапускаю активатор под рутом, авторизация на sae проходит,
Можно покрутить capabilities и разрешить процессу слушать на привелегированных портах без root'а.

 

запускаем встроенный веб-сервер заводим пользователя, заводим в sa managed object (для теста под руками есть cisco 7206) со всеми реквизитами, в cm->configs появляется запись, типа должно бы опрашиваться и сливаться конфиг (временные интервалы крутить пытался), но ничего не происходит, в логах никакой ругани, если активатор завести с ключом -f, то что-то вроде попыток опроса железки есть, но если честно моск с трудом воспринимает вывод и непонятно, что ему не нравится

да, если например в cm->configs в строке записи о конфиге нажать ссылку view, то jungo выдает ошибку

может я просто что-то не так делаю, не подскажете?

Enable Password для железки задан в Managed Objects? На cisco юзеру нужен privelege 15 для просмотра конфига.

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


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

Документация по установке от версии 0.1.5 разъехалась с 0.1.6. Сейчас внесли все необходимые изменения. Новая версия по ссылке. Рекомендую ставить напрямую из репозитория, так легче обновляться. Packaging сейчас все еще экспериментальный и python'овские distutils могут подкинуть еще сюрпризов.

с deb-пакаджей поставлены только питон и все к нему

 

Можно покрутить capabilities и разрешить процессу слушать на привелегированных портах без root'а.

ок, попробую спасибо

 

Enable Password для железки задан в Managed Objects? На cisco юзеру нужен privelege 15 для просмотра конфига.

да, все это сделано, к то му же кошка не боевая, поэтому проблем с развлечениями нет, но вот не взлетело, буду дальше воевать

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


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

# python manage.py install

Unknown command: 'install'

Type 'manage.py help' for usage.

 

а старым методом инсталляция версии 0.1.6 кстати прошла нормально (исходники взяты из репозитория)

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


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

# python manage.py install

Unknown command: 'install'

Type 'manage.py help' for usage.

 

а старым методом инсталляция версии 0.1.6 кстати прошла нормально (исходники взяты из репозитория)

python setup.py install

 

Поправил ошибку в доке.

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


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

Request Method: POST

Request URL: http://127.0.0.1:8000/sa/2/scripts/Cisco.IOS.ping/

Exception Type: ProtocolError

Exception Value:

 

<ProtocolError for 127.0.0.1:19702/RPC2: -1 >

 

Exception Location: /usr/lib/python2.5/xmlrpclib.py in request, line 1191

Python Executable: /usr/bin/python

Python Version: 2.5.4

 

и дальше долгий тоскливый traceback - это я опять создал для теста объект типа cisco.ios и пытался сделать ему ping с веб-интерфейса

падает на RPC запросах, что может быть недокручено? я понимаю, что фигню спрашиваю, но чет логики понять не могу, вроде все сделано как в мануалах, а толком не взлетает

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


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

Enable Password для железки задан в Managed Objects? На cisco юзеру нужен privelege 15 для просмотра конфига.

да, все это сделано, к то му же кошка не боевая, поэтому проблем с развлечениями нет, но вот не взлетело, буду дальше воевать

Можно проверить на чем оно заткнулось вот так

# su - noc
$ cd /opt/noc
$ python manage.py debug-script Cisco.IOS.get_version <telnet|ssh>://<user>:<password>/<enable password>@<ip>/

 

Проверить, как оно выгружает конфиг можно вот так

$ python manage.py debug-script Cisco.IOS.get_config <telnet|ssh>://<user>:<password>/<enable password>@<ip>/

 

Request Method: POST

Request URL: http://127.0.0.1:8000/sa/2/scripts/Cisco.IOS.ping/

Exception Type: ProtocolError

Exception Value:

 

<ProtocolError for 127.0.0.1:19702/RPC2: -1 >

 

Exception Location: /usr/lib/python2.5/xmlrpclib.py in request, line 1191

Python Executable: /usr/bin/python

Python Version: 2.5.4

 

и дальше долгий тоскливый traceback - это я опять создал для теста объект типа cisco.ios и пытался сделать ему ping с веб-интерфейса

падает на RPC запросах, что может быть недокручено? я понимаю, что фигню спрашиваю, но чет логики понять не могу, вроде все сделано как в мануалах, а толком не взлетает

Cisco.IOS.ping пофиксен как раз в 0.1.6

 

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


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

Можно проверить на чем оно заткнулось вот так

# su - noc
$ cd /opt/noc
$ python manage.py debug-script Cisco.IOS.get_version <telnet|ssh>://<user>:<password>/<enable password>@<ip>/

 

Проверить, как оно выгружает конфиг можно вот так

$ python manage.py debug-script Cisco.IOS.get_config <telnet|ssh>://<user>:<password>/<enable password>@<ip>/

с консоли все прекрасно отрабатывает

 

Cisco.IOS.ping пофиксен как раз в 0.1.6

она и стоит, уже снуля переделал базу, заново завел тестовый объект, нажал на ссылку scripts и попытался сделать get_config, получил:

 

ProtocolError at /sa/2/scripts/Cisco.IOS.get_config/

 

<ProtocolError for 127.0.0.1:19702/RPC2: -1 >

 

Request Method: GET

Request URL: http://127.0.0.1:8000/sa/2/scripts/Cisco.IOS.get_config/

Exception Type: ProtocolError

Exception Value:

 

<ProtocolError for 127.0.0.1:19702/RPC2: -1 >

 

Exception Location: /usr/lib/python2.5/xmlrpclib.py in request, line 1191

Python Executable: /usr/bin/python

Python Version: 2.5.4

 

ниче не понимаю, вижу что обламывается на 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 смайлов.

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

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

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