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: 04.09.2012
lexus-omsk #
02:51
Доброго утра всем!
02:51
1) Напомните, а что делать с трейсбэками от нового парсера snmp?
02:53
2) Насчёт дискавери на Huawei S9303 - кажется понял, на чём он падает... видимо, паттерн ошибки встречается в выводе какой-то из комманд
dvolodin #
03:01
1. где они?
zi_rus #
05:50
dvolodin, а NOC-472 починили? у меня была эта проблема, но вроде фикс какой-то уже делали
05:51
лично у меня сейчас нет этой проблемы
freeseacher #
05:55
zi_rus, у меня осталась
zi_rus #
05:55
как интересно
freeseacher #
05:55
DELETE запрос не формируется
05:55
а если удалить все теги формируется
Guest7-ru #
05:56
Кто-то про расширения ума FM с помощью топологии думает?
zi_rus #
05:57
да вроде все написано
Guest7-ru #
05:58
Написал ещё один алгоритм, только для сетей кольцо, где можно точно указать причину и даже точно вывести "probable_causes" и "recommended_actions" для аварии LinkDown & Ping Faild
05:59
Жаль он будет работать только в сетях где каждый объект имеет как минимум два маршрута.
_4ePTeHok #
08:34
а в json можно делать обработку какую-то вида if-else?
08:35
вот допустим по snmp отдается линк-ап трап. Если номер до 5000 = интерфейс, если после - вилан.
dvolodin #
08:36
нет
08:36
такого нет
_4ePTeHok #
08:38
как быть?
dvolodin #
08:39
регулярными выражениями?
_4ePTeHok #
08:41
мм..проблема в том, что дальше все равно надо условие. Если интерфейс - то приводим к виду Eth 1/x, Если вилан - то VLAN x
08:42
ну и арифметика - надо отнимать 4000 от х во втором случае
zi_rus #
08:43
это где так? на длинках та же история
_4ePTeHok #
08:44
ежик
08:46
иначе названия ифейсов в инвентори, cli, syslog будут разниться с snmp
dvolodin #
08:48
convert_interface_name сделай для профиля
zi_rus #
08:48
_4ePTeHok, а IF-MIB::ifType какой отдается?
_4ePTeHok #
08:50
для порта ethernetCsmacd(6)
08:50
вилан - other(1)
08:50
но как его привязать я хз
08:50
в трапе нету iftype
08:50
опять костыль писать какой то
zi_rus #
08:51
с инвентори связать?
_4ePTeHok #
08:51
ну я и говорю - это костыль уже
08:51
в инвентори не хранится iftype.
zi_rus #
08:51
ну почему, зато универсльно, если сразу в ноке сделать возможность
08:52
но это не ктебе видимо вопрос
_4ePTeHok #
08:53
zi_rus, проблема то в чем - если дискавери брал из cli ифейсы в БД - то не будет там даже ifindex
zi_rus #
08:54
_4ePTeHok, он возьмет из кли, если нет снмп, а если нет снмп то и трапов не будет, а только сислог. я так думаю
_4ePTeHok #
08:55
ну как сказать.
zi_rus #
08:55
как?
08:56
я еще на самом деле не понял что ты там пишешь
_4ePTeHok #
08:57
возможность прописать в MO snmp trap community, при этом не заполнив RO/RW community же есть?)
zi_rus #
08:57
просто у разных производителей, как я погляжу, свой взгляд на то как раздавать ifindex в снмп
_4ePTeHok #
08:57
пишу правила классификации в FM
08:58
стремясь свести названия ифейсов к тому что на железке
08:58
чтобы корелляция была с инвентори верная
zi_rus #
08:59
и в трапе приходит индекс, ясно.
09:01
хранить в базе инвентори индекс для каждого интерфейса? если снмп не включен, попробовать генерировать его скриптом, для каждого профиля свой скрипт? мне так кажется правильней. dvolodin что думаешь?
09:01
или я опять начинаю бредить?
09:08
это и фм помощь и другим пригодится. как например будут дергаться счетчики с железки когда графики будут рисоваться? откуда будет номер интерфейса для запроса браться?
_4ePTeHok #
09:10
хех..а уже есть
09:10
def convert_interface_name(self, s):
09:10
s = s.replace(" ", " ")
09:10
return s.replace("/ ", "/")
zi_rus #
09:10
а это для кого/чего? в очередном скрипте костыль приделали?
_4ePTeHok #
09:11
в профиле
09:11
видимо для нормализации имен.
09:11
как сюда прикрутить еще снмп-шные ...
10:09
как думаете, что это за ip-такой) "=D5l=D1=09"
10:09
в общем временно сделал в правиле что все ифейсы пишутся Eth 1/x )
10:10
все равно VLAN не наблюдаю
10:10
на L2
10:10
а ойпишничек этот ежик выдает в трапе аутентификации. я даже хз как декодировать 3х октетный ip с хз каким первым окетом)
10:18
вот и попробуй скоррелировать 2 трапа - один с IP, второй без IP
10:40
мде, логика непостижима. отключаешь snmp трап авторизации - в syslog оно тоже пропадает.)
10:42
А кто у нас давит двойные трапы? чот у меня не отрабатывает эта штука.
dvolodin #
10:45
ifindex хранится в inventory
_4ePTeHok #
10:47
он да, если снялся по snmp
mikevlz|3 #
10:47
УРАБЛЯДЬ!
10:47
я ее подебил!
_4ePTeHok #
10:48
dvolodin, есть ли мезанизм склеивать ивенты(snmp+syslog) в 1?
10:48
с давилкой ping ok вроде было же что то
mikevlz|3 #
10:48
Brocade.IronWare.get_fqdn у меня не мог дождаться промпта. все дело в волшебных, мать их, пузырьках
dvolodin #
10:48
не только по snmp
10:49
ftos и junos их в cli отдают
mikevlz|3 #
10:49
CLI_TIMEOUT=9000 спас отца русской демократии
dvolodin #
10:49
ой
mikevlz|3 #
10:49
:)
10:49
эт я для гарантии такое дикое значение поставил
11:16
dvolodin: а для профиля или железки целиком можно сделать единый CLI_TIMEOUT? а то get_fdp_neghbors требует get_fqdn. Так на get_fqdn оно опять отваливается...
11:16
хотя в get_fqdn прописаны и таймаут и кли_таймаут
dvolodin #
11:17
mikevlz|3: пока - нет
mikevlz|3 #
11:17
фигова...
11:18
придется по всем скриптам тогда в профиле пробежаться, сделать там офигевший таймаут
ufir #
11:23
да
11:23
так я и сделал
_4ePTeHok #
11:29
подскажите ApmeM'у на генту какой polling_method выставить
11:29
select видимо "того".
ApmeM #
11:35
а какие еще polling_method бывают? буду разные пробовать
_4ePTeHok #
11:36
# Possible selections are:
11:36
# * optimal - auto-detect best supported method
11:36
# * select - use select()
11:36
# * poll - use poll()
11:36
# * kevent - use kevent/kqueue
11:37
главное обновись до текущего, последнее время активно пилили..
dvolodin #
11:37
epoll еще есть
11:38
итого по планам у нас
11:38
распилить noc-discovery на job'ы
_4ePTeHok #
11:38
ну я давно не обновлялся)
dvolodin #
11:38
это еще день два
11:38
а потом на недельку наваливаемся и давим все баги, которых наплодили
`kk #
11:40
epoll нету в etc/noc.defaults -(
_4ePTeHok #
11:40
потяну ка я еще с обновлением)))
dvolodin #
11:40
потяни, да
11:40
в продуктив еще на неделю где-то не стоит ставить
_4ePTeHok #
11:42
dvolodin, главное затащи в монго побольше инфы со свитчей. Чтобы уже была конкретная площадка для инвентори
dvolodin #
11:43
get_interfaces и так очень подробный
_4ePTeHok #
11:43
ну вот будет в инвентори интерфейс писаться для свитчей. А тут бац - у нас есть в БД серийник, версия ПО
dvolodin #
11:43
просто нам надо еще лепить hardware discovery, и прочее
11:44
а текущий демон уже распух до ужаса
_4ePTeHok #
11:44
и не надо извращаться с дерганием
Guest7-ru #
11:44
У меня на Дженте epoll кажись. Хоть думаю проблема не в этом.
dvolodin #
11:44
если модуль становится больше 1000 строчек, надо пилить его беспощадно на части
Guest7-ru #
11:51
В инвентори стоит положить также инфу с get_copper_tdr_diag - провода, get_dom_status - SFP, да и get_version тоже не помешает..
11:53
polling_method всюду стоит select
11:54
Это я в ядре epoll гдето кажись ставил.
dvolodin #
11:59
у меня сейчас select сорвался в цикл
12:02
не успел отловить причину
ApmeM #
12:02
попробовал уже все методы для polling_method. вот дебаг http://pastebin.com/uVZxs8Gj
12:02
не работает только для еджкоров
dvolodin #
12:03
на telnet negotiation виснет
12:03
железка ему не отвечает
ApmeM #
12:04
проверил. железка отвечает. проверял с машины где стоит noc
_4ePTeHok #
12:05
2012-09-04 17:11:59,135 Setting up 'kevent' polling method
12:05
2012-09-04 17:11:59,136 Activating 'select' poller
12:05
а это как вообще
freeseacher #
12:06
http://kb.nocproject.org/pages/viewpage.action?pageId=7143508 вот написал таки
12:06
прошу сильно не пинать перл не знаю, но ненавижу :)
ApmeM #
12:07
<_4ePTeHok>, если вернуть select, то картина не меняется
mikevlz|3 #
12:16
freeseacher: компактно получилось
freeseacher #
12:16
меня пугают что LWP не кросплатформенна.
12:16
но я хз
12:18
кто бы сделал create
zi_rus #
12:19
dvolodin, csv-export для vc.vc работает?
12:23
работает
12:35
эх, все равно не получается
dvolodin #
12:38
freeseacher: а что на питоне не стали делать?
12:39
там же проще будет
freeseacher #
12:39
стали :)
12:39
там тоже просто.
dvolodin #
12:39
:)
freeseacher #
12:39
но именно по перлу было больше всего дай
12:39
еаваял отправил туда
12:39
*наваял
zi_rus #
12:41
есть ли какой-нибудь извращенный способ из нока вытащить список всех л3-физических портов и всех л2-антагед?
freeseacher #
12:46
dvolodin, перл ужас нах. когда его при мне отлаживали я прям боялся. спец симполы херачили пачками.
12:46
zi_rus, mongo консоль ?
zi_rus #
12:46
freeseacher, хуже перла
freeseacher #
12:47
:)) верю
zi_rus #
12:47
придется руками костылять чего-нибудь
dvolodin #
12:48
zi_rus: есть, через python API
12:48
прямой до ужаса
zi_rus #
12:49
а дока/инструкция?
dvolodin #
12:49
mongoengine.org
ApmeM #
12:49
<dvolodin>, подскажи что еще можно проверить? для всех железок скрипты отрабатывают, а для еджкоров 3510МА нет. polling_method не влияет никак. проверил. по телнету к железкам подключаюсь, а через скрипты нет.
dvolodin #
12:49
inv/models/subinterface.py
12:50
tcpdump'ом посмотри
12:57
попакетно
12:57
в чем разница
zi_rus #
13:04
чего-то не тащу
ApmeM #
13:16
<dvolodin>, посмотрел. такое впечатление, что еждкоры не отправляют приглашение на ввод логина и пароля. если я правильно понял
dvolodin #
13:17
telnet negotiation смотри
13:17
какие IAC отправляет ему консольный telnet, и какие - NOC
zi_rus #
13:29
dvolodin, если писать x:a это значит когда х=а, а как сказать не равно
13:30
не null, не пустой...
13:33
нашел
dvolodin #
13:33
.except
13:33
или $not в монге
13:35
одну из причин залипания поллера наше
13:35
если второй конец отваливается в процессе записи
zi_rus #
13:39
$not не катит, $ne рпботает, но странно
13:42
freeseacher, я помню ты тут тоже чего-то пишешь, можешь подсказать, как вообще, допустим из питоновского скрипта сделать какой-то запрос в монге? что-то в ответ получить, видимо то что вы называете json, и как с этим дальше жить. вопросы такие потому что просто
13:42
методом тыка приходится действовать
13:45
dvolodin, в поле managed_object стоит циферка, а как узнать, за каким числом какой МО стоит?
dvolodin #
13:45
в постгресе
13:45
в таблице sa_managedobject
zi_rus #
13:46
ой мля
13:46
вот попадалово
dvolodin #
13:46
l2 untagged так выдерешь
13:46
./noc shell
13:47
from noc.inv.models import subinterface
13:47
SubInterface.objects.filter(is_bridge=True, untagged_vlan__isnull=False)
zi_rus #
13:48
name 'SubInterface' is not defined
13:49
я вот так в консоли монги делаю
13:49
db.noc.subinterfaces.find( {untagged_vlan : { $ne : null }}, {tagged_vlans : null} ).forEach(printjson);
13:50
выхерачивает все
13:53
а надо только МО-interface-vlan, да еще и названия мо лежат в другой базе
14:00
видимо все же придется на котялях вылезать, пройдусь по железкам с помощью нока всякими sh int status, потому что вот так с БД работать тяжко, чуствуешь себя ребенком который смотрит как чинят двигатель у Волги
Tweet
Share this page
Share this page: Tweet