nocproject.org
04:48
еще вопрос, зачем при описании регулярок делать ^syslog$ и профиль так же ?
04:50
для ускорения поиска
04:51
а раз это надо делать всегда, быть может это можно хардкодить ?
04:54
сидел на dev версии 3х дневной давноести, все работало нрмально, добавил объекты - началась засада, обновился до текущей версии - не помогло..
04:55
Huko: да понятно там почему
04:57
dvolodin: шанс, что снова заработает есть :) ?
04:59
Коллеги, а %%01SHELL/5/TIMEOUT(l): ЮЗЕР login from ОЙПИ is time out. это новый класс или Security | Authentication | Login Failed
05:02
я думаю, что новый
05:02
Huko: шанс всегда есть
05:03
freeseacher больше похоже на logout, только автоматический, по таймауту
05:04
lexus-omsk, да жто логаут
05:06
lexus-omsk, а у тя есть хуавеи ?
05:08
dvolodin: значит проблема не в моем самописном профиле, это хорошо
05:09
freeseacher есть, но не много, только 5328 сейчас доступны, в теории можно ещё 9303 завести
05:10
проблема в том, что после того, как атрибуту класса назначается callable, ему в качестве первого параметра передается класс
05:10
dvolodin, FM очень не хватет строки поиска по сабжекту
05:11
lexus-omsk, у меня в логе выбают %%01QOSE/6/CPCAR_DROP_LPU(l): Some packets are dropped by cpcar on the LPU in slot 10. (Protocol=telnet, Drop-Count=0597)
05:11
iface = <Interface: ood-acc-tech-6-09: 1> вот это ?
05:12
да, тоже сыпется такое, но вроде на работу не влияет... надеюсь... я их игнорю
05:19
dvolodin: поможет только патч или как то локально можно это решить ?
05:22
dvolodin: если получится сделай, пожалуйста, а то получается у меня нок почти не работоспособный сейчас :(
05:25
lexus-omsk, поговорил с хуавеевским
05:26
cp-car это аналог CoPP и СЗГ-ВУаутв
05:26
CPU-Defend
05:26
это или евент или аларм в зависимости от интенсивности дропа
05:27
dvolodin, Chassis | CPU | CoPP Drop назван не верно аналогичные механизмы есть у других вендоров. как правильно поступить ?
05:28
кто вообще делал этот класс?
05:28
:)
05:31
interface_discovery пофиксил
05:31
solutions уже вполне жизнеспособны
05:31
можно делать свою логику для определения fqdn и descript для ip discovery
05:31
и для назначения профилей для интерфейсов
05:32
что такое solutions? в коммитах увидел, это обсуждалось?
05:33
и можно в них делать свои job'ы для discovery и scheduler'а
05:33
freeseacher: я только их на файлы порезал
05:34
TSergey: solutions -- это пакеты, которые могут модифицировать и дополнять базовую логику noc
05:34
freeseacher: а в чем проблема-то?
05:34
пусть оно все будет CoPP Drop
05:41
один фиг в общем-то, control plane policing это, как не обзови
05:41
хорошо
05:41
просто я бы 100 пудово не нашел бы это
05:44
dvolodin, скажи лучше чего нить хорошее про поиск по сабжекту в FM :)
05:44
это какой то анрил или просто впилить надо
05:44
смотри
05:44
впилить это можно только в одном случае
05:45
если отказаться от возможности переводов сабжа и тела на разные языки
05:45
он не в событии хранится, а в классе
05:57
dvolodin, солюшены периодически выполняются или дергаются триггером и вообще как они вызываются
05:59
они часть noc'а
06:00
смотри, для классификации интерфейса используется настройка get_interface_profile
06:00
по умолчанию она смотрит в solution noc.defaults и указывает на функцию, у которой на входе интерфейс, на выходе - имя профиля или Null
06:00
None
06:01
если ты хочешь сделать целиком свою логику
06:01
ты делаешь либо новый solution, либо используешь свой
06:01
определяешь где-то внутри него свою функцию
06:02
и указываешь ее в конфиге
06:03
рыбу сделать просто
06:03
./noc create-solution <vendor>.<name>
06:04
и подключается он в разделе [solutions] в noc.conf
06:04
грубо говоря, все твои локальные фиксы сосредоточены в одном месте
06:04
ну а что тебя пугает?
06:04
у меня noc
06:04
я не понял какой смысл ты вложил в это слово
06:04
производитель solution'а
06:05
вот смотри
06:05
у тебя есть решение, которое классифицирует интерфейсы по линкам
06:05
так?
06:06
потенциально, оно интересно многим
06:06
но его нельзя делать из коробки, так как оно подходит далеко не всем
06:07
ты можешь просто сделать solution с job'ом
06:07
и минимальными настройками -- какие профили выдавать при наличии линка и без него
06:07
упаковать и раздавать всем желающим
06:08
если кому-то нужна такая логика, то он поставит и включит твой solution
06:08
хорошо, это плюс. но я так и не понял как солюшен с джобом работают
06:08
а именно
06:08
запуск на исполнение например классификации интерфейса
06:08
06:09
06:10
вот так примерно
06:10
zi_home: я так полагаю должен быть уже механизм для запуска, а к нему можно свое прикрутить
06:10
смотри, job читает настройку [interface_discovery]/get_interface_profile
06:10
и загружает нужный модуль и берет функцию
06:11
там же в 124 строке есть функция, которая классифицирует интерфейс
06:11
она тупо дергает функцию из solution'а и смотрит, что оно вернуло
06:11
дальше
06:11
get_interface_profile = noc.solutions.noc.default.discovery.interface.get_interface_profile
06:12
то есть сюда надо будет вписать свое
06:12
lf
06:12
да
06:12
вот тут то, как оно работает по умолчанию
06:12
ты делаешь свой get_interface_profile
06:12
в своем solution
06:12
и прописываешь его в конфиге
06:12
и все
06:12
interface_discovery будет вызывать твою функцию
06:13
ладно, этот момент надо уточнить. когда будет вызываться моя функция
06:13
какое условие? время? событие?
06:13
каждый раз во время interface discovery
06:13
если на интерфейсе еще нет профиля
06:13
а если есть и его надо изменить так как изменилась сеть?
06:14
на самом деле и такую функцию можно сделать
06:14
которая будет проверять, запускать ли классификацию, или нет
06:15
сейчас в interface_classification такое есть
06:15
if not self.get_interface_profile or iface.profile_locked:
06:15
return
06:15
можно заменить iface.profile_locked на вызов из solution'а
06:17
там поле есть в интерфейсе, оно выставляется в true при ручном выставлении профиля из ui
06:17
не суть важно, суть саму понял?
06:17
у solution'а может быть свой конфиг в etc
06:18
но вкрутить свой солюшн можно будет только там, где у тебя будут такие заглушки-проверки
06:18
TSergey: естественно
06:18
нужно их расставить по правильным местам
06:18
это не сложно
06:19
и можно постепенно
06:19
и второе назначение solution'ов -- хранить локальные правки
06:20
и локальную интеграцию
06:20
пытаюсь осознать, меня пока сильно смущает принцип вызова. моя логика проверяет наличие линка и наличие дескрипшена, первое создается другими дискавери да еще и зависит от других железок, второе - создает сам интерфейс дискавери. то есть
06:20
как я вижу в мою функцию будут попадать порты без единого линка, но с дескрипшенами, и помечаться они будут как клиентские, а тк как у них уже будет профиль то переклассифицироваться они не будут
06:20
есть ли "спрос" на такое решения? кто сейчас спрашивает что-то такое, что требует правки общих скриптов, но вызывает сомнение о помещении правки в коробку
06:20
TSergey, бывает такое
06:21
не сомневаюсь, но пример бы, я довольно давно читаю чат, с ходу такого не вижу
06:21
а придется значительно прорабатывать код
06:22
TSergey, посмотрел свой боевой нок, hg diff столько всего, но большинство потом таки уехало в апстрим
06:23
может такую штуку перед или после каждого вызова скриптов из профилей, но тоже спорно
06:26
dvolodin, вот если бы был триггер, вызов функции классификации при изменении интерфейса. впервые появился в базе - классифицировать, изменился дескрипшен - классифицировать, появился линк - классифицировать. нет смысла дергать эту штуку какж
06:26
дый раз
06:26
вот может в редактировании объекта, для дополнительных проверок или дефолтных установок, это я бы сходу использовать начал
06:26
zi_home: почему не будут, будут
06:26
ты же не руками их лочишь
06:27
zi_home: она и так вызовется
06:28
dvolodin, ты же сказал что если профиль есть то не будет дергать. ты не уточнял как профиль был установлен
06:28
посмотрел внимательнее
06:28
если ты руками установил профиль из inv.interfaces, то дергаться не будет
06:28
в противном случае -- будет каждый раз
06:28
так что все нормально, появится линк, уйдет оно у тебя в nni
06:28
Коллеги а есть пример Ignore Event Rules
06:29
^message$ ^DEBUG: .*$
06:29
неоптимально
06:30
но лучше чем есть у меня
06:30
почему неоптимально?
06:30
раз в сутки-то?
06:31
у меня раз в месяц интерфейс дискавери ходит
06:31
ускорю до недели
06:32
неоптимально в смысле что неизменившиеся ни в чем интерфесы будут периодически прогоняться через классификацию
06:32
а 99% портов не будут меняться
06:32
каждый раз
06:32
TSergey: сплошь и рядом такое
06:32
сети у всех разные и подход к управлению у всех разный
06:32
zi_home: ты можешь дергать информацию из биллинга, например
06:33
почем ты знаешь, поменялось там что-нибудь или нет?
06:33
я знаю, все порты конфигурятся руками или скриптами из нока
06:33
линки создает только нок или опять руками
06:33
это ты знаешь
06:34
а кто-то не знает
06:35
dvolodin, если после прохода интерфейс дискавери, на порту тот же дескрипшен что и раньше, тот же статус что и раньше, и другие параметры те же что лежат в базе, значит ничего не изменилось
06:35
ну а сеть она такая
06:35
06:35
вот второй пример, как сделать свою задачу
06:36
zi_home: ты забываешь внешние системы
06:36
вот убег
06:37
ничего, еще вернется
06:42
Господа, добавили много (около 2000) устройств в нок через csv, теперь при нажатии "Сохранить" на любом из managed object вылетает страница с трейсбэком, говорит "ManagedObject matching query does not exist." Подскажите, плиз, как с этим бороться.
http://pastebin.com/kfviKv5J
06:47
gborisov, как-то криво залил
06:51
gborisov: а при заливке не ставил галку "игнорировать ошибки"?
06:53
Коллеги, а macflap это авария ?
06:54
gborisov: это developer или 0.8?
06:54
freeseacher, мак флап да, но не все события являются флапами, часто это просто mac move
06:54
как вот это льется, если это девелопер "u'repo_path': [u'Gate00-msk.centr'],"
06:54
TSergey, такой галки нет, делал Managed Objects -> Import -> Resolve: Update
06:55
gborisov: значит 0.8
06:55
gborisov, нет, я про то что МО криво импортил, в noc shell попробуй подергать, что возвращается. в постгресе еще можно посмотреть
06:56
gborisov: а можешь скрин одного МО сделать?
06:56
gborisov: объект SAE не грохнул случайно?
06:58
lexus-omsk: kwargs = {'name': 'SAE'} строка 29 пастебина
07:00
lexus-omsk, действительно, его нет (по крайней мере в поиске через веб-интерфейс не ищется)
07:00
давно никто на эти грабли не наступал :)
07:01
должен быть объект SAE с профилем NOC.SAE и IP 127.0.0.1 (у меня по крайней мере так)
07:02
lexus-omsk, лол а можно его создать и все заработает?)
07:08
lexus-omsk ну так грабли знатные, нет что бы сделать этот объект read-only ;)
07:08
lexus-omsk, спасибо!
07:16
lexus-omsk, скинь пример Ignore Event Rules ?
07:25
zi_home, ну или ты ?
07:26
freeseacher, не пользуюсь
07:26
тебе dvolodin дал пример
07:26
жаль
07:27
он мне дал его ?
07:27
^message$ ^DEBUG: .*$
07:27
это ?
07:27
freeseacher ну вот про тот же CPCAR left RE: ^message$ right RE: CPCAR_DROP_LPU.*
07:28
Ребята, подскажите пожалуйста! Как создать свой Event Class с нужными мне ПЕРЕМЕННЫМИ????
07:28
надо активатор после этого передергивать ?
07:34
не помню, давно было дело
07:39
freeseacher, лучше дерни, хуже не будет
07:39
я знаю что активтор забирает раз в 10 минут конфигурацию
07:51
есть уверенность что в евентах попадают не все события
07:51
где их поискать ?
07:51
неклассифицированные могут давиться при повторе
07:54
а сохранение это Config | Config Changed ?
07:54
черт алик умеет слать конфиг счанджед и конфиг сайвед
07:54
и это разные события
08:00
dvolodin, так вот. я не про то как происходят изменения, я про то как часто и тут все зависит от сети, если продаются сервисы физикам, то они могут часто включать отключаться переезжать и тд, юрики делают это реже, а есле это мобильная сеть то тут
08:00
вообще все статично. но даже в случае с физиками порты меняются крайне редко и в худшем случае я не думаю что за неделю и 10% всех портов наберется, 90% будут неизменными втечении недели и больше, а по твое логике ты будешь их прогонять
08:04
dvolodin: спасибо за interface_discovery fix. все заработало, алилуя !
08:08
я чото очкую обновляться)
08:08
с этими солюшенами
08:09
_4ePTeHok йоу
08:09
а что случилось ?
08:09
ну если ты пирули не юзаешь то забей
08:09
но есть подозрение, что только мне так повезло :)
08:09
у меня просто есть профилевыставление по условиям
08:09
и как их перенести в новую систему я пока не очень понимаю
08:11
да не, обновитесь все, кто вчера обновлялся
08:11
_4ePTeHok: ты можешь написать функцию, которая примет instance Interface
08:11
а на выходе даст имя профиля или None?
08:17
у меня там завязка на модель железки и номера портов
08:17
3 пируля для каждого типа
08:17
свой
08:22
dvolodin: а кто не обновлялся?)
08:22
Всем хорошего времени суток =)
08:24
_4ePTeHok: ага, у меня один сап улетел уже, месяц назад.
08:24
просто сказали, что и не должен был работать, у вас память дохлая.
08:24
но у меня контракт nbd, а что делать остальным, не знаю
08:32
для классификации нам катастрофически не хватает дополнительного поля с ролью железки
08:33
если только что вместо нее object profile использовать
08:34
типа router-l3 switch-l2?
08:34
и зачем он нам?
08:35
чтобы понять, для чего поставили свич
08:36
скажем, свич дц , свич доступа и свич агрегации -- разные вещи
08:37
Алкатель такой алкатель. подключение пользователя имеет приоритет Warning в сислоге и указывается все вплодь до саб интерфейса. а падение радиуса заслуживает лишь MINOR без указания какой радиус упал...
08:43
и поднялся ксати тоже не понятно какой....
08:43
может этот самый радиус сервер и ненужен вовсе :)
08:44
:)
08:44
и тем более их там до 5 штук может быть
08:53
dvolodin, Ignore Events Name пичаль беда
08:53
не более 64 символов
08:54
уникальное имя ошибки SVCMGR-WARNING-hostConnectivityLost-2206 [Host connectivity lost]
08:59
ну да, оно компактно
08:59
сделай -hostConnectivityLost-
08:59
:)
09:10
8[15:36] dvolodin: для классификации нам катастрофически не хватает дополнительного поля с ролью железки
09:10
я пытаюсь применять тэги для этой цели
09:11
точнее сейчас применяю
09:12
edge/aggregation/L2/access/iptv
09:14
TSergey: вот это как раз не очень хорошо
09:14
ну что есть, то и использую :)
09:15
иначе как делать селекторы совсем неясно
09:15
а интересно именно группу девайсов обрабатывать
09:17
делаешь группу на селекторе, который выбирает по тэгу =)
09:18
именнно так
09:18
есть селекторы по каждому тэгу
09:18
и селекторы по нескольким селекторам :)
09:18
вот и я говорю, немножко костыльно
09:18
напрашивается на ум что селекторы в группах лишние
09:19
а если роль двойственная?
09:19
ну да я не о том, тэги бы в фильтрах починить :)
09:20
во многих системах объекты можно свободно добавлять в группы, причем в несколько одновременно
09:20
а автоматизировать добавление можно уже селекторами
09:21
а как ты это будешь админить? я не против групп, тэги позволяют увидеть картинку наглядно, вот узел и "aggregation" и "L2" и "access" (подключен на нем один важный клиент, как пример)
09:22
а так, кастом филды работают, чем не группы?
09:22
ну по сути то так и выходит, ты добавил объект в группы "aggregation" и "L2" и "access"
09:22
вручную
09:23
это ведь группировка, так или иначе
09:23
типа feture list ;)
09:23
feature*
09:24
а ты будешь видеть что он в трех группах?
09:24
есть кастом филды, есть "Enum Groups", группы ждут тебя :)
09:24
я мне бы починили тэги, я был бы оченно доволен
09:26
ага, если бы фильтры работали по нескольким тэгам
09:26
мультироли нада тогда уж
09:27
TSergey кстати, а нотификейшен ты используешь?
09:29
ну там есть object notification
09:30
неа, пока это не исследовал
09:31
что-то вкусное, явно
09:31
hi %alluser% не могли бы вы подсобить. как перевести вывод snmp запроса. SNMPv2-SMI::mib-2.17.7.1.4.2.1.4.23586680.77 = Hex-STRING: 00 00 00 80 00 00 00 00 в читабельный вид
09:31
это с DGS-3627G здесь зашифрованы порты на которые уходит vlan 77
09:31
наверное не работает :)
09:33
Create Group Access
09:33
Group: <- это что такое? :)
09:35
Izya12: ну все нули - это нет портов в влане, а вообще там битовая карта
09:36
Izya12, тут всего 1 порт
09:38
ovg: думаю для администрирования пользователей в НОКе
09:38
типа завел группу, настроил, а пользунов уже в нее
09:39
для раздачи прав группам пользователей
09:41
неслабо там можно развернуться в Group Access:
09:44
dvolodin, ты не делал функции чтобы битмаски обрабатывать?
09:55
Izya12: у тебя lldp-discovery работает на dgs?
10:03
buggy-funhouse: работает но не везде
10:45
ну так укажи ему oid
10:53
у алика "Network | IP | ARP Moved" не содержит from_mac и interface
10:53
как поступать ?
10:53
новый евент тип ?
10:53
или этот праивть
11:29
dvolodin: я указываю, КО. аписал же, для любого oid!
11:29
у вас get_snmp_get работает?
12:10
как скрипт из MO
12:11
вписал oid, что достаточно, трейс. Вписал oid и community, трейс
12:21
а
12:21
ну там мог и не работать, не проверял
12:44
freeseacher, тебе определенно надо пообщаться со вторым Дмитрием, только пропал он куда-то. У него просто принципы там свои были для этих вещей
18:12
А есть какой-то способ посмотреть на железке а каком состоянии находятся порты , up/down/disable ?
18:16
казалось бы. ведь в ноке вся это инфа есть.
18:18
почему нет ? в get_interfaces все это отдается, просто нету вывода этой информации насколько я понимаю
18:19
zi_home: подскажи по get_inventory - инфу о шасси и модулях отдавать надо в одном запрсе ?
18:21
в смысле нет в не надо разделять - этот запросс инвентори по шасс, этот запрос про sfp модули
18:21
там с отдачей все плохо, в базу это не попадает, а в большистве скриптов статусы фиктивные, на будущее было сделано
18:23
надо отдавать по порядку шасси - моули, шасси - модули. connection rule будет по номеру, в соответствующее шасси втыкать модули именно в том порядке как вернешь
18:23
была попытка это обойти. _4ePTeHok пытался. неудачно
18:23
просто хочу сейчас для своих железок написать get_inventory, надо понять концепцию
18:24
т.е. нельзя снача отдать все шасси, а потом все модули в этих шасси ?
18:24
во как
18:25
это немного усложнит задачу разгребания и отдачу
18:25
со стеком это дерево мутант, но суть та же
18:25
корень это шасси
18:25
от него растут модули
18:25
БП, сфп, фан
18:25
иногда линейные карты
18:26
а сфп уже лк втыкаются
18:26
но это детали
18:26
а мне же юнит из стека как корень шасси отдавать ?
18:26
или корень это виртуальная железка - весь стек
18:27
не
18:27
просто список шассей
18:27
вот у меня 2 свича в стеке
18:27
после каждого шасси его модули
18:27
после каждого модули модули которые в нем
18:27
*модуля модули
18:28
я сначала отдаю первый свич как шасси, потом его модули, закрываю дерево, открываю второй юнит как шасси и его модули. верно ?
18:28
нет
18:28
нечего закрывать
18:28
просто подряд
18:29
ты возвращаешь список
18:29
в спике подряд идут
18:30
шасси
18:30
модули в шасси
18:30
модули в модулях в шасси
18:30
модули в модулях в модулях шасси
18:30
...
18:30
модули в модулях в модулях ... в шасси
18:30
шасси
18:31
...
18:31
и тд
18:31
а connection rule по этому списку соберет железку
18:33
чудо чудное
18:34
только если с шасси и gbic модулями более мение понятен вормат данных, то с фанами и БП немного не ясно
18:34
в какой очередности их выводить и в каком виде
18:35
пофиг
18:35
но
18:35
а может и совсем пофиг
18:35
там conn rule надо смотреть
18:36
главное чтобы фан и псу шли после шасси
18:36
тогда нок воткнет их в это шасси
18:36
gbic ничем не отличается от фана
18:37
я бы сказал что типом
18:37
но тип теперь в модели
18:37
так что вообще совсем ничем не отличается
18:37
а что в итоге у меня должно получится :) ? просто сейчас у меня задачи мимнимум - собрать все сирийники свичей в стеке и базу по gbic
18:38
просто в эти conn rule я еще сильно не в никал
18:38
сейчас просто вывод для начала хочу сделать
18:38
если там все несъемное
18:38
только трансиверы
18:38
то conn rule уже есть
18:39
просто вернуть список шассей с модулями
18:39
и заколосится
18:39
да, по сути это просто свичи, максимум что там съемное это БП, есть модели где их по 2 стоят
18:40
съемные псу там учтены
18:40
это не проблема
18:42
когда типы в базу уехали инвентори стало совсем просто собирать
18:46
а где-то надо описывать тип свича, сколько у него psu поддерживается 1 или 2. И если в данный момент воткнут 1 мне просто в инентори отдать 1
18:46
это ты в object model распишешь
18:57
zi_home: буду пробывать, спасибо !
19:00
кста, где нибудь можно задать интервал вызова get_interface_status для проверки статусов портов ?
19:01
у меня такое чувство, что он их дергает каждую минуту
19:26
Если я в профайле изменил или добавил скрипт, что-бы его подхватил нок обязательно его весь рестартовать ?
19:31
да
19:31
или активатор только
Share this page
Share this page: