nocproject.org
05:57
все доброго
05:57
сменил язык в профиле пользователя admin и пиздец
05:57
вебка перестала работать)
06:00
не язык ты сменил
06:00
а тему
06:00
из-за этого не работает
06:01
в консоли постгреса update main_userprofile set preferred_language='en', theme='gray';
06:22
блин, NOC - не очень хороший вариант в плане seo
06:22
имя тоесть
07:16
dvolodin, пишу хендлер, можешь глянуть, я нигде не накосячил, перед тем как начать тестирование
07:17
07:22
А где редактируются профили линков на карте? нужно нарисовать радио линк для одной железяки, для которой нет профиля в ноке
07:23
Inventory-Setup-Connection Types ?
07:30
а нок видит у железки порты?
07:32
zi_home: хочешь реагировать на dying gasp только если он от своих железок?
07:32
вот, это вопрос номер два, я написал скрипт который выдаёт json, как теперь его запилить в нок? =)
07:32
есть вообще чтиво какое-нибудь по добавлению железок
07:32
для которыйх нет профилей
07:32
сразу сходу -- вынеси alarm_class из функции наверх в модуль
07:33
qtmn: давай про первый
07:33
qtmn: берёшь профиль для циски или джунипера и на основании его делаешь профиль
07:33
qtmn: как ты будешь ликовать железку, у кторой нок не знает порты?
07:33
*линковать
07:33
dvolodin, нет, хочу поднимать аларм на сосденюю железку по ивенту от этой
07:33
managed_object = i.link.other(i)[0].managed_object
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
07:35
TSergey: по lldp, есть скрипт, как его передать ноку, чтобы он брал порты
07:35
dvolodin, эмм, а зачем get заменять так?
07:35
если у тебя не будет интерфейса в базе get поднимет DoesNotExist
07:35
и твой handler вылетит
07:35
qtmn: у железки, у которой нет профиля, в ноке есть порты?
07:35
и событие уйдет в failed exceptions
07:35
failed events
07:35
далее по логике
07:35
dvolodin, у меня еще вопрос, правильно ли я делаю raise аларма через ActiveAlarm(...).save()
07:36
qtmn: нет портов --- невозможно ее слинковать
07:36
и правильно ли я передаю туда vars
07:36
TSergey: в том и вопрос, как добавить порты в нок?
07:36
только тебе еще event'у надо этот alarm прописать
07:36
TSergey: самописный скрипт выдаёт json с портами, как его интегрировать в нок?
07:36
и тут еще такой момент
07:36
qtmn: сделать профиль, написать get_interfaces
07:37
тебе сначала надо проверить, что такого alarm'а еще нет
07:37
то есть сначала ты ищешь active alarm
07:37
TSergey: понял, щас попробую
07:37
если есть -- цепляешь к нему event
07:37
dvolodin, а вот это был второй вопрос
07:37
а если он есть нок просто дубликат не спрячет?
07:37
если нет -- поднимаешь
07:37
не спрячет
07:38
или надо извернуться и отдать аларм кореллятору
07:38
ясно, проще проверить
07:39
посмотри
07:39
classifier/__init__.py
07:39
692 строчка
07:39
dvolodin, возможна ли такая ситуация, что в момент появления ивента и срабатывания хендлера того аларма еще нет, но пока выполняется код, он может появиться
07:40
zi_home: для этого коррелятор и нужен как отдельный процесс
07:41
смотри
07:41
видишь, там сначала идет вызов всех handler'ов для класса
07:41
да
07:41
но я про другое
07:42
смотри
07:42
dying-gasp primary ethernet-oam secondary syslog
07:42
железка сначала посылает сообщение по ОАМ, а потом если успеет то и в сислог
07:42
и это два разных сообщения
07:43
пройдись по функции classify_event
07:43
поймешь
07:43
я твой код не понимаю :)
07:43
кстати
07:43
все не так
07:44
тебе нужно не alarm поднимать
07:44
а мвент генерить?
07:44
*ивент
07:44
тоже вариант
07:45
но тогда у одного сообщения будет сразу два ивента
07:45
в принципе пох, но выглядит как-то некрасиво
07:45
или что ты хотел сказать?
07:47
так вот
07:47
не надо alarm поднимать
07:47
совсем
07:47
нужно просто на event'е поменять managed object
07:47
:)
07:48
хм
07:48
грязный хак
07:49
dvolodin, а ивент классифицировать как?
07:49
делать отдельный класс и менять МО и класс
07:49
или использовать существующий?
07:49
но тогда если линка не будет нок будет неправильно рейзить алармы
07:49
просто классифицировать его сразу как отказ по питанию
07:50
dvolodin, хендлер будет срабатывать ДО поднятия аларма и все подмены подменятся?
07:50
да
07:51
погоди, дай подумаю, как попрямее сделать
07:51
dvolodin, если илнка не будет, он не сможет сделать подмену и поднимет аларм не на ту железку
07:52
TSergey: Вот написал я скрипт для дисковеринга интерфейсов, положил его в папку профиля. Как теперь сказать ноку, чтобы он брал его?
07:52
а то пишет, что Error: Invalid script 'InfiNet.WANFlexX.get_interfaces'
07:58
zi_home: мне кажется там проще все
07:58
нужно просто сказать, что этот event поднимает alarm Chassis | PSU | Power Failed
07:59
dying gasp у нас уже в репо?
08:00
как свой скрипт то добавить? Не могу нигде найти
08:03
просто положить файл get_interfaces.py в нужный каталог
08:03
и проверить ./noc debug-script
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
блин, права ж не дал на выполнение
08:05
не заработало тогда)
08:05
а в get_interfaces имя скрипта нормально прописано?
08:05
в name
08:05
вижу ошибку, спасибо
08:06
dvolodin, но сообщение приходит не от той железки где произошла авария
08:06
это нормально
08:06
аварию можно поднять и на другую
08:06
кинь мне json с event'ом
08:11
dvolodin, вот так
08:11
08:15
не совсем
08:15
со вторым Дмитрием его делали когда-то
08:15
так как на выходе ничего дельного не получилось то можно что-то переделать
08:17
да
08:17
там надо переделать название класса
08:17
что-то типа Remote Power Failure
08:20
dvolodin, а нок смотжел под этот аларм скоррелировать Link Down и не поднимать его?
08:21
а еще под Reboot
08:23
доделаю импорт из rancid - займусь
08:24
там еще в базу правильные данные залить нужно
08:24
чтобы проверить все
08:24
а ведь импорт из ранцида мог оказаться просто одним из механизмов mo discovery
08:25
freeseacher, тебе не кажется что функционал пересекается и один просто должен заменить другой?
08:25
freeseacher: это все-таки разовая операция
08:26
взял нок - перетащил все из rancid и забыл последний
08:26
ну разовая то разовая...
08:26
но вариант то был был красивый
08:26
mo discovery из альтернативных систем
08:26
из заббикса например
08:26
ух
08:27
или не дай бог из какого нить тивали или вообще оранжевых
08:28
разворачиваешь нок и внедряешь его параллельно основным ситемам а потом их замещаешь
08:29
по последним двум случаям не вижу проблем
08:29
точнее самая большая проблема -- поставить ораклового клиента :)
08:30
уж чего-чего, а топологию NOC получше определяет ;)
08:30
там как бы не запросили в обратную сторону ее отдавать :)
08:30
вот вот. надо обобщенный механизм таки делать :)
08:32
только это не совсем discovery
08:32
скорее -- узконаправленый ETL
08:33
и основная сложность скорее -- какой-то API сделать для плагинов
08:34
типа раздельно -- импорт/экспорт
08:34
и у кажного -- забрать managed object'ы / отдать managed object'ы
09:09
А по какому принципу показывает мас в MacDB именно на этом одном интерфейсе ?
09:12
где найден в последнем дискавери
09:13
ткни в него, покажет где он еще был
09:19
класс %-)
09:21
правда запускаю мак-дискавери там где мак этот есть но в MacDB его в упор не показывает
09:27
нужно чтоб профиль порта был настроен
09:27
Inventory \ Setup \ Interface Profiles
09:28
и в профиле МО включен мак дискавери
09:34
там включено, маки собираются
09:35
через скрипт мак виден, но в MacDB не попадает, может еще что-то запустить надо
09:44
катаны, а как вернуть к жизни хост у котрого был аларм Host Down, он уже поднялся
09:44
?
09:45
сам должен подняться
09:45
в ноке все равно пишет Host Down, c консоли нока всё ок
09:45
у него сменился айпишник
09:49
а
09:49
ну закрой alarm руками
09:50
Huko2: а профиль для интерфейса у тебя один?
09:50
да, спасибо, закрыл аларм - всё заработало
09:50
шото тупанул я
09:55
странно
09:55
а в MacDB последние найдены когда?
09:55
может сортировка
09:56
Доброго времени суток! Возникла проблема с ноком следующего порядка: бъет ошибку Activator pool is down. ip и secret в конф-файле и веб-интерфейсе совпадают, а в noc-activator.0.log сыпется сообщение Negotiation protocol 'NOC SAE PROTOCOL (
http://nocproject.org/)' version '1.0'.Кто сталкивалс
09:58
tat100kai, не пиши длинные фразы.
09:58
ирц их фигово показывает :)
09:59
Ок) Изложу короче)
09:59
Ошибка вылезает Activator pool is down
09:59
ip и secret в конф-файле и веб-интерфейсе совпадают
09:59
09:59
это последнее сообщение ?
10:00
С чем может быть связано, подскажите пожалуйста, кто сталкивался.
10:00
попробуй ./scripts/noc-activator.py -f start
10:00
Ситуация не меняется, пробовал
10:00
с -f оно сильно умнее получается
10:00
при этом активатор цепляется к Sae
10:01
что в логах sae ?
10:02
Activator pool 'default' is not available
10:03
активатор и сае на одном хосте ?
10:05
"Activator pool is down" у меня лечится только рестартом
10:06
Рестартом нока или всей машины?
10:07
<freeseacher>, пардон мою неграмотность, но LA это что?О_о
10:07
нока
10:07
La - load avarage
10:07
Не помогает
10:09
Если я правильно понял, LA это нагрузка от выполняемых одновременно задач?
10:09
команда uptime чего говорит ?
10:09
да. если грубо высокая загрузка проца
10:09
load average: 3,95, 4,00, 3,93
10:10
с учетом того что ты сразу сказал слово `логи` глупые проверки я пропускаю
10:10
Глупые проверки это что например?
10:11
Ничего нельзя исключать, я сетевик, а не сервачник)
10:13
Ясно) Возможно ли, что проблема в большом количестве устройств на одной инсталяции?
10:14
много это сколько ?
10:14
да. многовато.
10:14
у меня максимум 6к было
10:14
оно вообще работало ?
10:15
да ладно, dvolodin хвастался что нок миллионы может переварить
10:15
TSergey_, max_scripts это на девайс
10:15
мне кажется что тут что то веселее
10:16
по дефолту 10 оставил
10:16
мне кажется, что я несколько раз тут повышал, что бы избежать "все активаторы заняты"
10:16
сколько активаторов в пуле?
10:17
tat100kai: у меня 100, на 1000 мо
10:17
нет
10:17
сколько инстансов
10:17
но полагаю что тоже один :)
10:17
мне кажется что к моменту когда приходит активтаор у сае уже многовато работы
10:17
и он не успевает регнуть активатор
10:17
я такое видел
10:18
потому про la и спрашиваю
10:18
есть такая байда на старте
10:18
freeseacher, если там один активатор на столько железок я не удивлюсь что он просто раком встает
10:18
tat100kai, наверное не очень плохая идея для такого колва железяк сделать болье активаторов
10:18
при это в идеале раскидать их по ддругим машинкам
10:19
Я не добавлял активаторы. Вообще не лез так глубоко. Знакомлюсь только еще с ноком)
10:19
неслабо ты знакомишься
10:19
сколько ядер у проца
10:19
на сервере
10:19
tat100kai: а как заливал такое количество МО?
10:19
4
10:19
Списком, через импорт CSV
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
а другие вообще нет смысла дискаверить
10:29
Он у меня только конфиги и версии дискаверит. Раз в сутки. Опять сбой при выполнении разового скрипта.
10:29
В этот раз даже без коммента и трэсбэка
10:30
4гб оперы под завязку забил
10:35
В общем, спасибо огромное! Попытаюсь разгрузить его.
10:39
tat100kai: а чего в SA \ Reports \ Active Map
10:39
и в SA \Monitor
10:41
если плохо SAE то с этим ничего не сделаешь
10:42
а если активаторам, то можн действительно взять несокльок серверов и поднять там еще инстансы
10:42
в топе можно посмотреть какой демон больше грузится
10:42
у меня 5 тасков, на 1000 МО
10:42
у него должно быть 65
10:44
Последние задания все зафейлены, а в начале куча тасков в ожидании висит
10:44
в топе больше всего выедают питон и сае
10:45
значит возможно дело в сае
10:45
"Active Map / Reduce tasks"
10:45
tat100kai: не стал менять max_scripts?
10:45
А как-то возможно отменить выполнение скриптов, которые в ожидании висят?
10:46
Не пока. На сколько лучше поменять? на 65?
10:46
может и можно, но это не решение проблемы
10:46
если оно возникло то может повториться
10:47
здесь что: SA \Monitor
10:47
он сам зафейлится же
10:47
может быть отключить сбор конфигов и прочего пока не рассосется
10:47
и кстати
10:48
там по дефолту минимальный таймаут 10минут
10:48
если задача фейлится он ее перешедкуливает
10:48
и они лавиной накапливаются
10:48
tat100kai: здесь что: SA \Monitor
10:48
можно поднять минимальный период
10:49
TSergey_: Эм... Failed toget data
10:50
поднимай max_scripts до 100 и рестартуй, и смотри чего покажет SA \Monitor
10:51
и может еще отрубить конфиг дискавери и посмотреть, справляется ли на версион дискавери
10:54
TSergey_: Поднял до 1000 и рестартнул. Так же фейлит пока. Отключаю сбор конфигов и версий
10:56
tat100kai: если что, на предмет заданий в монге смотреть всякие db.noc.schedules*
10:56
у меня не было фэйла в SA \Monitor, тут только смотреть
10:57
он фейлится
10:57
не читай меня @ продолжай страдать
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()
10:58
зачем здесь вайпы?
10:58
там скорее db.noc.schedules.inv.discovery
11:00
tat100kai, знакомишься с ноком ?
11:00
что бы сейчас не биться сразу с масштабированием квеньши колво mo до 1000-2000
11:00
*уменьши
11:01
ибо для переваривания 13к надо тюнить систему
11:01
и быть готовым к появлению такого кова объектов
11:02
Ок, спасибо. Буду пробовать.
11:02
у тя сейчас develop ветка ?
11:03
freeseacher: На сколько её протюнить желательно? 4х процов хватает. На 50% только загружены. Оперы надо добавить, видимо?
11:04
на самом деле надо понимать чег оу тя будет делать нок
11:05
"8[16:58] evyscr: зачем здесь вайпы?"
11:05
как пример чистки заданий
11:06
если только конфиги собирать это 86400 / 13000 = 0,15 объекта в секунду. при оптимально распеределении заданий
11:07
но потом как правило входят во вкус.
11:07
и ипам подавай
11:07
и инвентаризацию
11:07
и карту сети
11:07
и графики
11:08
да fault
11:08
важно скажи на какой ты сейчас ветке
11:08
/opt/noc # ./scripts/about
11:09
на 0,8 нок был теплым и ламповым. сразу всю сеть опрашивать не хотел.
11:09
freeseacher: Извини, не совсем тебя понял. На какой ветке где?
11:09
а сейчас суко злой бульдог. упирается только в ресурсы опросной машины
11:09
tat100kai: Main \ Reports \ Version
11:10
бинго
11:10
нужно обновляться до develop
11:12
TSergey_: Спасибо, буду пробовать.
11:14
tat100kai, ты, если вдруг понравитсья, нок, не морочься, сразу ставь стационарный irc клиент.
11:14
по факту это камунити единственная документация и площадка поддержки и содружество пользователей.
11:14
freeseacher: Ок, спасибо, так и сделаю)
11:19
я не на столько разработчик чтобы сложив в сорца понять что не так (
11:19
думал кто подскажет
11:19
это описание класса
11:19
смотри чего должно быть в интерфейсах
11:21
эээ
11:22
ты разбираешь name и type и все?
11:22
и говоришь "да вроде всё так" ?
11:23
хм
11:23
я ж говорю я не разработчик))
11:24
ну или учись или жди пока кто-то сделает
11:25
я пытаюсь учиться. вот бы кто показал что у меня не так в скрипте, я бы быстрее научился)
11:26
так а где дебаг того, что выдает get_interfaces?
11:28
11:28
ой
11:28
ага он
11:30
'interfaces': []
11:30
--- нету у тебя интерфейсов :)
11:31
регексп вроде верный
11:32
11:32
с питоном я вообще начал знакомиться вместе с ноком
11:32
поэтому вот
11:34
не, регэксп неверный
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
спасибо)
11:36
на ванфлексах была команда ifconfig
11:36
qtmn: да я ничего и не сделал :)
11:37
TSergey_: направлял в нужное русло)
11:37
Huko2: в режиме гостя не работает
11:38
кроме con show ничего не работает ?
11:38
qtmn: я в шелле проверяю (./noc shell)
11:39
а как удобней проверять?
11:40
регексп туда копипастить?
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
только с отступами правильными
11:41
оо спасибо
11:41
а вообще по питончику книжку можно какую почитать или лучше по оф доке?
11:42
или лучше и книжку и по оф доке?)
11:44
я гуглил
11:44
но я и не разработчик
11:44
qtmn: так и чего, теперь нок виит интерфейсы?
11:44
*видит?
11:45
ну не совсем
11:45
да почемуто только один
11:45
хотя мультилай стоит
11:46
или я херню спорол
11:46
о всё
11:46
ошибка была
11:46
все интерфейсы находит
11:46
ну я написал как проверять :)
11:47
только почемуто rf4.0 обрезает до rf4
11:47
где править?
11:48
qtmn: по книжкам тут пропагандируют за a bite of python
11:48
qtmn: \S+ --- это же слово
11:50
.* тоже обрезает
11:51
rf4. получается
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")
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'}],
11:54
rx_iface = re.compile(r"^\sifc\s(?P<name>[\S]+)\s", re.MULTILINE | re.DOTALL)
11:54
сделай так
11:55
не, так не срабатывает
11:55
с ошибками валится
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
в шелле разбирает
11:58
это я походу отступы не блюду
11:59
в шелле вообще не выполняется
11:59
+ и * - ваши друзья
11:59
из того что я выгрузил --- отступы только перед print, четыре пробела
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
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
12:03
ноковский шел для расбора регекспов не самый удобный вариант, имхо
12:03
12:07
там всё одно в простых вещах затык
12:08
типа ^\s*ifc
12:10
или в разнице \s и \S
12:10
не могу сообразить почему всё обрезается, подскажите что лучше поставить
12:10
\sifc\s(?P<name>\S+)\S+.*mtu\s\d+\s(?P<oper_status>\S+)$
12:10
rf4. показывает
12:11
ifc\s+(?P<name>\S+) вытащит имя интерфейса
12:11
не читай меня @ продолжай страдать (2)
12:11
о сделал
12:11
\sifc\s(?P<name>\S+).*mtu\s\d+\s(?P<oper_status>\S+)$
12:11
на радио никакого статуса up не вижу
12:12
\s*ifc\s+(?P<name>\S+)\s+
12:12
кто-то не до конца скопировал просто
12:12
evyscr: тоже работает
12:13
спасибо)
12:13
но мне надо ещё дальше парсить
12:13
.*mtu таких конструкций лучше избегать
12:13
поэтому так: просто там неизвестно что может быть
12:14
\s+mtu вполне подойдет
12:14
нет, там не пробелы
12:14
см ткж "жадность квантификатора"
12:14
а неизвестные символы, которых неизвестное количество
12:14
может vlan может media а можут хуй его знает что ещё будет
12:14
всё одно разделитель надо держать
12:15
без \s+ лучше не пытаться разбирать по частям
12:15
если задача вытащить только статут - то я бы вообще забил и везде поставил True в скрипте жестко
12:15
\sifc\s(?P<name>\S+)\s+(?P<type>\S+)\s+(?P<speed>\S+)\s+mtu\s\d+\s(?P<oper_status>\S+)$
12:16
тут тоже может быть засада-)
12:16
если между именем и mtu только один пробел
12:17
а что значит True жёстко?
12:17
где это ставится?
12:17
'oper_status': False,
12:18
Просто через принт вбить туда True
12:19
"admin_status": True , "oper_status": True,
12:19
как-то так
12:19
это в самом скрипте get_interfaces?
12:20
да
12:22
изучение sa/interfaces/igetinterfaces.py прольет на многое свет
12:27
ну в общем сделал так: "\sifc\s(?P<name>\S+)\s+"
12:27
а как uniq то сделать?)
12:28
а то много раз один и тот же интерфейс будет показывать
12:30
разобрался
12:37
ну в общем, написал я get_interfaces, как теперь сделать так, чтобы он был в вебке нока доступен?
12:38
у тебя в разделе скрипты у железке он отображается.
12:38
пусто
12:38
нок надо рестартить?
12:40
благословняю тебя не великие дела :)
13:06
Приветы
13:06
как у всех дела?
13:06
теперь NOC умеет драть интерфейсы с инфинетов?
13:08
dvolodin: скажи пожалуйста, как правильно удалить mercurial и поставить снова?
13:09
изменил топологию но Network Map по прежнему показывает старый вариант. Что и кому сказать что произошли изменения ?
13:10
ну начал я с этого
13:10
запускал, перегружал нок, но не помогает
13:18
dvolodin: да, ну я допилю ещё lldp и сделаю коммит или как он там называется
13:18
на счёт всех инфинетов хер его знает, но на r5000 будет работать
13:30
модельки для inventory сделай
13:31
будет психоделично рисовать антенки на карте
13:31
:)
13:35
как их делать?есть пример? я бы для хуявея состряпал
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 почемуто
13:40
get_chassis_ids есть?
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
а понял
13:52
мак
13:53
get_interfaces у тебя мак выдает?
13:53
если не выдает, то пропиши snmp community и прогони руками interface discovery
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
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
имхо, самый надежный вариант - по макам, но нужно что-бы гет_интерфейс отдавал эти самые маки
14:22
Всем привет
14:24
Хочу попробовать NOC, немного пугает, что последняя версия NOC 0.8 Released 05.09.2013
14:24
Проект еще жив?
14:24
да
14:24
ветка develop
14:26
Начинать лучше с нее? Или лучше ставить стабильную 0.8 ?
14:26
багами в 0.8 никто заниматься не будет
14:27
поэтому лучше в develop, если не пугает, что в ней изменения каждый день
14:28
как эти изменения мониторить и как применять?
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 в половине случаев надо идти в ирц и спрашивать, как чинить поломанное
14:30
как починить mercurial!
14:31
(и повторять процесс апгрейда)
14:31
buggy-funhouse: ты тоже перешёл в режим "чисто поржать"?
14:32
ну я никогда нок не юзал
14:32
ничего не потерял
14:37
но после обновления меркуриал не пашет
14:38
Круто все, нашел исходники, нашел ветку develop. Допустим, даже настрою меркуриал, он будет их загружать и вообще все хорошо.
14:38
Что дальше-то? Есть инструкция по установке?
14:39
Немогу в KB ничего найти подобного
14:39
*Не могу
14:40
14:41
чот у меня для фрибзди get_interfaces только lo0 дискаверит
14:44
yf 'njq ytltkt yjdxrjd jghtltktyjj ghb,fdbkjcm
14:44
збс
20:16
Доброй ночи
Share this page
Share this page: