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: 26.07.2012
zi_rus #
05:52
я смотрю коммитов за последние пару дней столько много нахреначили. кто-нибудь знает что там происходит?
mikevlz|2 #
05:59
генератор случайных коммитов выключить забыли...
dvolodin #
06:17
Skripnik: а что в нем корявого-то?
06:18
zi_rus: В основном -- interface profiles и классификация интерфейсов
06:18
теперь можно навешивать профили на интерфейсы автоматом через pyRule или правилами классификации. Для последнего еще нужна морда, чтобы забивать их через web-ui
zi_rus #
06:19
опять пирули
06:19
а когда он будет автоматом порты линками связывать?
06:23
на сколько я понимаю, сейчас для этого нужно чтобы нок в общем процессе дискавери выпонял еще 3 действия - дергал таблицу маков, таблицу cdp соседей и таблицу lldp соседей, остальное лишь требует внедрения логики на стороне сервера, некоторый алгоритм
dvolodin #
06:23
уже хочется? :)
zi_rus #
06:23
очень!!!
dvolodin #
06:23
алгоритм уже есть
06:23
нужен регулярный процесс его применения
zi_rus #
06:23
шедуль?
06:24
или лучше вместе с дискавери?
06:24
а еще лучше только когда информация изменилась
dvolodin #
06:24
вместе
06:24
но там нужно еще и модерирование найденого
zi_rus #
06:25
например?
06:25
не понял
dvolodin #
06:25
сейчас есть алгоритмы восстановления топологии по MAC'ами, CDP/LLDP/FDP, *STP
06:25
zi_rus: топология в базе все-таки должна менять после подтверждения
zi_rus #
06:26
ввиду того что сейчас ее вообще нет, то можно начать с экспериментального внедрения без модерации
dvolodin #
06:28
тут есть блокирующий фактор один
06:28
сейчас в NOC дофига разных scheduler'ов
06:29
для periodic task'ов, конфигов, зон DNS, несколько штук для разных discovery
06:30
очено хочется не добавлять еще несколько, а унифицировать весь этот зоопарк
06:30
еще в SAE для MRT свои schedule
zi_rus #
06:31
про топологию его можно привязать к текущему дискавери и по крайней мере ты не усугубишь ситуацию
dvolodin #
06:54
да вот бардака побольше будет
Nickolas_m #
06:57
cahul-oancea acus o sa cada .. asta SRS .. nu bagati in registru .. doar sa fie max 1.2min (daca ceva Cazacov na svyazi 512, 591)
06:57
ups sorry
Skripnik #
07:19
<dvolodin>, корявый он тем, что писал его человек видящий питон второй раз в жизни. субинтерфейсов нет, основной упор делался на 3510ma, до остальных руки не дошли. и писался он исключительно для теста, что бы хоть какие-то данные внести в нок. а то прыгать с
07:19
рактейблс и обратно уже утомило.
dvolodin #
07:19
:)
07:20
что там в racktables такого осталось?
Skripnik #
07:23
только связи меджу оборудованием. все остальное, IPAM и Vlan уже переехали в нок
dvolodin #
07:24
можешь сравнить то, что переехало?
Skripnik #
07:25
в смысле сравнить?
07:26
по использовании там и в ноке?
dvolodin #
07:26
да
07:26
просто интересно сравнить пересекающийся функционал
Skripnik #
07:32
на данный момент в рактейблсе самое ценное, для меня, это Rackspace. визуально видно какое оборудование где установленно, в какой стойке и на каком месте. Плюс визуально видно что и в какой порт оборудования включено. Все остальное, ipv4 и vlan, мне использо
07:32
вать не удобно. нужно совершить много действий что бы можно было увидеть окончательный вариант.
07:33
не уверен, но говорят, что рактейблс тоже может снимать конфиги с оборудования. на так этого и не нашел
07:36
вланы в рактейблс так и не добил окончательно. терпения не хватило.
zi_rus #
07:44
а у нас нок это первая система хоть какого-то учета и сбора конфигов, раньше все по текстовым файликам лежало
07:44
и если бы я не заметил однажды нок, этот бардак и продолжался бы
dvolodin #
07:48
racktables - тоже российский, если мне память не изменяет
Skripnik #
07:50
как по мне, то его недостаток - статичность. все что внес руками - все твое. какие либо изменения, к примеру серийный номер железки, не поменяются автоматически.
07:52
у меня есть знакомый, у которого несколько сотен стоек, сколько серверов даже не скажу, вот им удобно использовать рактейблс за счет визуализации этих самих стоек, и сервера меняются очень редко
dvolodin #
07:54
мы раньше в NOC'овском KB рисовали
07:54
прямо XML'ем
07:54
все лучше, чем ничего
Skripnik #
08:00
кстати, а какие функции возлогаются на КВ ?
zi_rus #
08:00
Skripnik, сложно автоматически отследить как сервер из одной стойки вынули и другую воткнули
Skripnik #
08:01
так их и не вынимают.
08:02
но замену коммутатора на узле я отслеживаю сразу. по изменению его серийного номера
zi_rus #
08:02
а то что его на 2U ниже прикрутили - тоже отслеживаешь?
dvolodin #
08:02
Skripnik: просто wiki
Skripnik #
08:03
буду знать. подумаю как его использовать в своих целях
08:04
<zi_rus>, а ето идея. прикрутить какой нить датчик. тогда по трапам можно будет отследить.
dvolodin #
08:05
датчик называется служба эксплуатации ДЦ
08:05
:)
zi_rus #
08:06
в каждый коммутатор по GPS
dvolodin #
08:07
по фотоаппарату-мыльнице и по ведроиду
08:07
займитесь JS-мордой :)
08:07
сделаю зашибительную inventory
Skripnik #
08:07
у нас как-то была идея линейный отдел снабдить GPS. и следить где они шарятся.
zi_rus #
08:09
Skripnik, и каждому цак одеть
Skripnik #
08:10
и онлайн вебкамеру на лоб. отличный трилер-драма получится.
dvolodin #
08:12
у нас и так камер по городу хватает :)
zi_rus #
08:25
dvolodin, а можешь объяснить вот это из дефолтного конфига дискавери{{ IP|join:"-" }}
Guest17-ru #
08:25
Как постгрю с ноковского дампа востановить?
08:25
создать юзара нок, базу нок, потом:
zi_rus #
08:25
а, не надо, уже понял
dvolodin #
08:26
pg_restore
Guest17-ru #
08:26
psql noc < noc-db-2012-07-26-15-46.dump
08:28
pg_restore -d noc < noc-db-2012-07-26-15-46.dump
08:28
это с под юзера noc выполнить?
dvolodin #
08:28
да
zi_rus #
08:44
dvolodin, слушай, а почему ротация логов для noc-web не работает? он у меня уже 445М занимает
dvolodin #
08:45
у него ее и нет
08:45
логи пишет tornado
_4ePTeHok #
08:45
dvolodin, а где может быть затык - скрипт отрабатывает из sa-mo-scripts и из debug_script, а в noc-discovery.log - ошибка "feature is not supported on this platform"?
08:45
железка одна и та же ессно.
dvolodin #
08:47
получает версию софта
_4ePTeHok #
08:49
т.е.?
08:50
у меня в скрипте тоже есть проверка через get_version - и оно ее проходит
08:50
дискавери то тут причем
08:56
заразную штуку ты написал, Дмитрий..мне уже вторую ночь скрипты снятся.
dvolodin #
09:01
:)
09:01
inv/models/interfaceclassificationrule.py
09:01
:)
09:01
от такого и сон потерять можно
_4ePTeHok #
09:03
dvolodin, объясни всеж, что там такое проверяет дискавери, чего не делает сам нок при запуске скрипта из sa-mo-scripts?
09:03
и где соотв. чего подправить, чтобы он не считал платформу неподдерживающей get_interfaces
dvolodin #
09:03
да вроде ничего не проверяет
_4ePTeHok #
09:04
хм. ну вот странно же - из дебага работает, из веб морды - работает, а дискавери говорит - not supportes
09:04
d*
dvolodin #
09:06
сообщение как выглядит?
_4ePTeHok #
09:06
2012-07-26 13:07:26,219 [bolsheoxt-16-1-es3526-1-1.line-r.ru] get_interfaces failed: {'text': u'Feature is not supported on this platform', 'code': 21}
09:49
вот блин дилема.
09:50
или писать скрипт не расчитывая на уже имеющиеся, или задействовать их замедляя выполнение итогового скрипта многоразовым дерганием разных команд с железки
dvolodin #
09:50
кеширование рулит
_4ePTeHok #
09:50
оно не помогает если в разных скриптах дергается одна и та же команда
09:51
кэшируется же только результат скрипта
09:51
я вот все не могу решить для себя, что лучше)
09:52
проще конечно дергать уже имеющееся, да и унификация получается хорошая
09:52
но блин..
09:52
в том же get_interface_status = есть только state, а не admin/oper_state
09:53
и получается или забить на статусы и писать одинаковый обоим, или дергать снова ту же команду и распарсивать
dvolodin #
09:53
пока можно забивать
_4ePTeHok #
09:54
а потом руки не дойдут да)
09:54
короче упрощу пока, поиграюсь с массивами
09:54
а там может руки дойдут до переделок остальных скриптов
acid232 #
10:45
может и для хуавея напишешь?:
10:45
:)
10:45
там уже по идее почти все есть
_4ePTeHok #
10:48
дай хоть этот довести. я уже третий раз переписываю)
11:02
а как там правильно условие записать- "если слово существует в подстроке p - то"
dvolodin #
11:06
if "слово" in p:
11:07
или
11:07
if "слово" in p[<start>:<end>]:
_4ePTeHok #
11:07
ага, нашел, спасибо.
acid232 #
11:09
а изменить приоритет alarm-а например Network | PIM | Neighbor Down
11:14
точнее severity
dvolodin #
11:16
через alarm trigger
11:16
сейчас эти настройки в interface profile выносятся
_4ePTeHok #
11:17
правильно VLAN X, или без пробела\?
11:17
а то в имеющемся профиле ES без пробела сейчас.
11:17
имя интерфейса имеется ввиду
dvolodin #
11:17
от системы зависит
_4ePTeHok #
11:17
на железке пробел
dvolodin #
11:17
ну добавь пробел
_4ePTeHok #
11:18
ух, чую попути все скрипты ковырять придется)
acid232 #
11:19
а есть пример какой-то работы с этими триггерами?
11:20
например что значит template
11:20
и обязателен ли pyrule
dvolodin #
11:21
pyrule не обязателен
acid232 #
11:22
и второй вопрос - когда нужно запускать ./noc sync-collections и что от делает
dvolodin #
11:22
при изменении JSON в */collections/*
11:22
оно вливает их в базу
acid232 #
11:23
ну вот я вебом добавил, рестартанул, и нужно ли запускать?
11:24
или он мне в итоге вернуло все как было
11:24
"оно"
dvolodin #
11:24
built-in правила менять не надо
11:24
затрет
acid232 #
11:24
так как правильно добавлять - вебом,рестарт и все?
dvolodin #
11:43
да, классификатор
11:44
с messaging я тоже более-менее разобрался
11:44
сделаю STOMP
_4ePTeHok #
11:58
dvolodin, я верно понимаю что у любого порта будет subinterfaces?
dvolodin #
11:59
если он настроен хоть как-то, то да
11:59
обычно он один
_4ePTeHok #
11:59
который тем более switchport
dvolodin #
11:59
у switchport'а он строго один
_4ePTeHok #
11:59
то будет is_bridge
dvolodin #
11:59
да
_4ePTeHok #
11:59
ок, счас зобабазаем.
dvolodin #
11:59
с tagged_vlans и untagged_vlan
_4ePTeHok #
12:00
у акцессного порта только utagged
12:00
хотя..
12:00
вот опять нюанс
12:00
в ES есть понятие - hybrid port
12:00
т е почти trunk
12:01
но с untagged
ufir #
12:01
в хуавее тоже
_4ePTeHok #
12:01
+ есть MVR, который тоже untagged добавляет вилан
12:01
т е вполне может быть на акцессном порту несколько untagged виланов
12:02
а в формате get_interfaces вроде только один вилан отдаваться должен
12:03
или можно несколько untagged?)
12:03
'untagged_vlan': 1}],
MindGames #
12:03
привет!
dvolodin #
12:07
можно одновременно выставить untagged и tagged
12:07
вот насчет MVR я не делал пока в IGetInterfaces
12:08
подумать надо
12:08
на тех же alcatel'ах может быть несколько мультикастных vlan'ов
acid232 #
12:10
hybrid port есть и в хуавее
12:10
для него нейтив влан такой-то
_4ePTeHok #
12:10
хьюбрид не проблема
12:10
несколько untagged vlan проблема.
12:11
в общем то что у некоторых называется mvr
dvolodin #
12:16
может добавить список
12:16
mvr_vlans ?
acid232 #
12:17
а не проще ли их заигнорить
12:17
они же на аксесных портах обычно делаются
_4ePTeHok #
12:22
ну..вопрос тогда не только в get_interfaces, но и в get_switchport.
12:22
если отдельное поле добавлять - то нужно и туда и туда
12:23
как в принципе в get_interface_status нужно поле status разделить на два - admin/oper_status
12:23
тогда get_interfaces максимально упростится
dvolodin #
12:28
можно, конечно, добавить два поля
12:28
вместо одного
12:28
не скрипты придется переделывать
acid232 #
12:28
mvr это же функция
12:29
которая "склеивает" два влана
12:29
или я не прав?
_4ePTeHok #
12:29
MVR виланы на разных портах могут быть разными
12:30
другое дело что на свитчинг юникаст трафика это не влияет
12:30
но вдруг потом чего нить с мильтикастом в ноке удумаем
12:30
пока нету - можно игнорировать
Guest17-ru #
12:56
_4ePTeHok: да, я тоже щитаю что в get_switchport & get_interfaces untagget должны быть списком! Надо поменять интерфейсы и поправить скрипты.
12:56
Пример, по одному влану инет, по другому малтикаст TV
_4ePTeHok #
12:56
ну это только в случае mvr
12:56
о нем мы и говорили
12:57
что может стоит его отдельно вытащить
12:57
но пока не ясно для чего)
zi_rus #
12:57
а еще есть длинк и которого может быть больше одного антаг влана порту, и это никак не связано с мвр
_4ePTeHok #
12:57
епта..нарожают же
dvolodin #
12:57
ладно, давайте по очереди
12:57
IGetInterfaceStatus
12:58
поле status заменить на два поля admin_status и oper_status
12:58
надо будет 16 скриптов минимум поправить
zi_rus #
12:58
напиша скрипт который правит скрипты
_4ePTeHok #
12:58
гг
dvolodin #
12:58
их на железе проверять надо
_4ePTeHok #
12:58
аля admin_status = status?)
12:59
oper_status = status
dvolodin #
12:59
или оставить status без изменений и сделать необязательный admin_status
Guest17-ru #
12:59
давай IGetInterfaceStatus оставим
_4ePTeHok #
12:59
я за необязательный
12:59
можно будет постепенно переделать скрипты
12:59
и то что уже работает - будет работать
Guest17-ru #
13:00
Admin status надо только в get_interfacesб вот в нём можно с ним и заморачиватся.
_4ePTeHok #
13:01
Guest17-ru, смотри - мы дергаем get_status для state и затем ту же команду, которая в ней обрабатывается - для admin_state
13:01
зачем два раза один вывод парсить?
13:01
два вызова cli, нагрузка на железо, время..
Guest17-ru #
13:01
Кроме того show interface наверно везде показывает админ статус, так что вытянуть ещё одну переменную регекспом совсем не сложно.
zi_rus #
13:02
_4ePTeHok, не сношали бы мозги, по снмп 2 оид дернул и вот ответ
13:02
cli - зло
_4ePTeHok #
13:02
нюню. скажи это длинковцам.
zi_rus #
13:02
там те же оиды
13:02
они стандартные
Guest17-ru #
13:03
Ну тогда в get_interfaces можно сторонних скриптов не дёргать ;) А всё определять там..
_4ePTeHok #
13:03
оиды - да, реакция железа - непредсказуема.
13:03
Guest17-ru, смысл?) опять же двойная работа для пишущего скрипт
zi_rus #
13:03
IF-MIB::ifAdminStatus.1 = INTEGER: up(1)
13:03
IF-MIB::ifOperStatus.1 = INTEGER: down(2)
_4ePTeHok #
13:04
где там Dmitry1? Он расскажет про зависания длинков от snmp запросов.)
zi_rus #
13:04
у меня ничего не виснет
13:04
в сети куча длинков
_4ePTeHok #
13:04
елки, ну вот ведь не суть
zi_rus #
13:04
50% самописных скриптов шарятся по снмп
Dmitry1 #
13:04
1. виснут порты при попытке опроса их состояния cable_diag
Guest17-ru #
13:04
Для пишещуго скрипт, да, иногда зависит от вывода команд CLI. Но зато скрипт будет работать быстро и железо не будет загружено.
zi_rus #
13:04
и ведь не виснут
_4ePTeHok #
13:04
есть метод cli, для него уже есть скрипты.
13:04
глупо их не использовать
13:05
по пути добавляя snmp, если хочется.
zi_rus #
13:05
по снмп оно и работает быстрее
Guest17-ru #
13:05
А вот с untagged вланами, надо менять интерфейс и всё. Untagged должен быть списком.
Dmitry1 #
13:05
2. загрузка CPU поднимается под 100% при попытке выгрести по SNMP таблицу FDB >= 2000 MAC адресов
Guest17-ru #
13:06
и нагружонные порты моргают.
zi_rus #
13:06
я дергал тблицу маршрутизации на 4к маршрутов, без проблем, загрузка 30%
Dmitry1 #
13:07
zi_rus: Возьми D-Link DGS-3627G и попроьуй у него через SNMP получить около 2000 MAC адресов.
_4ePTeHok #
13:07
опять вы в частности и дебри полезли.
zi_rus #
13:08
Dmitry1, у меня есть DGS-3627G, и 4к маршрутов по снмп - это про него
Dmitry1 #
13:09
не маршрутов, а MAC адресов.
zi_rus #
13:09
у меня нет таких л2 сегментов
Dmitry1 #
13:09
Мы используем DHS-36xx серию как аггрегацию. Т.е. там L2 превращается в L3
zi_rus #
13:10
не имеет значения, дергать маки или маршруты, все хранится во внутренней базе, а снмп - лишь протокол, чтобы эти данные отдавать
Dmitry1 #
13:11
ок
13:11
состояние порта для d-Link
zi_rus #
13:12
развивай мысль, пока не понятно
Dmitry1 #
13:12
для DES-3526 - .1.3.6.1.4.1.171.11.64.1.2.4.1.1.4
13:13
Для DES-3026 - .1.3.6.1.4.1.171.11." . $p_oid[$ModelType] . ".2.2.1.1.4
13:14
и для остальных
zi_rus #
13:14
и в cli есть различия
Dmitry1 #
13:15
где $p_oid[$ModelType] - серия и модель свича. берутся из файликов типа SW3200PRIMGMT-MIB.mib
zi_rus #
13:15
а это какие-то левые оиды, есть стандартные, которые поддерживают все нормальные производители, и даже длинк
Dmitry1 #
13:16
1.3.6.1.4.1.171.11.63.1.1.2.2.1.1.4 DES3010F-L2MGMT-MIB::swL2PortInfoLinkStatus
dvolodin #
13:16
zi_rus: ошибаешься
13:17
вот для примера тебе - ScreenOS
Dmitry1 #
13:17
1.3.6.1.4.1.171.11.63.4.2.2.1.1.4 DES3010FL-L2MGMT-MIB::swL2PortInfoLinkStatus
dvolodin #
13:17
те же ifInOctets для сабинтерфейсов - в своих MIB'ах
Dmitry1 #
13:17
1.3.6.1.4.1.171.11.63.1.2.2.2.1.1.4 DES3010g-L2MGMT-MIB::swL2PortInfoLinkStatus
13:18
Дальше продолжать? И это только 3 свича одной серии
zi_rus #
13:18
dvolodin, не понял, что ты хотел сказать
dvolodin #
13:18
я про то, что MIB'ы описывают только формат данных
13:19
наличие MIB'а абсолютно не гарантирует, что производитель будет отдавать эти значения на GET
13:19
ScreenOS - -как пример
zi_rus #
13:19
Dmitry1, 1.3.6.1.2.1.2.2.1.7 - IF-MIB::ifAdminStatus - покажи где этого нет
dvolodin #
13:19
вроде как в IF-MIB'ах что-то отдает, но не все
zi_rus #
13:23
в каком смысле?
dvolodin #
13:23
в прямом
13:23
eth0 есть, eth0.1 нет
zi_rus #
13:23
через одну? рандомом?
13:24
или определенные вещи просто не предусмотрены
13:24
?
dvolodin #
13:24
и такое бывает, да
Dmitry1 #
13:24
Тот же D-Link при стекировании умудряется выдавать в качестве номеров портов вообще феерические вещи.
13:25
Причем в CLI это нормально видно, типа 1:1, 2:1 и т.п.
13:26
а в SNMP почему-то у первого свича в стеке номера портов с 1-го по 52 (или 60, я не помню), а у второго - после 60 начинаются
13:27
А порты больше 1000- туда вообще попадают интерфейсы управления, Voice Vlan и т.п.
_4ePTeHok #
13:27
захламили канал своими мибами.
zi_rus #
13:28
Dmitry1, и у них тоже есть свои статусы
Dmitry1 #
13:28
да
zi_rus #
13:28
вот и именно
13:28
они есть и их надо отдавать
dvolodin #
13:29
Dmitry1: это не номера, а ifNumber
zi_rus #
13:30
dvolodin, почему для циски нет скрипта get_interface_status, а для длинка есть?
Dmitry1 #
13:31
на выходных сделаю для циски
dvolodin #
13:32
zi_rus: ну ты же его не сделал
13:32
:)
Dmitry1 #
13:32
Я все жду, когда dvolodin победит длигкоаский CLI
zi_rus #
13:34
dvolodin, да вот я смотрю, на длинковский и думаю, а на кой там делается cable_diag ports
Dmitry1 #
13:35
Это я так делал. По другому через CLI невозможно узнать статус порта.
13:35
Потому как команда "show ports" использует curses-based CLI
acid232 #
13:38
а нок все дивайсы пингает?
13:38
или только те которые is_managed=true
zi_rus #
13:39
acid232, те у кого trap source_ip прописан
acid232 #
13:42
или те которые в vrf default
zi_rus #
13:43
у меня всех пингует, независимо от врф
acid232 #
13:44
а причем тогда trap source_ip
13:45
а у меня не все пингуе почему-то
zi_rus #
13:46
и чем отличаются те что пингуются от тех что нет?
acid232 #
13:46
вот я и думаю в чем тут дело, в vrf != global, is_managed!=true или чем-то еще
13:46
vrf, adm domain
zi_rus #
13:46
так поставь галочку на iz_managed и посмотри, запингуется он илии нет
acid232 #
13:47
ну вот я и балуюсь
13:48
может еще в селекторах дело
13:48
непонятно короче говоря
zi_rus #
13:49
dvolodin, так и не починил про лупбеки и ипам
Tweet
Share this page
Share this page: Tweet