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: 05.12.2014
qtmn #
05:57
все доброго
05:57
сменил язык в профиле пользователя admin и пиздец
05:57
вебка перестала работать)
freeseacher #
06:00
не язык ты сменил
06:00
а тему
06:00
из-за этого не работает
06:01
в консоли постгреса update main_userprofile set preferred_language='en', theme='gray';
TSergey #
06:10
https://kb.nocproject.org/display/~evyscr/Change+user's+theme+via+console
qtmn #
06:22
блин, NOC - не очень хороший вариант в плане seo
06:22
имя тоесть
e_zombie #
07:00
,,
zi_home #
07:16
dvolodin, пишу хендлер, можешь глянуть, я нигде не накосячил, перед тем как начать тестирование
07:17
dvolodin, вот такой http://pastebin.com/fCm3kLxm
mpanait #
07:18
..
qtmn #
07:22
А где редактируются профили линков на карте? нужно нарисовать радио линк для одной железяки, для которой нет профиля в ноке
07:23
Inventory-Setup-Connection Types ?
TSergey #
07:30
а нок видит у железки порты?
dvolodin #
07:32
zi_home: хочешь реагировать на dying gasp только если он от своих железок?
qtmn #
07:32
вот, это вопрос номер два, я написал скрипт который выдаёт json, как теперь его запилить в нок? =)
07:32
есть вообще чтиво какое-нибудь по добавлению железок
07:32
для которыйх нет профилей
dvolodin #
07:32
сразу сходу -- вынеси alarm_class из функции наверх в модуль
TSergey #
07:33
qtmn: давай про первый
e_zombie #
07:33
qtmn: берёшь профиль для циски или джунипера и на основании его делаешь профиль
TSergey #
07:33
qtmn: как ты будешь ликовать железку, у кторой нок не знает порты?
07:33
*линковать
zi_home #
07:33
dvolodin, нет, хочу поднимать аларм на сосденюю железку по ивенту от этой
07:33
managed_object = i.link.other(i)[0].managed_object
dvolodin #
07:33
да, я вижу
07:34
итого -- alarm_class -- наверх
07:34
это константа
07:34
Interface.objects.get замени
07:34
на Interface.objects.filter(...).first()
07:34
и далеее
07:34
if not i:
07:35
return
qtmn #
07:35
TSergey: по lldp, есть скрипт, как его передать ноку, чтобы он брал порты
zi_home #
07:35
dvolodin, эмм, а зачем get заменять так?
dvolodin #
07:35
если у тебя не будет интерфейса в базе get поднимет DoesNotExist
07:35
и твой handler вылетит
TSergey #
07:35
qtmn: у железки, у которой нет профиля, в ноке есть порты?
dvolodin #
07:35
и событие уйдет в failed exceptions
07:35
failed events
07:35
далее по логике
zi_home #
07:35
dvolodin, у меня еще вопрос, правильно ли я делаю raise аларма через ActiveAlarm(...).save()
TSergey #
07:36
qtmn: нет портов --- невозможно ее слинковать
zi_home #
07:36
и правильно ли я передаю туда vars
dvolodin #
07:36
да, правильно
qtmn #
07:36
TSergey: в том и вопрос, как добавить порты в нок?
dvolodin #
07:36
только тебе еще event'у надо этот alarm прописать
qtmn #
07:36
TSergey: самописный скрипт выдаёт json с портами, как его интегрировать в нок?
dvolodin #
07:36
и тут еще такой момент
TSergey #
07:36
qtmn: сделать профиль, написать get_interfaces
dvolodin #
07:37
тебе сначала надо проверить, что такого alarm'а еще нет
07:37
то есть сначала ты ищешь active alarm
qtmn #
07:37
TSergey: понял, щас попробую
dvolodin #
07:37
если есть -- цепляешь к нему event
zi_home #
07:37
dvolodin, а вот это был второй вопрос
07:37
а если он есть нок просто дубликат не спрячет?
dvolodin #
07:37
если нет -- поднимаешь
07:37
не спрячет
07:38
или надо извернуться и отдать аларм кореллятору
zi_home #
07:38
ясно, проще проверить
dvolodin #
07:39
посмотри
07:39
classifier/__init__.py
07:39
692 строчка
zi_home #
07:39
dvolodin, возможна ли такая ситуация, что в момент появления ивента и срабатывания хендлера того аларма еще нет, но пока выполняется код, он может появиться
dvolodin #
07:40
zi_home: для этого коррелятор и нужен как отдельный процесс
07:41
смотри
07:41
видишь, там сначала идет вызов всех handler'ов для класса
zi_home #
07:41
да
07:41
но я про другое
07:42
смотри
07:42
dying-gasp primary ethernet-oam secondary syslog
07:42
железка сначала посылает сообщение по ОАМ, а потом если успеет то и в сислог
07:42
и это два разных сообщения
dvolodin #
07:43
а это дедупликация
zi_home #
07:43
вот
dvolodin #
07:43
пройдись по функции classify_event
07:43
поймешь
zi_home #
07:43
эхх
07:43
не пойму
dvolodin #
07:43
о
zi_home #
07:43
я твой код не понимаю :)
dvolodin #
07:43
кстати
07:43
все не так
07:44
тебе нужно не alarm поднимать
zi_home #
07:44
а мвент генерить?
07:44
*ивент
07:44
тоже вариант
07:45
но тогда у одного сообщения будет сразу два ивента
07:45
в принципе пох, но выглядит как-то некрасиво
07:45
или что ты хотел сказать?
dvolodin #
07:47
так вот
07:47
не надо alarm поднимать
07:47
совсем
07:47
нужно просто на event'е поменять managed object
07:47
:)
zi_home #
07:48
хм
07:48
грязный хак
07:49
dvolodin, а ивент классифицировать как?
07:49
делать отдельный класс и менять МО и класс
07:49
или использовать существующий?
07:49
но тогда если линка не будет нок будет неправильно рейзить алармы
dvolodin #
07:49
просто классифицировать его сразу как отказ по питанию
zi_home #
07:50
dvolodin, хендлер будет срабатывать ДО поднятия аларма и все подмены подменятся?
dvolodin #
07:50
да
07:51
погоди, дай подумаю, как попрямее сделать
zi_home #
07:51
dvolodin, если илнка не будет, он не сможет сделать подмену и поднимет аларм не на ту железку
qtmn #
07:52
TSergey: Вот написал я скрипт для дисковеринга интерфейсов, положил его в папку профиля. Как теперь сказать ноку, чтобы он брал его?
07:52
а то пишет, что Error: Invalid script 'InfiNet.WANFlexX.get_interfaces'
dvolodin #
07:58
zi_home: мне кажется там проще все
07:58
нужно просто сказать, что этот event поднимает alarm Chassis | PSU | Power Failed
07:59
dying gasp у нас уже в репо?
qtmn #
08:00
как свой скрипт то добавить? Не могу нигде найти
dvolodin #
08:03
просто положить файл get_interfaces.py в нужный каталог
08:03
и проверить ./noc debug-script
qtmn #
08:03
ну я так и сделал
dvolodin #
08:04
заработало?
qtmn #
08:04
нет
08:04
root@noc:/opt/noc/sa/profiles/InfiNet/WANFlexX# ls -l get_interfaces.py
08:04
-rw-r--r-- 1 root root 1010 Дек 5 10:47 get_interfaces.py
08:04
2014-12-05 11:04:19,290 Error: Invalid script 'InfiNet.WANFlexX.get_interfaces'
08:04
блин, права ж не дал на выполнение
dvolodin #
08:05
они ему не нужны
qtmn #
08:05
не заработало тогда)
dvolodin #
08:05
а в get_interfaces имя скрипта нормально прописано?
08:05
в name
qtmn #
08:05
вижу ошибку, спасибо
zi_home #
08:06
dvolodin, но сообщение приходит не от той железки где произошла авария
dvolodin #
08:06
это нормально
08:06
аварию можно поднять и на другую
zi_home #
08:06
и как?
dvolodin #
08:06
кинь мне json с event'ом
zi_home #
08:11
dvolodin, вот так
08:11
http://pastebin.com/giVBk2UT
dvolodin #
08:14
eventclass твой?
zi_home #
08:15
не совсем
08:15
со вторым Дмитрием его делали когда-то
08:15
так как на выходе ничего дельного не получилось то можно что-то переделать
dvolodin #
08:17
да
08:17
там надо переделать название класса
08:17
что-то типа Remote Power Failure
zi_home #
08:20
dvolodin, а нок смотжел под этот аларм скоррелировать Link Down и не поднимать его?
08:21
а еще под Reboot
dvolodin #
08:21
да
zi_home #
08:21
крутта
dvolodin #
08:23
доделаю импорт из rancid - займусь
08:24
там еще в базу правильные данные залить нужно
08:24
чтобы проверить все
freeseacher #
08:24
а ведь импорт из ранцида мог оказаться просто одним из механизмов mo discovery
zi_home #
08:25
freeseacher, тебе не кажется что функционал пересекается и один просто должен заменить другой?
dvolodin #
08:25
freeseacher: это все-таки разовая операция
08:26
взял нок - перетащил все из rancid и забыл последний
freeseacher #
08:26
ну разовая то разовая...
08:26
но вариант то был был красивый
08:26
mo discovery из альтернативных систем
08:26
из заббикса например
08:26
ух
08:27
или не дай бог из какого нить тивали или вообще оранжевых
08:28
разворачиваешь нок и внедряешь его параллельно основным ситемам а потом их замещаешь
dvolodin #
08:29
по последним двум случаям не вижу проблем
08:29
точнее самая большая проблема -- поставить ораклового клиента :)
08:30
уж чего-чего, а топологию NOC получше определяет ;)
08:30
там как бы не запросили в обратную сторону ее отдавать :)
freeseacher #
08:30
вот вот. надо обобщенный механизм таки делать :)
dvolodin #
08:32
только это не совсем discovery
08:32
скорее -- узконаправленый ETL
08:33
и основная сложность скорее -- какой-то API сделать для плагинов
08:34
типа раздельно -- импорт/экспорт
08:34
и у кажного -- забрать managed object'ы / отдать managed object'ы
Huko2 #
09:09
А по какому принципу показывает мас в MacDB именно на этом одном интерфейсе ?
TSergey_ #
09:12
где найден в последнем дискавери
09:13
ткни в него, покажет где он еще был
Huko2 #
09:19
класс %-)
09:21
правда запускаю мак-дискавери там где мак этот есть но в MacDB его в упор не показывает
TSergey_ #
09:27
нужно чтоб профиль порта был настроен
09:27
Inventory \ Setup \ Interface Profiles
09:28
и в профиле МО включен мак дискавери
Huko2 #
09:34
там включено, маки собираются
09:35
через скрипт мак виден, но в MacDB не попадает, может еще что-то запустить надо
e_zombie #
09:36
https://pp.vk.me/c7006/v7006076/19943/I1ce59S2bDg.jpg
Kostua #
09:44
катаны, а как вернуть к жизни хост у котрого был аларм Host Down, он уже поднялся
09:44
?
dvolodin #
09:45
сам должен подняться
Kostua #
09:45
в ноке все равно пишет Host Down, c консоли нока всё ок
09:45
у него сменился айпишник
dvolodin #
09:49
а
09:49
ну закрой alarm руками
TSergey_ #
09:50
Huko2: а профиль для интерфейса у тебя один?
Kostua #
09:50
да, спасибо, закрыл аларм - всё заработало
09:50
шото тупанул я
Huko2 #
09:53
TSergey_: да, один
TSergey_ #
09:55
странно
09:55
а в MacDB последние найдены когда?
09:55
может сортировка
tat100kai #
09:56
Доброго времени суток! Возникла проблема с ноком следующего порядка: бъет ошибку Activator pool is down. ip и secret в конф-файле и веб-интерфейсе совпадают, а в noc-activator.0.log сыпется сообщение Negotiation protocol 'NOC SAE PROTOCOL (http://nocproject.org/)' version '1.0'.Кто сталкивалс
freeseacher #
09:58
tat100kai, не пиши длинные фразы.
09:58
ирц их фигово показывает :)
tat100kai #
09:59
Ок) Изложу короче)
09:59
Ошибка вылезает Activator pool is down
09:59
ip и secret в конф-файле и веб-интерфейсе совпадают
09:59
в логи сыплется Negotiation protocol 'NOC SAE PROTOCOL (http://nocproject.org/)' version '1.0
freeseacher #
09:59
это последнее сообщение ?
tat100kai #
10:00
С чем может быть связано, подскажите пожалуйста, кто сталкивался.
freeseacher #
10:00
попробуй ./scripts/noc-activator.py -f start
tat100kai #
10:00
Ситуация не меняется, пробовал
freeseacher #
10:00
с -f оно сильно умнее получается
10:00
при этом активатор цепляется к Sae
10:01
что в логах sae ?
tat100kai #
10:02
Activator pool 'default' is not available
freeseacher #
10:03
активатор и сае на одном хосте ?
tat100kai #
10:03
Да
TSergey_ #
10:05
"Activator pool is down" у меня лечится только рестартом
freeseacher #
10:05
может адовый LA ?
tat100kai #
10:06
Рестартом нока или всей машины?
10:07
<freeseacher>, пардон мою неграмотность, но LA это что?О_о
freeseacher #
10:07
нока
10:07
La - load avarage
tat100kai #
10:07
Не помогает
10:09
Если я правильно понял, LA это нагрузка от выполняемых одновременно задач?
freeseacher #
10:09
команда uptime чего говорит ?
10:09
да. если грубо высокая загрузка проца
tat100kai #
10:09
load average: 3,95, 4,00, 3,93
freeseacher #
10:10
с учетом того что ты сразу сказал слово `логи` глупые проверки я пропускаю
tat100kai #
10:10
Глупые проверки это что например?
10:11
Ничего нельзя исключать, я сетевик, а не сервачник)
freeseacher #
10:11
ну типа очепятки
tat100kai #
10:13
Ясно) Возможно ли, что проблема в большом количестве устройств на одной инсталяции?
freeseacher #
10:14
много это сколько ?
tat100kai #
10:14
13068
freeseacher #
10:14
да. многовато.
10:14
у меня максимум 6к было
10:14
оно вообще работало ?
tat100kai #
10:14
Работало сутки)
TSergey_ #
10:15
max_scripts?
zi_home #
10:15
да ладно, dvolodin хвастался что нок миллионы может переварить
freeseacher #
10:15
TSergey_, max_scripts это на девайс
10:15
мне кажется что тут что то веселее
tat100kai #
10:16
по дефолту 10 оставил
TSergey_ #
10:16
мне кажется, что я несколько раз тут повышал, что бы избежать "все активаторы заняты"
zi_home #
10:16
сколько активаторов в пуле?
TSergey_ #
10:17
tat100kai: у меня 100, на 1000 мо
tat100kai #
10:17
1. default.
zi_home #
10:17
нет
10:17
сколько инстансов
10:17
но полагаю что тоже один :)
freeseacher #
10:17
мне кажется что к моменту когда приходит активтаор у сае уже многовато работы
10:17
и он не успевает регнуть активатор
10:17
я такое видел
e_zombie #
10:18
вот вот
freeseacher #
10:18
потому про la и спрашиваю
e_zombie #
10:18
есть такая байда на старте
zi_home #
10:18
freeseacher, если там один активатор на столько железок я не удивлюсь что он просто раком встает
freeseacher #
10:18
tat100kai, наверное не очень плохая идея для такого колва железяк сделать болье активаторов
10:18
при это в идеале раскидать их по ддругим машинкам
tat100kai #
10:19
Я не добавлял активаторы. Вообще не лез так глубоко. Знакомлюсь только еще с ноком)
TSergey_ #
10:19
неслабо ты знакомишься
zi_home #
10:19
сколько ядер у проца
10:19
на сервере
TSergey_ #
10:19
tat100kai: а как заливал такое количество МО?
tat100kai #
10:19
4
10:19
Списком, через импорт CSV
zi_home #
10:20
насчтрой лаунчер так и перезапустись
10:20
[noc-activator]
10:20
enabled = true
10:20
user = root
10:20
group =
10:20
config.0 = etc/noc-activator.conf
10:20
config.1 = etc/noc-activator.conf
10:20
config.2 = etc/noc-activator.conf
10:20
config.3 = etc/noc-activator.conf
10:24
и таймеры для дискавери можно задрать некоторые
10:24
некоторые вещи нет никакого смысла дискаверить раз в сутки
10:24
а другие вообще нет смысла дискаверить
tat100kai #
10:29
Он у меня только конфиги и версии дискаверит. Раз в сутки. Опять сбой при выполнении разового скрипта.
10:29
В этот раз даже без коммента и трэсбэка
10:30
4гб оперы под завязку забил
10:35
В общем, спасибо огромное! Попытаюсь разгрузить его.
TSergey_ #
10:39
tat100kai: а чего в SA \ Reports \ Active Map
10:39
и в SA \Monitor
zi_home #
10:41
если плохо SAE то с этим ничего не сделаешь
10:42
а если активаторам, то можн действительно взять несокльок серверов и поднять там еще инстансы
10:42
в топе можно посмотреть какой демон больше грузится
TSergey_ #
10:42
у меня 5 тасков, на 1000 МО
10:42
у него должно быть 65
zi_home #
10:44
каких тасков?
tat100kai #
10:44
Последние задания все зафейлены, а в начале куча тасков в ожидании висит
10:44
в топе больше всего выедают питон и сае
zi_home #
10:45
значит возможно дело в сае
TSergey_ #
10:45
"Active Map / Reduce tasks"
10:45
tat100kai: не стал менять max_scripts?
tat100kai #
10:45
А как-то возможно отменить выполнение скриптов, которые в ожидании висят?
10:46
Не пока. На сколько лучше поменять? на 65?
zi_home #
10:46
может и можно, но это не решение проблемы
TSergey_ #
10:46
у меня 100
zi_home #
10:46
если оно возникло то может повториться
TSergey_ #
10:47
здесь что: SA \Monitor
evyscr #
10:47
он сам зафейлится же
zi_home #
10:47
может быть отключить сбор конфигов и прочего пока не рассосется
10:47
и кстати
10:48
там по дефолту минимальный таймаут 10минут
10:48
если задача фейлится он ее перешедкуливает
10:48
и они лавиной накапливаются
TSergey_ #
10:48
tat100kai: здесь что: SA \Monitor
zi_home #
10:48
можно поднять минимальный период
tat100kai #
10:49
TSergey_: Эм... Failed toget data
TSergey_ #
10:50
поднимай max_scripts до 100 и рестартуй, и смотри чего покажет SA \Monitor
10:51
и может еще отрубить конфиг дискавери и посмотреть, справляется ли на версион дискавери
tat100kai #
10:54
TSergey_: Поднял до 1000 и рестартнул. Так же фейлит пока. Отключаю сбор конфигов и версий
evyscr #
10:56
tat100kai: если что, на предмет заданий в монге смотреть всякие db.noc.schedules*
TSergey_ #
10:56
у меня не было фэйла в SA \Monitor, тут только смотреть
evyscr #
10:57
он фейлится
10:57
не читай меня @ продолжай страдать
TSergey_ #
10:57
tat100kai: вот так я числи вайпы:
10:57
mongo noc
10:57
db.noc.schedules.main.jobs.remove({"jcls" : "sa.wipe_managedobject"})
10:57
db.noc.schedules.main.jobs.runCommand("compact");
10:57
quit()
evyscr #
10:58
зачем здесь вайпы?
10:58
там скорее db.noc.schedules.inv.discovery
freeseacher #
11:00
tat100kai, знакомишься с ноком ?
11:00
что бы сейчас не биться сразу с масштабированием квеньши колво mo до 1000-2000
11:00
*уменьши
11:01
ибо для переваривания 13к надо тюнить систему
11:01
и быть готовым к появлению такого кова объектов
tat100kai #
11:02
Ок, спасибо. Буду пробовать.
freeseacher #
11:02
у тя сейчас develop ветка ?
tat100kai #
11:03
freeseacher: На сколько её протюнить желательно? 4х процов хватает. На 50% только загружены. Оперы надо добавить, видимо?
freeseacher #
11:04
на самом деле надо понимать чег оу тя будет делать нок
TSergey_ #
11:05
"8[16:58] evyscr: зачем здесь вайпы?"
11:05
как пример чистки заданий
freeseacher #
11:06
если только конфиги собирать это 86400 / 13000 = 0,15 объекта в секунду. при оптимально распеределении заданий
11:07
но потом как правило входят во вкус.
11:07
и ипам подавай
11:07
и инвентаризацию
11:07
и карту сети
11:07
и графики
TSergey_ #
11:07
фм
freeseacher #
11:08
да fault
11:08
важно скажи на какой ты сейчас ветке
11:08
/opt/noc # ./scripts/about
11:09
на 0,8 нок был теплым и ламповым. сразу всю сеть опрашивать не хотел.
tat100kai #
11:09
freeseacher: Извини, не совсем тебя понял. На какой ветке где?
freeseacher #
11:09
а сейчас суко злой бульдог. упирается только в ресурсы опросной машины
TSergey_ #
11:09
tat100kai: Main \ Reports \ Version
tat100kai #
11:10
0,8
TSergey_ #
11:10
бинго
11:10
нужно обновляться до develop
tat100kai #
11:12
TSergey_: Спасибо, буду пробовать.
TSergey_ #
11:12
https://kb.nocproject.org/display/DOC/Upgrade
qtmn #
11:13
Друзья, ткните носом что не так: get_interfaces.py - http://pastebin.com/iphvhLwN, список интерфейсов в таком виде- http://pastebin.com/pvm4iy5s
freeseacher #
11:14
tat100kai, ты, если вдруг понравитсья, нок, не морочься, сразу ставь стационарный irc клиент.
11:14
по факту это камунити единственная документация и площадка поддержки и содружество пользователей.
tat100kai #
11:14
freeseacher: Ок, спасибо, так и сделаю)
TSergey_ #
11:17
qtmn: https://bitbucket.org/nocproject/noc/src/5d2605923d46e11aa9e068868dbbbb00b82f2ed8/sa/interfaces/igetinterfaces.py?at=develop
qtmn #
11:19
я не на столько разработчик чтобы сложив в сорца понять что не так (
11:19
думал кто подскажет
TSergey_ #
11:19
это описание класса
11:19
смотри чего должно быть в интерфейсах
qtmn #
11:21
да вроде всё так
TSergey_ #
11:21
эээ
11:22
ты разбираешь name и type и все?
qtmn #
11:22
ага
TSergey_ #
11:22
и говоришь "да вроде всё так" ?
qtmn #
11:23
хм
11:23
я ж говорю я не разработчик))
TSergey_ #
11:24
ну или учись или жди пока кто-то сделает
qtmn #
11:25
я пытаюсь учиться. вот бы кто показал что у меня не так в скрипте, я бы быстрее научился)
TSergey_ #
11:26
так а где дебаг того, что выдает get_interfaces?
qtmn #
11:26
ща
TSergey_ #
11:27
у меня полчаса :)
qtmn #
11:28
http://pastebin.com/rGPHu5pU
11:28
ой
11:28
ага он
TSergey_ #
11:30
'interfaces': []
11:30
--- нету у тебя интерфейсов :)
qtmn #
11:31
регексп вроде верный
TSergey_ #
11:31
как проверял?
qtmn #
11:32
http://pythex.org/
11:32
с питоном я вообще начал знакомиться вместе с ноком
11:32
поэтому вот
TSergey_ #
11:34
не, регэксп неверный
qtmn #
11:35
подправил только что
11:35
всё получилось
11:35
[{'forwarding_instance': 'default',
11:35
'interfaces': [{'admin_status': False,
11:35
'name': 'eth0',
11:35
'oper_status': False,
11:35
'subinterfaces': [],
11:35
'type': 'physical'}],
11:35
'type': 'ip'}]
11:35
збс
11:35
спасибо)
Huko2 #
11:36
на ванфлексах была команда ifconfig
TSergey_ #
11:36
qtmn: да я ничего и не сделал :)
qtmn #
11:37
TSergey_: направлял в нужное русло)
11:37
Huko2: в режиме гостя не работает
Huko2 #
11:38
кроме con show ничего не работает ?
qtmn #
11:38
mint ещё
TSergey_ #
11:38
qtmn: я в шелле проверяю (./noc shell)
qtmn #
11:39
а как удобней проверять?
11:40
регексп туда копипастить?
TSergey_ #
11:40
ну собственно заходим в шелл
11:40
и затем
11:40
import re
11:40
txt = """
11:40
ifc lo0 127.0.0.1/8
11:40
ifc eth0 media auto mtu 1500 up
11:40
ifc eth1 media auto mtu 1500 up
11:40
"""
11:40
rx_iface = re.compile(r"^\sifc\s(?P<name>\S+)\s+media\S+$", re.MULTILINE | re.DOTALL)
11:40
for match in rx_iface.finditer(txt):
11:40
print match
11:40
только с отступами правильными
qtmn #
11:41
оо спасибо
11:41
а вообще по питончику книжку можно какую почитать или лучше по оф доке?
11:42
или лучше и книжку и по оф доке?)
TSergey_ #
11:44
я гуглил
11:44
но я и не разработчик
11:44
qtmn: так и чего, теперь нок виит интерфейсы?
11:44
*видит?
qtmn #
11:45
ну не совсем
11:45
да почемуто только один
11:45
хотя мультилай стоит
11:46
или я херню спорол
11:46
о всё
11:46
ошибка была
11:46
все интерфейсы находит
TSergey_ #
11:46
ну я написал как проверять :)
qtmn #
11:47
только почемуто rf4.0 обрезает до rf4
11:47
где править?
evyscr #
11:48
qtmn: по книжкам тут пропагандируют за a bite of python
qtmn #
11:48
ага видал такую
TSergey_ #
11:48
qtmn: \S+ --- это же слово
qtmn #
11:50
.* тоже обрезает
11:51
rf4. получается
TSergey_ #
11:51
rx_iface = re.compile(r"^\sifc\s(?P<name>[\S]+)\s+media", re.MULTILINE | re.DOTALL)
11:51
for match in rx_iface.finditer(txt):
11:51
print match.group("name")
qtmn #
11:53
так же
11:53
rx_iface = re.compile(r"\sifc\s(?P<name>[\S]+)\S+.*mtu\s\d+\s(?P<state>\S+)$", re.MULTILINE)
11:53
{'admin_status': False,
11:53
'name': 'rf4.',
11:53
'oper_status': False,
11:53
'state': 'up',
11:53
'subinterfaces': [],
11:53
'type': 'physical'}],
TSergey_ #
11:54
rx_iface = re.compile(r"^\sifc\s(?P<name>[\S]+)\s", re.MULTILINE | re.DOTALL)
11:54
сделай так
qtmn #
11:55
не, так не срабатывает
11:55
с ошибками валится
TSergey_ #
11:55
import re
11:55
>>> txt = """
11:55
... ifc lo0 127.0.0.1/8
11:55
... ifc eth0 media auto mtu 1500 up
11:55
... ifc eth1 media auto mtu 1500 up
11:55
... ifc rf4.0 mtu 1500
11:55
... """
11:55
>>> rx_iface = re.compile(r"^\sifc\s(?P<name>[\S]+)\s", re.MULTILINE | re.DOTALL)
11:55
>>> for match in rx_iface.finditer(txt):
11:55
... print match.group("name")
11:55
...
11:55
lo0
11:55
eth0
11:55
eth1
11:57
с какими ошибками?
11:57
в шелле разбирает
qtmn #
11:58
это я походу отступы не блюду
11:59
в шелле вообще не выполняется
evyscr #
11:59
+ и * - ваши друзья
TSergey_ #
11:59
из того что я выгрузил --- отступы только перед print, четыре пробела
qtmn #
11:59
>>> import re
11:59
>>> txt = """
11:59
... ifc lo0 127.0.0.1/8
11:59
... ifc eth0 media auto mtu 1500 up
11:59
... ifc eth1 media auto mtu 1500 up
11:59
... ifc rf4.0 mtu 1500
11:59
... """
11:59
>>> rx_iface = re.compile(r"^\sifc\s(?P<name>[\S]+)\s", re.MULTILINE | re.DOTALL)
11:59
>>> for match in rx_iface.finditer(txt):
12:00
... print match.group("name")
12:00
...
12:00
lo0
TSergey_ #
12:00
напиши print txt
qtmn #
12:01
ifc lo0 127.0.0.1/8
12:01
ifc eth0 media auto mtu 1500 up
12:01
ifc eth1 media auto mtu 1500 up
12:01
ifc rf4.0 mtu 1500
TSergey_ #
12:01
удачи, я убежал
qtmn #
12:01
пока)
Huko2 #
12:03
ноковский шел для расбора регекспов не самый удобный вариант, имхо
12:03
мне вот эта штука помогает http://www.pythonregex.com/
evyscr #
12:07
а смысл?
qtmn #
12:07
http://pythex.org/ этот удобней
evyscr #
12:07
там всё одно в простых вещах затык
12:08
типа ^\s*ifc
12:10
или в разнице \s и \S
qtmn #
12:10
не могу сообразить почему всё обрезается, подскажите что лучше поставить
12:10
\sifc\s(?P<name>\S+)\S+.*mtu\s\d+\s(?P<oper_status>\S+)$
12:10
rf4. показывает
Huko2 #
12:11
ifc\s+(?P<name>\S+) вытащит имя интерфейса
qtmn #
12:11
0 отрезает
evyscr #
12:11
не читай меня @ продолжай страдать (2)
qtmn #
12:11
о сделал
12:11
\sifc\s(?P<name>\S+).*mtu\s\d+\s(?P<oper_status>\S+)$
evyscr #
12:11
неверно
Huko2 #
12:11
на радио никакого статуса up не вижу
evyscr #
12:12
\s*ifc\s+(?P<name>\S+)\s+
qtmn #
12:12
кто-то не до конца скопировал просто
12:12
evyscr: тоже работает
evyscr #
12:13
ясен фиг
qtmn #
12:13
спасибо)
12:13
но мне надо ещё дальше парсить
Huko2 #
12:13
.*mtu таких конструкций лучше избегать
evyscr #
12:13
++
qtmn #
12:13
поэтому так: просто там неизвестно что может быть
Huko2 #
12:14
\s+mtu вполне подойдет
qtmn #
12:14
нет, там не пробелы
evyscr #
12:14
см ткж "жадность квантификатора"
qtmn #
12:14
а неизвестные символы, которых неизвестное количество
12:14
может vlan может media а можут хуй его знает что ещё будет
evyscr #
12:14
всё одно разделитель надо держать
12:15
без \s+ лучше не пытаться разбирать по частям
Huko2 #
12:15
если задача вытащить только статут - то я бы вообще забил и везде поставил True в скрипте жестко
qtmn #
12:15
\sifc\s(?P<name>\S+)\s+(?P<type>\S+)\s+(?P<speed>\S+)\s+mtu\s\d+\s(?P<oper_status>\S+)$
Huko2 #
12:16
статус т.е.
evyscr #
12:16
тут тоже может быть засада-)
12:16
если между именем и mtu только один пробел
qtmn #
12:17
а что значит True жёстко?
12:17
где это ставится?
Huko2 #
12:17
'oper_status': False,
12:18
Просто через принт вбить туда True
12:19
"admin_status": True , "oper_status": True,
12:19
как-то так
qtmn #
12:19
это в самом скрипте get_interfaces?
Huko2 #
12:20
да
12:22
изучение sa/interfaces/igetinterfaces.py прольет на многое свет
qtmn #
12:27
ну в общем сделал так: "\sifc\s(?P<name>\S+)\s+"
12:27
а как uniq то сделать?)
12:28
а то много раз один и тот же интерфейс будет показывать
12:30
разобрался
12:37
ну в общем, написал я get_interfaces, как теперь сделать так, чтобы он был в вебке нока доступен?
e_zombie #
12:38
у тебя в разделе скрипты у железке он отображается.
qtmn #
12:38
пусто
12:38
нок надо рестартить?
e_zombie #
12:39
не помешает
qtmn #
12:39
помогло
e_zombie #
12:40
благословняю тебя не великие дела :)
qtmn #
12:41
:)
buggy-funhouse #
13:06
Приветы
13:06
как у всех дела?
dvolodin #
13:06
теперь NOC умеет драть интерфейсы с инфинетов?
buggy-funhouse #
13:08
dvolodin: скажи пожалуйста, как правильно удалить mercurial и поставить снова?
Huko2 #
13:09
изменил топологию но Network Map по прежнему показывает старый вариант. Что и кому сказать что произошли изменения ?
buggy-funhouse #
13:10
запусти discovery?
Huko2 #
13:10
ну начал я с этого
13:10
запускал, перегружал нок, но не помогает
qtmn #
13:18
dvolodin: да, ну я допилю ещё lldp и сделаю коммит или как он там называется
13:18
на счёт всех инфинетов хер его знает, но на r5000 будет работать
dvolodin #
13:30
модельки для inventory сделай
13:31
будет психоделично рисовать антенки на карте
13:31
:)
bee26 #
13:35
как их делать?есть пример? я бы для хуявея состряпал
qtmn #
13:38
кароче, что нужно ещё для того, чтобы нарисовались линки?
13:38
Inventory -Interfaces интерфейсы есть
13:38
скрипт lldp_nei находил remote_port
13:38
*находит
13:39
"neighbors": [
13:39
{
13:39
"remote_port_subtype": 5,
13:39
"remote_capabilities": 0,
13:39
"remote_chassis_id_subtype": 4,
13:39
"remote_chassis_id": "28:10:7B:D0:47:60",
13:39
"remote_port": "8"
13:39
}
13:39
],
13:39
"local_interface": "eth0"
13:39
и с другой стороны
13:39
а бля, с другой стороны не находит eth0 почемуто
dvolodin #
13:40
get_chassis_ids есть?
qtmn #
13:41
есть есть, я понял в чём проблема, ща
13:41
пытаюсь dlink des с infinet залинковать
13:44
проблема в том, что wanflex херню посылает
13:44
или наоборот, dlink херово обрабатыват принятое
13:44
на длинке вместо порта в Port ID стоит мак ванфлекса
13:45
а в Chassis ID вообще херня какаято
13:49
всё
13:49
но не залинковались
13:50
remote_chassis_id не верный
13:51
со стороны ванфлекса:
13:51
"neighbors": [
13:51
{
13:51
"remote_port_subtype": 5,
13:51
"remote_capabilities": 0,
13:51
"remote_chassis_id_subtype": 4,
13:51
"remote_chassis_id": "28:10:7B:D0:47:60",
13:51
"remote_port": "8"
13:51
}
13:51
],
13:51
"local_interface": "eth0"
13:51
со стороны длинка:
13:51
"neighbors": [
13:51
{
13:51
"remote_port_subtype": 3,
13:51
"remote_port": "00:04:35:00:84:47",
13:51
"remote_capabilities": 22,
13:51
"remote_chassis_id": "IW-33863",
13:51
"remote_system_name": "Lunacharskogo76",
13:51
"remote_chassis_id_subtype": 7
13:52
}
13:52
],
13:52
"local_interface": "8"
13:52
а понял
dvolodin #
13:52
мак
13:53
get_interfaces у тебя мак выдает?
13:53
если не выдает, то пропиши snmp community и прогони руками interface discovery
qtmn #
13:53
get_interfaces не выдаёт мак
13:53
ща
14:01
чот snmp не выдаёт мака
14:01
а то что dlink remote_port и remote_chassis_id выдаёт не то что надо, норм?
14:01
залинкует?
14:01
вроде бы в remote_chassis_id должен быть мак
14:01
а в remote_port eth0
Huko2 #
14:13
remote_port_subtype задаёт по какому параметру будет идентифицироваться соседний порт
14:14
"remote_chassis_id_subtype" : 4 - это по мак адресу
14:15
# remote_port_subtype
14:15
#1: self.get_remote_port_by_description, # interfaceAlias(1)
14:15
#3: self.get_remote_port_by_mac, # macAddress(3)
14:15
#5: self.get_remote_port_by_name, # interfaceName(5)
14:16
# remote_chassis_id_subtype
14:16
#4: self.get_neighbor_by_mac, # macAddress(4)
14:16
#5: self.get_neighbor_by_ip, # networkAddress(5)
14:16
#7: self.get_neighbor_by_local # local(7)
14:17
имей ввиду. если задаешь "remote_port_subtype": 5 и не выводишь имя удаленного порта - то не залинкуется
14:18
имхо, самый надежный вариант - по макам, но нужно что-бы гет_интерфейс отдавал эти самые маки
zelfix_ #
14:22
Всем привет
14:24
Хочу попробовать NOC, немного пугает, что последняя версия NOC 0.8 Released 05.09.2013
14:24
Проект еще жив?
evyscr #
14:24
да
14:24
ветка develop
zelfix_ #
14:26
Начинать лучше с нее? Или лучше ставить стабильную 0.8 ?
evyscr #
14:26
багами в 0.8 никто заниматься не будет
14:27
поэтому лучше в develop, если не пугает, что в ней изменения каждый день
qtmn #
14:28
как эти изменения мониторить и как применять?
evyscr #
14:28
hg in
buggy-funhouse #
14:28
RUN FOOLS RUUN
evyscr #
14:28
точнее, cd /opt/noc; hg in; hg in --patch
14:29
применять: service noc-launcher stop; cd /opt/noc; ./scripts/upgrade
14:29
service noc-launcher start
14:29
вы прослушали фантазию на тему "каким должен быть noc"
14:30
в реальности, после ./scripts/upgrade в половине случаев надо идти в ирц и спрашивать, как чинить поломанное
buggy-funhouse #
14:30
как починить mercurial!
evyscr #
14:31
(и повторять процесс апгрейда)
14:31
buggy-funhouse: ты тоже перешёл в режим "чисто поржать"?
buggy-funhouse #
14:32
ну я никогда нок не юзал
14:32
ничего не потерял
14:37
но после обновления меркуриал не пашет
zelfix_ #
14:38
Круто все, нашел исходники, нашел ветку develop. Допустим, даже настрою меркуриал, он будет их загружать и вообще все хорошо.
14:38
Что дальше-то? Есть инструкция по установке?
14:39
Немогу в KB ничего найти подобного
14:39
*Не могу
qtmn #
14:40
https://kb.nocproject.org/display/DOC/Installation
14:41
чот у меня для фрибзди get_interfaces только lo0 дискаверит
zelfix_ #
14:43
Круто, спасибо
zi_home #
14:44
yf 'njq ytltkt yjdxrjd jghtltktyjj ghb,fdbkjcm
qtmn #
14:44
збс
20:16
Доброй ночи
Tweet
Share this page
Share this page: Tweet