About Forum Blogs NOC Docs Downloads KB Issues Code CI Registration

nocproject.org

#nocproject.org at irc.freenode.net log.
Back to nocproject.org Back to IRC log index
Date: 17.10.2011
zi_rus #
05:31
dvolodin, на выходных тут такая мысль возникла. во время эксплуатации я заметил что даже с введением нового лимита, нок не всегда в состоянии корректно отработать скрипт, например, на 5 железках надо было прописать влан, он это выполнил нормально, но я заб
05:31
ыл сказать чтобы он записал конфиг, поэтому запустил второй проход с командой write, и он, зараза, почему-то не смог этого сделать на одной железке (всего их было 5). есть такое предложение: интеллектуальное реагирование на происходящее в консоли, а именн
05:31
о, мы же всегда знаем как железка отреагирует на определенную команду в случае удачи или неудачи, соответсвенно мы можем задать скриптам различные модели поведения в таких ситуациях
dvolodin #
05:31
в случае неудачи exception поднимается
zi_rus #
05:32
это что такое?
dvolodin #
05:32
сама активация сервисов будет более высокого уровня
05:32
тм просто можно будет указывать куда идти в случае удачи или неудачи
05:33
CLISyntaxError поднимется в случае ошибки
zi_rus #
05:33
auth failed - не синтаксическая ошибка
05:34
по какой-то причине пароль не принят, можно попробовать ввести его еще раз
05:35
и кстати, в этом случае после нескольких попыток, если пароль так и не принялся, то надо завершать работу, а не висеть до таймаута
dvolodin #
05:35
auth failed честно возвращается в MRT
05:35
а где он висит?
zi_rus #
05:43
dvolodin, показалось, auth failed вместе с connection timeout создали иллюзию
05:46
dvolodin, а зачем get_version лезет в enable, если из обычного режима show version нормально работает?
dvolodin #
05:46
угу
05:47
enable - сильно вендор-зависимая фишка
05:47
тем более в нормальном режиме get_version работает по SNMP
zi_rus #
05:49
dvolodin, для длинков я указал snmp комьюнити. почему за версией оно все равно лезет в CLI?
dvolodin #
05:50
скрипт посмотри сам get_version
05:51
вохможно для dlink'ов он не умеет по SNMP
05:51
в CLI оно полезет при первом вызове self.cli(....)
zi_rus #
05:54
я бы сказал, что это не реализовано, в скрипте и намека нет на snmp
dvolodin #
05:55
тут одно из двух - либо совсем не умеют, либо - пока не сделали
05:55
:)
zi_rus #
05:57
все они умеют
05:57
SNMPv2-SMI::mib-2.47.1.1.1.1.9.1 = STRING: "1.51.B009"
05:57
SNMPv2-SMI::mib-2.47.1.1.1.1.10.1 = STRING: "1.00.B004"
dvolodin #
05:57
все ли они умеют?
05:58
с Dmitry1 посмотрите
05:58
если что - делайте патч и issue
zi_rus #
05:58
я с ним говорил, он снмп везде отключил, и говорит что оно вешает его длинки
dvolodin #
05:58
ну тогда придется тебе патчик сделать
Minimus #
05:58
странное снмп
dvolodin #
05:59
посмотри IOS или FTOS как образец
06:00
там свой MIB какой-то?
zi_rus #
06:00
dvolodin, гляну. а еще, почему для цисок get_version не показывает серийник?
dvolodin #
06:04
серийник чего именно?
zi_rus #
06:04
железки
06:05
Motherboard serial number :
dvolodin #
06:05
возьми ту же 7600 с двумя супами
06:06
какой серийник надо вернуть?
zi_rus #
06:11
dvolodin, смотря как обращаться к железке, если говорить о шасси, то его номер, если о платах, то их номера
06:11
PID: CISCO7609 , VID: , SN:
06:11
по show inv
dvolodin #
06:11
это не для get_interface задача
zi_rus #
06:12
ессно, это задача get_version )
dvolodin #
06:12
скорее - будет скрипт get_inventory
06:12
не для get_version
zi_rus #
06:12
сначала надо инвентори реализовать сам по себе
dvolodin #
06:14
а потом уже заниматься серийниками
06:15
давайте сначала отполируем то, что накодерили
06:15
и отрелизимся
06:17
по inventory - таймаут на осмысление расширения изначальной модели
06:17
я как раз запускаю проект кабельного inventory
06:18
появилось много дополнительных идей, которые надо осмыслить и учесть
zi_rus #
06:18
dvolodin, сериники это несамоцель пришлись тут к слову, а вот что меня волнует, это то что выполнение скриптов крайне ненадежно, новый лимитер понизил число фейлов но они все равно происходят и меня это крайне беспокоит
dvolodin #
06:19
какие железки, такие и скрипты
06:19
сверху будет механизм активации именно сервиса
06:19
он и будет смотреть на результат
06:19
для MRT задача - отработать максимально быстро
06:19
и особой трагедии нет, если зафейлится
zi_rus #
06:20
отнюдь, если я на 1000 железках запускаю прописать новое снмп комьюнити, я затрахаюсь искать где он зафейлился и исправлять это
Dmitry1 #
06:22
zi_rus: по поводу get_version у D-Link
zi_rus #
06:22
Dmitry1, внимательно
Dmitry1 #
06:22
Если ты внимательно посмотришь __init__py, то там увидишь функцию setup_session()
06:23
где впервые вызывается get_version, а потом кешируются ее значения
06:23
В этой функции, кроме того, проверяется состояние CLI Paging
06:24
А заодно проверяется возможность перехода по SIM
06:24
Что тоже не понятно, как по SNMP сделать
zi_rus #
06:26
Dmitry1, не понимаю, что непонятно
06:26
в скрипт засунуть строчки как у циско
Dmitry1 #
06:27
НО это все через CLI, а не через snmp
06:28
CLI использован потому, что потом результат кешируется, и используется во многих скриптах, таких как get_chassis_id, get_version и т.д.
zi_rus #
06:29
v = self.snmp.get("1.3.6.1.2.1.1.1.0", cached=True) # sysDescr.0
06:29
так же кеширует
06:29
на циске
Dmitry1 #
06:30
Эээ... get_version выбирает 5 полей. Для SNMP для этого нужно 5 запросов.
06:30
А для CLI - 1
zi_rus #
06:30
и что тут особенного?
neonman #
06:30
всем привет
Dmitry1 #
06:31
Скорость обработки.
06:31
Для выборки единичных значений лучше SNMP, для выборки группы значений - лучше CLI
zi_rus #
06:33
cli сыпет много мусора, возможно для 100 значений лучше будет cli но для 5 да даже 25 снмп нормально будет работать
Dmitry1 #
06:33
Кроме того, как показала практика, команда sho fdb при 2K MAC адресов с использованием SNMP поднимает загрузку процессора до 100%, а с использованием CLI этого не происходит.
06:35
Иди ты предлагаешь сделать скрипт таким образом:
06:35
1. использовать SNMP.
zi_rus #
06:35
практика показала, что 2000роутов по снмп - это только 30% загрузки процессора
Dmitry1 #
06:35
2. ой, отвалилось, свич "ушел в себя"
06:36
3. Тогда ждем вместе с парой тысяч абонентов несколько минут
06:36
4. используем CLI
e_zombie #
06:39
годная штука для интергации в нок. http://www.opennet.ru/opennews/art.shtml?num=32036
zi_rus #
06:40
у меня под контролем больше 3000 свичей длинк, алкатель, циско. почти все завязано на снмп и нет никаких проблем. может быть дело в том что мы не занимаемся херней, вытаскивая тысячи значений с одной железки по снмп, и циска бы офигела если бы я с нее full view
06:40
захотел бы сдернуть по снмп
Dmitry1 #
06:42
А и не надо дергать все значения. Поставь себе The Dude от MikroTik - она сама пытается автоматом все значения по SNMP вытянуть. И увидишь, как сеть колбасить начнет.
zi_rus #
06:43
это проблемы конкретной программы
neonman #
06:46
может оно bulk запросы не умеет?
06:46
вот и валит по стопицот запросов одновременно
06:56
2011-10-17 10:55:17,854 [TrapCollector(0x8e4cb8c)] Permission Denied
06:56
как лечить?
Dmitry1 #
06:56
эта конкретная программа показала, что при попытке получить список MAC адресов на свиче, когда их количество около 2000 - свич уходит в себя
06:56
запускать от рута (по ходу он пытается использовать порт ниже 1024)
neonman #
06:56
ессно
06:57
тока почему то раньше работало
06:57
а щаз фиг
06:57
запускаю то от рута
06:57
или в конфиге лаунчера прям указать рута?
Dmitry1 #
06:57
да. в конфиге лаунчера
neonman #
06:57
понял
06:57
точно, яж конфиг ща обновлял
dvolodin #
07:06
e_zombie: думали уже над клиентом telnet/ssh прямо в web
e_zombie #
07:10
а было бы удобно. сделать пиктограмму - ткнул и тд.
07:10
конфигури
07:11
согласен что получается дубляж функционала
07:11
ну раз решили - значит решили
zi_rus #
07:19
e_zombie, если будет интерактивная карта топологии, будет удобно вместе с ФМ. есть карта, возникает аларм, сбоку в сокращенном виде описание аларма, на карте отразилось, щелкнул по затронутому объекту и уже диагностируешь
dvolodin #
07:20
zi_rus: да, примерно так и планировали
e_zombie #
07:20
это да. я тут просто смотрю со стороны того что нет необходисоти держать чтото типа путти на машине
07:20
или другой говно ссш клиент
dvolodin #
07:20
там даже не надо вообще никакого ssh
07:21
нужно что-то типа постоянных коннектов в активаторе
07:21
должоживущий скрипт
07:21
который периодически получает команды от SAE и выполняет тупо в self.cli
07:22
правда так с чудо-пейджерами проблемы могут быть
zi_rus #
07:26
dvolodin, зачем долгоживущий, почему не активация по необходимости?
dvolodin #
07:26
активируется по необходимости
07:27
кстати по природе - откровенная задача для PUSH
zi_rus #
07:42
dvolodin, в питоне не особо силен, попробовал из циско профиля выдернуть снмп. получлилось http://pastebin.com/JqPxsHhT почему не заработало?
dvolodin #
07:43
platform не вернул
zi_rus #
07:44
dvolodin, он нужен обязательно?
dvolodin #
07:46
да
zi_rus #
08:01
все равно не получается, http://pastebin.com/UttLKpeS там где решетки стоят - это мое творчество
dvolodin #
08:03
что делаешь и почему не получается?
zi_rus #
08:05
dvolodin, удаляю get_version.pyc, перезапускаю нок, начинаются краши, новый get_version.pyc не появляется
dvolodin #
08:25
debug-script'ом для начала проверь
SqrT_ #
08:52
post-update share/mibs/AGENT-GENERAL-MIB.mib:23: syntax error, unexpected $undefined, expecting DEFINITIONS or PIB_DEFINITIONS
08:52
?
gnu-linux #
08:57
SqrT смени кодировку.. У нас UTF-8..
09:01
dvolodin: хорошие люди иногда в кофигах по-русски пишут.. соотведственно cli вываливается трейсом: http://pastie.org/2710361
09:02
На до бы smart_str(результат cli), а то я никак его не получу...
zi_rus #
09:06
зараза, не хочет работать
09:06
http://pastebin.com/bf6xaY1Y
09:06
через дебаг, довел его чтобы хоть как-то работал, но отрабатывает через телнет
dvolodin #
09:07
./noc debug-script -c- ....
zi_rus #
09:07
./noc debug-script get_version Aggr-ats77-test-1
09:08
закомментил в скрипте 4 строчки, с ними ругается на return r
09:08
File "/opt/noc/sa/profiles/DLink/DxS/get_version.py", line 57
09:08
return r
09:08
^
09:08
SyntaxError: invalid syntax
09:08
,tp yb[ rjt-rfr rhenbncz
09:08
без них кое-как крутится
09:10
этот наркоманский питон вечно на пробелы жалуется, когда то был знаком с тремя языками, ни один так не вел себя
dvolodin #
09:17
у него пробелы - синтаксический элемент
09:17
всего лишь вопрос настройки редактора
SqrT_ #
09:28
Сменил кажется...
09:28
При post-update должно выводится share/mibs/AGENT-GENERAL-MIB.mib:23: syntax error, unexpected $undefined, expecting DEFINITIONS or PIB_DEFINITIONS?
09:28
Или я что то сломал?
dvolodin #
09:30
ошибка там в MIB
Dmitry1 #
09:35
попробую нарыть новую версию этого MIB
zi_rus #
09:38
dvolodin, посмотри http://pastebin.com/bf6xaY1Y почему отрабатывает как cli, а не как snmp?
e_zombie #
10:58
опачки. экспорт обьектов менеджемента косячит
10:59
хотя.
10:59
стоп
10:59
гоню
11:00
а не. всётаки косячит
11:01
выгружает на одну строку меньше чем надо.
11:01
первую отмеченную галкой не выгружает. а оставшиеся 9 выгружает
zi_rus #
11:28
а если только 1 отметить?
e_zombie #
11:36
вообще не выводит в cvs данных
11:37
только заголовочную строчку
nixwizard1 #
12:14
коллеги, не в тему вопрос, в каком учебном центре в мск лучшие курсы по BGP?
dvolodin #
12:17
хмммм
12:17
у меня ;)
12:18
на каких железках?
nixwizard1 #
12:23
у тебя наверно жунеперы
12:24
нам на цисках надо)
dvolodin #
12:24
а без разницы
SqrT_ #
12:37
может ли NOC игнорировать link up/down с конкретных портов при нормальной реакции на другие?
dvolodin #
12:44
да
12:44
в managed object можно задать параметр ignored interfaces
`kk #
12:52
^[1-9]|1[0-9]|2[0-4]$ 1-24 порт
dvolodin #
12:53
у нас первый прогресс с новым UI
12:53
сделал класс ExtDocApplication
12:53
который работает с mongodb
12:53
при этом на стороне клиента вообще ничего не меняется
12:54
и тестовое приложение OIDAlias выглядит так же, как и django'вские модели
neonman #
12:55
и что это даст?
dvolodin #
12:56
возможность работы с данными вне зависимости от того, где они хранятся
12:56
в postgresql или в django
misak #
12:57
dvolodin: а где его задавать - параметр ignored interfaces, я не вижу :(
dvolodin #
12:58
в атрибутах
misak #
12:59
dvolodin: спасибо, прамо так, с пробелом писать имя ?
`kk #
12:59
misak, не
dvolodin #
12:59
через подчеркивание
`kk #
12:59
ignored_interfaces
misak #
13:00
спасибо !
13:01
а то задолбали lsi interfaces :)
13:02
а список этих атрибутов есть где-нибудь ? в доке врде не нашел
dvolodin #
13:02
это времянка пока
13:02
лягут интерфейсы в базу - уйдет напрочь
zi_rus #
13:04
когда же?
dvolodin #
13:07
структура коллекций лежит в репо
13:08
наброски для демона noc-discovery тоже есть
13:08
но для начала надо стабилизировать то, что у нас есть
e_zombie #
13:13
просвятите почему вы выгрузке юзверей стоит sha1$<длинный набор циферек> но потом я генерю в консоле sha1 для этого логина и получается значительно короче строка
dvolodin #
13:13
salt ?
SqrT_ #
13:14
ignored_interfaces игнорирует порт полностю? То есть, например, Loop Detected тоже?
dvolodin #
13:14
в disposition rule надо смотреть
13:14
вроде не должен был
13:14
up/down гасит, да
zi_rus #
13:31
черт возьми, по снмп версион инвентори работает куда быстрее
13:31
!
dvolodin #
13:33
zi_rus: тебе про это сразу говорили
13:34
и не трахает радиус до клинической смерти
zi_rus #
13:34
это я всем проэто давно говорю, только некоторые любят тысячи маков по снмп дергать и не думать о последствиях
Dmitry1 #
13:35
zi_rus: ну так кинь патчиком. я только спасибо скажу.
13:35
в issues закинь
zi_rus #
13:35
Dmitry1, рано еще, это альфа версия только, по снмп серийни найти не могу
dvolodin #
13:36
что касается тысячи маков - BULK GETNEXT иногда сильно помогает
zi_rus #
13:37
+ будь проклят длинк за своих китайских программеров, в 3200 серийник - iso.3.6.1.2.1.47.1.1.1.1.11.1 , а в 3627 его уже там нет
neonman #
13:38
будь прокляты все создатели китайских железок
13:38
до сих пор по оидам договорит ься не могут
13:38
в каждой железке свой оид
13:38
имхо это единственный минус снмп :(
e_zombie #
13:40
у нас вроде в городе есть центр от делинка.
dvolodin #
13:40
neonman: у SNMP минусов, гораздо больше, чем плюсов
13:40
:)
e_zombie #
13:40
надо их пнуть за это
neonman #
13:40
dvolodin, про кривые мибы и прочий бред я молчу ;)
dvolodin #
13:41
и не только это
13:41
:)
neonman #
13:41
остальное там еще более-менее
e_zombie #
13:41
вам уже надо делать прямые выходы на прогеров из производителей железа и заводить там кейсы по их бреду
neonman #
13:41
всё лучше чем кривые и угребищные кли которые ваще в каждой железке свои
dvolodin #
13:41
единственное достоинство SNMP, что по ASN.1 автоматически генерируется сишный сериализатор
neonman #
13:42
для сбора инфы и минимального управления снмп более чем достаточно
dvolodin #
13:42
и таким образом быдлокодеры экономят время на разработку процедур генерации трапов и ответов на GET
neonman #
13:42
еще бы делали это почеловечески :(
SqrT_ #
14:02
как можно скинуть нок в начальное состояние(которое было при начальной установке)? Поможет python setup.py install?
14:02
Или просто заести новые(пустые) базы и насторить на них НОК?
14:04
ссори за тупые вопросы...
dvolodin #
14:10
убить базы, сделать чистые и ./scripts/post-update
Tweet
Share this page
Share this page: Tweet