nocproject.org
04:50
_4ePTeHok: фильтр в дереве там через жопу реализован
04:51
грузится весь набор данных, и применяется локальная функция
04:59
водка в магазине не подорожала. девочки страшнее не стали. электричесво не подорожало
04:59
а всё остальное так же
05:01
ой ну да, после парижских загорелых девок наши все - писанные красавицы. Правда - кто на лицо, кто в штаны, но это уже вторично
05:05
всё так плохо?
05:05
в парижах
05:07
угу
05:08
больше половины - загорелых
05:11
а у нас что нет?
05:11
по пляжам тоже коричневые тушки валяются
05:11
так у нас на солнце загорелые
05:12
а там - от рождения
05:15
пидорастический проект в действии.
05:16
05:16
05:17
05:22
фоточки парижу есть прикольные?
05:23
dvolodin, неделя анархии и ни хера не деланья
05:23
ты вернулся или мимо проходил?
05:23
ну не надо тут. я модельки делал.
05:23
по какому поводу анархия была?
05:23
e_zombie, я тоже, а еще для фм правила писал, а хули. в багтрекере все и осталось
05:23
dvolodin, ничего не работает, все как всегда
05:24
dvolodin, на самом деле по поводу ФМ, я тут погрузился в него вчерась немного, думаю наш второй Дмитрий прав по поводу триггеров
05:25
если хочешь , можешь заменить их на хендлеры, джобы или еще какую херню, но оно должно настраиваться
05:25
оно настраивается, блин
05:25
или что вы считаете настройкой
05:25
я открываю, fm > setup и ничего не вижу, значит оно не настраивается
05:26
смотри как
05:26
у каждого alarm/event класса должны быть свои параметры по дефолту
05:26
они привязаны жестко к классу
05:26
это много параметров
05:26
это пируль
05:26
это подавление повторов
05:27
это джоб, хотя джоб можно из пируля запускать
05:27
это необходимость поднимать аларм
05:27
дальше, если я хочу кастомизировать
05:28
создаю нечто, триггер хендлер или как хочешь называй
05:28
где к классу привязываю селектор и время, и настраиваю дефолтные параметры уже под свои железки, свою сеть
05:29
например зачем
05:29
например по некоторым железкам я не хочу поднимать аларм пинг файлед
05:29
например как говорилось, я хочу отключить запуск джоба
05:30
про job -- место настройкам в object profile
05:30
например мне надо склеить несколько ивентов в одно событие
05:30
нет
05:30
а вот такого категорически не советую
05:31
FM должен работать с предсказуемой производительностью
05:32
пусть работает
05:32
железки очень часто на одно событие посылаю больше одного сообщения
05:32
это реальность
05:32
ну и пожалуйста
05:32
что тебя смущает-то
05:33
ты о чем?
05:33
сейчас я не могу настроить периодичность повторов
05:33
*подавления повторов
05:33
сейчас я не могу привязать пируль к ивенту, чтобы поднять правильный аларм
05:34
убрать дефолтные handler'ы или навесить дополнительные технически несложно
05:34
ибо нок привязывается к железке от которой пришло сообщение
05:34
соотвесвующий механизм есть
05:34
где? cd /opt/noc/fm
05:34
вопрос скорее в морде
05:34
это не несложно
05:34
это бред
05:34
В lib/solutions.py
05:35
неважно, есть общий интерфейс, который понимает классификатор и коррелятор
05:35
тебе про что и говорят
05:35
условно говоря -- дополнительная табличка с дополнительными настройками погоды не сделает
05:36
демоны вычисляют эффективные handler'ы при загрузке конфига
05:36
я тебе про настройки и говорю
05:36
допустим, под конец они дососут остатки из таблицы конфига
05:36
и?
05:36
ты привязываешься к алармам
05:37
а я про привязку еще к селекторам и календарю
05:37
табличка-то тривиальная -- event class | handler | может быть селектор | может быть time pattern
05:37
это тоже вообще никакой погоды не делает, можно и декораторы сделать
05:37
код демонов вообще не меняется
05:38
ну если ты меня понял то заметь, ничего этого нет и это проблема
05:38
я не могу сейчас настроить подавление dom сообщений
05:38
проблема в том, что ты заколебешься это поддерживать
05:38
я не могу написать пируль чтобы нок закрыл аларм
05:38
в смысле?
05:39
в прямом
05:39
смотри
05:39
есть дефолтные настройки, это не сложнее чем писать новые классы
05:39
ты хочешь навесить свой handler
05:39
а остальное это тонкий тюнинг
05:39
тебе его нужно где-то описать
05:39
технически -- это какая-то функция в пределах твоего модуля solutions
05:40
так ты ровно там же можешь и подцепить их к event'ам
05:42
причем, если не нравится register_event_handler, можно и на уровне декораторов сделать
05:42
смотри
05:42
что-то вроде такого
05:42
@within_time("<time pattern>")
05:43
@within_selector("Имя селектора")
05:43
dvolodin: привет
05:43
можно ли в clean-asset сделать разбор, без учета есть ли модели в списке?
05:43
@event_handler([<event class1>, ..., <envet class N>])
05:43
def my_handler(event):
05:43
....
05:43
и будут тебе ништяки
05:44
TSergey: это как?
05:44
dvolodin, да что я, одичал что ли, давай без этой белиберды, в нормальной веб формочке, как с триггерами и пирулями
05:44
все это было и вполне цивильно, и тут приплыли
05:44
dvolodin: чтобы убрать сфп из коммутатора, зачем нужен этот сфп?
05:45
zi_rus: ну будет тебе web
05:45
ну вот давай с этого и начнем, а потом посмотрим что получилось
05:45
ну или ключ какой, разбирать несмотря ни на что
05:45
и будешь ты функцию в одном месте писать, а потом лепить ее в другом
05:46
там же не только формочка нужна, но и показ эффективных handler'ов для данного event class'а для данной железки в заданное время
05:46
вот это меня скорее пугает
05:47
dvolodin: или расскажи как мне восстановить ассет после удаления модели, теперь везде где она была --- ошибка
05:47
и пугает то, что если сейчас задают вопрос, почему NOC повел себя именно так - можно ответить
05:48
а в твоем случае -- почем кто знает, что и как наверчено
05:48
handler'ы и подраться могут, если что
05:48
TSergey: не удалять модель :)
05:48
интерфейс дал это сделать
05:48
а машины времени у меня нет
05:48
погоди
05:49
у тебя проблема в том, что ты снес модель, а clean-asset не дает теперь вытереть объекты?
05:49
а почему нельзя отвязать набивку вне зависимоти от того есть ли она в списке?
05:49
dvolodin: да
05:51
dvolodin: поясню
05:51
я удалил одну из моделей набивки коммутатора
05:51
теперь в ассет-дискавери ругань
05:51
и в инвентори
05:51
я думал, что могу разобрать с помощью clean-asset, и передискаверить
05:52
но clean-asset тоже не хочет, если в этом деле завязана внутренность, удаленная ранее
05:54
вот и предлагаю разбирать несмотря на подробности :)
05:54
типа взрыв :)
05:54
неправильно предлагаешь, но не суть
05:55
ну или более сложный способо --- сделать вычищалку такой ошибки, но мне тут сходу никто не посоветовал как даже начать искать
05:55
*способ
05:56
угу
05:56
./noc fix
05:56
с вычисткой кривых объектов и alarm'ов
05:56
ладно
05:56
а чем плохо отцепить часть набивки, если она не найдена в базах? что видишь в таком подходе криминального?
05:57
по настройкам handler'ов -- две таблички делаем
05:57
?
05:57
<event|alarm class> | handler | selector | time pattern
05:57
?
06:11
TSergey: сложность, видимо, в том, что крэшатся сами питоновские функции работы с монгой, когда напарываются на дохлые ссылки
06:12
я лечил ручным удалением из монги соответствующих записей, правда нужно аккуратно, не зацепить лишнего
06:18
скорее всего, в табличке noc.objectconnections искать нужно
06:36
lexus-omsk, вот ты где, слушай, а это ты ведь хвастался что у тебя есть правила для FM, ISIS up/down, почему их не закоммитили?
06:38
там проблема в том была, что, согласно классу, обязательно нужна переменная level, а в моём случае в сообщении этой информации нет
06:39
я локально пропатчил класс, сделал переменную необязательной
06:40
надо бы нелокально пропатчить
06:40
левел должен быть\
06:40
а
06:40
я понял
06:40
да, в моих сообщениях тоже левел не везде есть
06:40
кого бы теперь заставить закоммитить
06:40
главный по фм куда-то пропал
06:42
могу попробовать сделать pull request, тогда одним кликом это можно будет закоммитить...
06:42
главное не напутать со всеми этими манифестами, а то у всех поломается
06:47
шалунишки
06:47
./noc сделать_заебись
06:49
выкинь эту ботву в иссью лучше
06:50
оттуда можно частью хотя бы коммиттить
06:50
а если с манифестом общим неполным выложишь - ебнется все фпесду
07:05
dvolodin, посоветуй плиз. Хочу приложение inv-objects, где будут все потроха - чтобы можно было по серийнику или пиду найти где стоит какая бодяга. Как идеологически верно ето оформить?
07:05
ну или это надо в inv-inv фунцикляр поиска пихать
07:05
да
07:05
ExtDocApplication можно
07:06
в инв-инв сложно поиск по дереву прикрутить? точнее не по дереву, а по содержимому объекта?
07:06
чтобы по поиску он раскрывал нужные объекты
07:07
что будет лучше - отдельная апликашка или в уже существующем пилить
07:07
красиво бы в текущем
07:07
с раскрытием на нужном элементе
07:08
а то список то я выведу, не проблема, но там не будет информации где оно воткнуто
07:08
почему не будет
07:08
там есть функция full_path
07:08
потому что список это не дерево)
07:10
если в текущем, то это надо api поиска по потрохам запилить, и по возвращенным id объектов манипулировать деревом..
07:10
но и опять же - оно объект покажет только (ну можно первый раскрыть с потрохами) а вот другие - не увидишь
07:10
криво как то
07:11
пилить плагин, куда сваливать потроха прямо в inv-inv чтоли
07:12
и активировать его по кнопке поиск
07:20
да можно и фильтр по дереву
07:20
другое дело, что это на стороне сервера делается
07:20
и может быть малость нетривиально
07:20
фильтрованый список воспринимается нормально
07:20
а вот фильтрованое дерево в голове не укладывается
07:23
особенно если фильтровать не по элементам дерева, а по дочкам элементов)
07:24
не на деле, фильтр по дереву тоже нужен
07:24
именно для навигации
07:24
а вот по потрохам там же сделать как - неочевидно уже
07:25
ну смотри в чем беда фильтра
07:25
ты нашел sfp
07:26
в дереве логика проста - пробегаем названия всех элементов и отдаем в морду только найденные с родителями
07:26
это то, что для навигации
07:26
так набивку родителя тебе тоже видеть надо целиком
07:27
не, это не по потрохам
07:27
у тебя же набивка открывается по клику на объекте уже
07:27
как-то можно понять на что ругается пируль при записи?
07:27
я про дерево объектов в inv-inv
07:27
по потрохам как то по другому надо пилить
07:28
сейчас там без фильтров найти объект в том же лосте - задача та еще
07:29
да и щелкать по папочкам порой дольше чем сбить 3-4 буквы
07:29
вбить*
07:30
фильтр на подобии как в примерах я вчера с 5го экста кидал - он полезен именно для навигации по дереву объектов в дереве инвентори.
07:34
не годится он
07:34
там локальная фильтрация
07:34
точнее -- там даже не фильтр
07:34
:)
07:34
ты код посмотри
07:34
я ж говорю про принцип
07:34
а не код
07:34
давай датастор фильтровать)
07:41
нет, там именно на сервере
07:43
надо api на формирование нового датастора при любом изменении фрмы поиска?
08:08
народ, а тут кто-нибудь еще покоммитить и порисовать новые правила для ФМ готов?
08:09
а оно надо кумуто?
08:09
я выкладывал кучу нераспознанных сфп никто вроде не коммитил потом
08:10
да вот я тоже смотрю
08:11
пройдусь попоже, посмотрю
08:11
у меня пока завал
08:11
хотел взять второго Дмитрия за жабры а его нет, да и если бы был, то отмазался бы
08:15
у меня кстати есть подозрение что я что то сломал в инв исправив встроенную модель. в созданных моделях есть парт намбер. а модель не приделывается
08:16
e_zombie, и ты тоже? у меня такая же херня с одним трансивером
08:17
ну у меня ваще какая то поебень случилась. я добавлял модели. количество нераспознанных упало до 180 штук с 380. потом какая то поебень произошла и сейчас всё опять вернулось к 380
08:23
кстати я заметил что если добавить одинаковый партнамбер в две модели то они не распознаются.
08:52
потому что нельзя так)
08:52
уникальность по номерам
08:52
искать надо где еще засветилось
08:52
dvolodin, уникальность по связке парт+вендор?
08:54
да вижу
08:54
m = self.get_model(vnd, part_no)
08:55
круг поиска сужается
08:55
в рамках одного вендора
08:56
zi_rus, какая модель у тебя того?
08:56
и какие там партномера
08:58
FTRJ1319P1BTL-C2 вроде
09:00
у меня только в одной модели он
09:00
./inv/collections/objectmodels/Finisar/Transceiver/1G/SFP_LH.json: "part_no4": "FTRJ1319P1BTL-C2"
09:01
мож ты локально чего добавлял
09:16
e_zombie, на будущее - для дырок под трансиверы - протоколы - TransEth1G TransEth10G TransEth40G
09:16
1000BASET - это медь
09:47
_4ePTeHok, да, только он и есть
09:49
dvolodin, мы еще тут обсуждали острую потребность отказаться от SFP+ и оставить только SFP
10:11
e_zombie, кажется нашел
10:13
"name": "Cisco | 7600 | 7600-ES+2TG",
10:13
"uuid": "59f730d5-e097-4777-8a63-191b441f94bb",
10:13
"name": "Cisco | 7600 | 7600-ES20-GE3C",
10:13
"uuid": "59f730d5-e097-4777-8a63-191b441f94bb",
10:13
какого спрашивается.)
10:13
копировал файлики поди руками
10:14
который правильный то
10:20
а потом не распознает модели у него)
10:25
а нахрена отказываться от sfp+ ?
10:32
дырка одна
10:33
форм фактор один
10:37
тогда давайте откажемся от всего оборудования
10:37
и будем манипулировать чисто юнитами
10:37
и "дырками"
10:43
dvolodin: а чем плохо отцепить часть набивки, если она не найдена в базах? что видишь в таком подходе криминального?
10:49
"8[17:39] ufir: тогда давайте откажемся от всего оборудования" --- тссс, и так длинки в опасности
10:50
Всем доброго дня.
10:50
К разработчикам: требуется запустить скрипт[1] на одном наборе устройств, и только при условии успешного выполнения [1], запустить скрипт [2] на других устройствах.
10:50
Вопрос: RuduceTask позволяет это сделать (могут быть разные активаторы)? Если нет, то чем лучше воспользоваться/как лучше реализовать такой функционал в рамках NOC?
10:50
PS: можно конечно редиректиться через браузер или на бекграунде через мультипроцесс запилить, но может уже есть готовое а я не нашел...
10:52
я не разработчик (увы), а что является критерием успешности выполнения [1]?
10:54
2 TSergey: скрипт завершается нормально -- возвращает валидные данные. Пока требуется запускать только на одном устройстве.
10:56
2 TSergey: судя по активности в репе -- разрабы в отпуске ;)
10:56
ага
10:56
так можно
10:57
я бы сделал так
10:57
сделал бы переодический pyrule
10:59
2freeseacher: ок. про pyrule почитаю. А как так? редеректами или мультипроцессом?
11:00
пируль дожен запускать таск
11:00
я бы поспрашивал про пируль
11:00
freeseacher: пиши пожалуйста подробнее :)
11:00
этот таск будет описан для конкретного типа девайсов
11:00
а то мои функции в пирулях разростаются неимоверно
11:01
у меня такой есть он делает sh prefix-list "BLA-BLA"
11:02
и возврашщает список ойпишников
11:03
хм. такое ощущение что я это даже уже писал.
11:06
ну я ковырну логи
11:06
и в конфе на сайте что-то было
11:07
спасибо
11:07
нее
11:07
ща в доку вписываю
11:14
11:15
задавай вопросы буду там фиксить чего непонятно
11:22
обнови. добил страничку
11:22
есть два "но" в этой схеме
11:22
1. "старый" механизм schedules
11:22
2. "старый" механизм pyrule
11:24
Сейчас бы их оба надо заменить. но я пока новые механизмы не очень освоил
11:24
ждем когда появится dvolodin
11:24
о
11:24
тоесть больше не ждем
11:24
с возхвращением Дима.
11:25
спасибо. А если вкратце, как pyrule работает? Это демон, который реагирует на события?
11:25
ты про солюшен чтоле?)
11:25
solo1h, это обертка для кода
11:25
пируль это просто скрипт на питоне который вызывается в нужный момент
11:25
нужным демоном
11:26
в данном случае schedules
11:26
_4ePTeHok, ога
11:26
про него
11:26
там вообще много белых пятен
11:26
типа как волшебная палочка, но как ей махать = никто не в курсе
11:27
ну в любом случае оба механизма после перезда на новые рельсы поменяют лишь методику их вызова и окошки через которые будут вызываться
11:27
_4ePTeHok, махать то все могут, а вот стойки для применения... это да
11:28
спрошу с другого угла. Есть в NOC демон, которому можно скормить таски, сказав какой за каким запускать и как реагировать на ошибки?
11:29
нее
11:29
точнее не так
11:29
весь нок этол такой демон ;)
11:29
нок умеет дергать задачи либо по расписанию, либо в реакции на событие
11:29
да, совокупность сервисов
11:31
да, это я понял, спасибо. Похоже что буду дописывать функционал...
11:31
события не вариант -- много их надо будет делать
11:31
возможно твою задачу легко реализовать имеющимся
11:31
сформулируй четко что тебе надо)
11:32
что исходные данные
11:32
какая обработка, действия и т д
11:35
1. нужно последовательно запускать скрипты на оборудовании. Оборудование принадлежит разным селекторам и скрипты разные.
11:35
2. шаги (последовательный запуск) должен быть прозрачен для пользователя и выглядеть как один таск
11:35
Например: копирования сертификата с одного деыайса на другой. Шаги: 1 -- экспорт на одном + перенос на другой, 2 -- импорт на другом, 3 -- удаление файла сертификата на обоих.
11:35
*копирование
11:35
*девайса
11:36
конкретика - это сертификаты?
11:36
а зачем их туда сюда таскать?)
11:37
ну не я задачи ставлю) Другой пример -- vpn-тунель. Нужно сперва один девайс настроить, потом второй.
11:38
в обоих примерах для меня сейчас пахнет несколькими ReduceTask'ами, которые ставятся в очередь кому-то, выполняются... и профит
11:40
к пул-регвестам готов, если что;)
11:41
если это не периодическая задача - то смысла выносить ее в пируль нет особо
11:41
одиночная настройка через ран-коммандс делается группой
11:41
менеджмента туннелей пока нет
11:41
и вопрос будет ли
11:43
ты же не одинаковые параметры отдаешь в конфигурацию железкам
11:44
т е каждый раз набор команд будет разным
11:44
какая тут тогда автоматизация)
11:44
AI)
11:44
не вбивать руками а брать данные уже из базы
11:45
для сертификатов -- банально авторизацию для scp
11:45
это менеджмент сервисов
11:45
это надо уже отдельным модулем. Как для VC, security managment-a и т д
11:46
под секюрити - я понимаю юзер-менеджмент(учетки, сертификаты, радиус), акцесс-лист-менеджмент, и т д
11:46
модулем -- в смысле Django app? или каким то другим модулем?
11:46
аппликашкой нока
11:47
я давно Диме говорил, что это должно быть в ноке
11:47
как раздел
11:47
но в реализации пока нету
11:47
ну какбэ и делаю сейчас отдельным приложением)
11:47
ты немного не то делаешь
11:47
универсальный шедулер для последовательного запуска)
11:48
а я про полноценный менеджмент, когда в вебморде будут твои сертификаты, а в кишках нока - интерфейс iSetCertificate
11:49
как сейчас скажем с IPAM
11:49
пулы уже появились, осталось их автоназначение допилить
11:49
чтобы из морды рулить пулами на железе
11:49
сниппеты немного не то
11:50
а это уже как получится
11:50
снипеты как и скрипты -- мап/редьюс. А хочется просто скрипты из очереди дергать
11:51
эта хотелка - второй шедулер
11:51
а существующий шедулер размазывает нагрузку
11:52
надо это в менеджмент-интерфейс выводить
11:52
вбил туннель в веб-морде - оно зашло на железку и создало
11:52
тогда и костылей в виде списка последовательных задач не надо будет
11:54
ок. посмотрю исходники, но меня терзают сомнения что там, как и везде, таски
11:55
я кстати не вежу необходимости в выделенном шедулере. Можно это на бекграунде в отдельном процессе дергать. Правда еще пару моделей в базу добавить придется.
11:56
каждый запуск задачи в активаторе - это результат работы шедулера
11:56
имено шедулер в сае задачки пуляет, а тот в активатор
11:58
так что видимо надо будет делать эжто в виде апликухи или сниппета
11:58
но вот готовой интерфейсной части я не представляю
11:59
ок, спасибо за подсказки и терпение
11:59
нужен что называется Script chain какой то
11:59
если получится что-то интересное -- отпишусь
12:02
эти кирпичи Dmytri тут предлагал)
12:02
обиделся в итоге
12:08
жестокие мы тут, да
12:21
freeseacher, ты тут?
12:21
а нет, это не ты
12:23
как ни я
12:23
я
12:23
и нет меня нету
16:01
dvolodin, ты тут?
16:03
dvolodin, просьба загрузить в нок МИБ
16:03
ftp://ftp.cisco.com/pub/mibs/v2/CISCO-IETF-PW-MIB.my
16:05
ты его скомпилировал сам?
16:06
dvolodin, что ты имеешь ввиду?
16:06
там их 2
16:06
CISCO-IETF-PW-TC-MIB
16:06
и CISCO-IETF-PW-MIB
16:06
я никогда ничего подобного не делал
16:07
просто говорил второму Дмитрию, а он делал
16:07
dvolodin, сообщения с таким оидом приходят
16:07
16:08
сейчас они резолвятся как экспериментальные
16:08
SNMP TRAP: 1.3.6.1.4.1.9.10.106.2(CISCO-SMI::ciscoExperiment.106.2)
16:09
давно не обновляли
16:59
dvolodin, что-то не помогло, может mib preference еще надо выставить, хотя при апгрейде не ругалось на коллизии? (да, нок перезапускал, не один раз)
16:59
Synchnonizing MIBs
16:59
creating CISCO-IETF-PW-MIB
16:59
Checking FTS index
16:59
Checking FTS index in local/index ...
16:59
... exists
16:59
upgrade complete
16:59
Starting NOC
21:12
f xj ckjvfkb-nj jgznm &
21:12
поломали опять все чтоли ;(
21:12
└─[$] <> ./scripts/upgrade
21:12
Set up configuration files
21:12
Creating required directories
21:12
Checking virtualenv
21:12
21:12
warning: bitbucket.org certificate with fingerprint 45:ad:ae:1a:cf:0e:73:47:06:07:e0:88:f5:cc:10:e5:fa:1c:f7:99 not verified (check hostfingerprints or web.cacerts config setting)
21:12
abort: error:
21:12
21:12
Terminating
21:12
а.
21:12
ну да
21:13
извини, я чот подзабыл немного ;)
21:13
=)
21:13
мне по ночам снится
21:13
радует, что нет ошибок типа "call your sys.admin"
21:14
мне сегодня ночью приснилось. что у меня скоро сессия, а я до сих пор не сдал зачет по физкультуре, и не допущен к экзаменам
21:14
я аж вспотел
21:29
ого тебя штырит
21:30
насколько давно закончил?
Share this page
Share this page: