nocproject.org
06:58
zi_home: как вы все дружно любите кактус
06:58
dvolodin, был бы выбор :(
06:59
там же хорошая документация, понятный конфиг ;)
06:59
yb ntv yb lheubv yt gjkmpjdfkcz
06:59
ни тем ни другим не пользовался
06:59
бгг, Дима решил потроллить)
06:59
у нас вообще кактус чисто исторически сложился
07:00
я и не стал переделывать
07:00
хотя про заббикс были мысли
07:00
По сути, нам надо механизм точного шедулера для таймсериес+механизм хранения периодических данных с настройкой их аггрегации по интервалам
07:00
заббикс говно)
07:01
имхо*
07:01
функции+интерфейс наколбасить не такая уж проблема
07:01
для графиков
07:01
что там уже есть - честно не смотрел)
07:02
кстати прикрутить сбор данных с заббикс агента - как два пальца
07:02
там все джсонами отдается
07:04
проблема в том, чтобы автоматом создавать новые графики
07:04
а вот хз надо ли автомат
07:04
надо
07:04
но не вижу проблемы
07:04
у тебя база распухнет на дрожжах
07:04
надо
07:04
вот кроме ресурсов я вменяемого механизма не вижу
07:05
ну стоп
07:05
у нас графики применительно к железу - это обычно л2-л3 интерфейсы
07:05
их характеристики
07:05
плюс всякая загрузка железок - память цпу
07:05
это все от объекта пляшет
07:05
на l2/l3 интерфейсах кто-то сидит
07:06
магистрали
07:06
и изредка клиенты
07:06
ресурс - это л2 порт?
07:06
магистральные порты нужно мониторить по профилю
07:06
а абонентские -- только если абонент есть и вышел рылом
07:06
ибо не каждого физика стоит мониторить
07:07
да и не каждого юрика
07:07
а я бы всех своих юриков на карандаш поставил
07:07
жалуются иногда гандоны, скорости им недовешивают
07:07
а так будет чем тыкнуть
07:07
это можно про каждого физика сказать
07:08
уже сто раз было, приходилось график постфактум делать
07:08
физика проще нахер послать
07:08
тут скорее надо логику додумывать
07:13
я думаю для начала надо как раз сделать интерфейс чтобы графики можно было создавать и просматривать в ручном режиме, для самого простого случая с произвольным оид, а потом уже про обвес думать
07:14
а то прошлый заход закончился тем что выбранный движок отображения графиков не очень быстрым оказался
07:15
движок - дело поправимое
07:15
вот хранилка в базе нормальная - более сложный момент
07:16
07:16
там типа такого нужно вертеть
07:16
или затраты на агрегацию и вытирание старого будут как в заббиксе
07:20
в общем, надо хоть что-то делать
07:23
но такая схема жестко фиксирует периодичность опроса
07:23
хотя, можно и забить на это
07:25
периодичность надо задавать при создании графика
07:29
да нет
07:29
там суть в том, что на все графики она
07:29
и ее нельзя поменять
07:29
ну у кактуса оно вообще задается шедулером
07:29
те стандартные 5 минут
07:29
это на их совести
07:30
у нас, в принципе, есть PMDatabase
07:30
которые в разных коллекциях живут
07:30
и PMStorage
07:30
гранулярность на уровне storage должна задаваться
07:31
и где-то надо указать, что такие-то графики падают в такой-то storage
07:31
и на каждый storage должен быть job, который заранее будет документы созавать на следующий период
07:33
бля, опять с этими 6500/7600 жопа
07:34
коннекшены разные
07:34
платы можно и туда и туда воткнуть
07:34
как задать совместимость?)
07:35
dvolodin, как юзать compatible groups в connection types?
07:35
вы про какие платы?
07:37
там в модельках недавние коммиты
07:38
мсцф и пфц платы
07:38
и соответственно ответка в супах
07:38
ну так сделайте 2 connection type
07:38
по ошибке сделали все дфц их, вот пытаюсь поправить
07:38
дак и так 2
07:39
ну а какие проблемы?
07:39
только там еще 7600
07:39
и 6500
07:39
для каждого сови
07:39
свои
07:39
там просто разные супы
07:39
вы про что :)
07:39
дфц и прочее втыкается в платы а не шасси
07:39
где связь?
07:39
76 от 65 отличается только part no в idprom
07:40
бля, ну ты же сам комментил коммит
07:40
:)
07:40
на супе делаешь разъем msfc и pfc
07:40
и все
07:40
dvolodin, предлагаешь свернуть все коннекшены у ниверсальные для 6500\7600?
07:40
там другой прикол - с шиной и фабрикой
07:41
на шасси вроде 6513
07:41
и sfp+ выпилить и оставить только sfp
07:41
ибо нехуй :)
07:41
dvolodin, нок совместимость по коннекшену определяет
07:41
и не воткнет sfp в sfp+
07:42
а должен
07:42
это да
07:42
на самом деле там нужен третий тип, который хавает sfp и sfp+
07:42
потому как на многих картах дырка sfp+ -- строго для десяток
07:42
есть протоколы нде прописывается скорость и этого достаточно
07:43
в общем чтобы мосг не трахать, я оставляю коннекшены Cisco | 6500 | xxx, прописываю в дескрипшене что оно и для 7600 и меняю во всех модельках на них
07:43
ок?
07:43
6500/7600 htkbubz yt gjpdjkztn yfgbcfnm&
07:43
религия не позволяет написать?
07:44
создай мне директорию с таким именем
07:44
где оно будет лежать
07:45
один хер уид от какого то брать надо, чтобы не вообще во всех моделях менять
07:45
какая разница, через sed меняй и все
07:48
ну вентиляторы я трогать не буду
07:48
цлк втт тоже
07:48
дык у них свой conn type
07:48
07:49
вроде работает
07:49
zi_home: точно работает?
07:50
линки переписывает, криминальных последствий не замечено
07:51
07:52
погоди, с моделями разберусь
08:11
явистам похоже совсем нехуй делать уже.
08:29
уф.
08:30
счас залью в репо измененные модельки и коннекшены, проверьте там
08:31
пока MSFC/PFC универсализировал)
08:31
сами модельки плат в одну папку сваливать не стал, по партномеру пусть пока
08:40
_4ePTeHok, закоммить еще фикс для get_inventory
08:45
проверяй все скопом
09:00
_4ePTeHok, давай sfp+ выпилим
09:04
а то проблемы нарастают
09:08
Дима не одобрил)
09:08
там надо просто совместимость выставит
09:09
нет, он согласился
09:10
а еще есть мысль выкинуть вендор локнутые типы
09:11
по той же причине
09:13
ну ладно, подождем его
09:38
dvolodin, есть предложение выпилить sfp+ и vendor-locked типы коннекторов, оставить только реальные, то есть если дырка sfp то ее такой и делать, не заморачиваясь cisco/juniper -only она или нет, sfp+ -only она или нет
09:38
не
09:39
вот этого мне сильно не хочется
09:39
их наличие только мешает
09:39
а профита ноль
09:39
дырка sfp+ -- все-таки sfp+
09:39
дырка sfp+ все-таки sfp
09:40
одинаковые они
09:40
различие только в протоколе
09:40
для этого протоколы и сделали
09:40
тебя же не смущает что на циске в rj45 ходит rs232
10:32
=)
10:32
чото ты его спугиваешь)
10:48
zi_home, обновился?
10:48
норм модельки сожрались
10:49
ну ошибок не было
10:50
_4ePTeHok, передискаверил одну железку, msfc и pfc сразу воткнулись
10:50
ну заебца
10:50
а то там пиздец выгребать где чо не так
10:50
то рахъем, то тип попутали
10:51
я победю ASR9001 и тогда проверю что где у меня еще не воткнулось
10:52
dvolodin, пока ты тут флапаешь. напомни где патч чтобы нок предпочитал тип из базы, а не от скрипта
10:53
я думал что накатывал его, но нет
10:57
черт
10:59
гг
10:59
да хватит его пугать
12:40
насчет sfp+ подумать надо
12:40
может действительно и протоколами развести
12:50
dvolodin, а на счет патчика подскажи, а то без него железка не собирается. PS только не убегай :)
12:53
dvolodin, чтбы тип модуля брался из модели а не скрипта
12:53
накатил я его в понедельник
12:53
эммм
12:53
тогда не работает
12:53
хотя
12:53
...
12:56
dvolodin, нет, не работает
12:56
Submit vendor=CISCO, description=ASR 9000 Virtual Module, part_no=['A9K-MODULEv'], number=0, builtin=False, serial=N/A, type=MOD, revision=N/A
12:56
должен быть type=MPA - как в модели
12:57
погоди
12:57
это он пишет то, что в скрипте пришло
12:57
а реально использует из можели
12:57
но не втыкает
12:58
12:59
а
12:59
все, я понял
13:00
номер неправильный возвращает
13:00
Set context mpa = 0 -> NN=14, mpa=0, Nmpa=1, N=0, chassis=None, Nchassis=0
13:00
mpa=0
13:00
все нормально там
13:01
она втыкает в нулевой разъем
13:01
а надо во второй
13:01
NAME: "module 0/0/2", DESCR: "ASR 9000 Virtual Module"
13:01
PID: A9K-MODULEv, VID: N/A, SN: N/A
13:01
NAME: "module mau 0/0/2/0", DESCR: "SFP"
13:01
PID: SFP-10G-LR , VID: V02 , SN: FNS17412F96
13:01
NAME: "module mau 0/0/2/1", DESCR: "SFP"
13:01
PID: SFP-10G-LR , VID: V02 , SN: FNS17412BJC
13:01
NAME: "module mau 0/0/2/2", DESCR: "SFP"
13:01
PID: SFP-10G-LR , VID: V02 , SN: FNS17411X8D
13:01
NAME: "module mau 0/0/2/3", DESCR: "SFP"
13:01
PID: SFP-10G-LR , VID: V02 , SN: FNS174128UH
13:01
а скрипт вернул ноль
13:01
{'builtin': False,
13:01
'description': 'ASR 9000 Virtual Module',
13:01
'number': '0',
13:01
'part_no': ['A9K-MODULEv'],
13:01
'revision': 'N/A',
13:01
'serial': 'N/A',
13:01
'type': 'MOD',
13:01
'vendor': 'CISCO'},
13:01
черт
13:02
13:02
накати патчик
13:03
оно будет писать, если модель задает другой тип
13:03
а тут скрипт править, да
13:06
костыль поставил
13:06
dvolodin, теперь с sfp+ надо решать
13:07
с костылем понятнее?
13:08
да
13:13
вентилятор еще чего-то не втыкается
13:14
что ж за геморой то какой
13:16
а хер знает
13:16
Trying to connect #1. FAN (chassis=None, NN=1, Nchassis=0, N=0)
13:16
Trying to connect #2. MPA (chassis=None, Nchassis=0, NN=2, mpa=1, Nmpa=0, N=1)
13:16
вроде все правильно написал
13:18
со второго раза воткнул
13:18
хм
13:18
ну ладно
13:19
dvolodin, у меня тут витает мысль для трансиверов сделать опцию поддерживает ли модуль DOM или нет
13:19
modelinterface
13:19
куда-то туда
13:19
либо интерфейс
13:19
либо просто capabilities
13:21
тогда нок сможет выбирать и не будет пытаться дернуть DOM статус с портов которые его не поддерживают
13:21
но это пока только мысли
13:21
инвентори с остальной частью надо свзявать
13:22
SFP+ - вот проблема
13:31
zi_home, а вот тут есть большое но
13:32
мы же договорились что пиды объединяем под общей вывеской
13:32
а одни могут поддерживать дом - другие нет
13:32
вот тебе и грабли вылезут сразу
13:34
нет
13:34
там где пиды есть
13:35
все разделяется по пидам
13:35
сейчас просто нет смысла разделять когда различие только в форме рычажка для вытскивания
13:35
а у нонеймов нет пида
13:40
у киски трансиверы с одним pid'ом могут быть как с dom, так и без него
13:40
потому как сама киска оптики не делает
13:43
о чем и речь, что пид один, а реальных трансиверов куча
13:43
у нас модели объединяющшие по 5-8 пидов есть
13:44
нет такой детализации чтобы учитывать есть там дом или нет
13:46
хотя это и было бы интересным
13:46
как и скажем автоотключение лишних методов дискавери на основе get_version)
13:47
некая автоматизация профилирования
13:51
_4ePTeHok: последнее возможно только если будет адский гиперкуб по моделям, версиям софта и применимости отдельных метолов discovery
13:52
угу
13:52
но идея ведь красивая)
13:52
хотелка тоесть)
13:53
но как представлю ето хозяйство для длинка и их жопописательским прошивкам...
13:53
там проще застрелицо, чем матрицу нарисовать
13:54
а так да, прям соцеялизмъ = от каждого по способностям)
13:54
да и киска тоже
13:54
возьми мелкие каталисты
13:54
длинк это просто гипербола)
13:54
во всем)))
13:54
LLDP там работает начиная с 12.2(33)SE
13:55
но там еще есть SEE2, XA и всякая прочая нечисть
13:55
правда?) у меня нигде не работает))
13:55
методы дискавери надо не по версии софта определять а по конфигу
13:55
у меня работал нормально на 12.2(53)SE
13:55
одно дело -железка умеет, а другое - не включено
13:55
zi_home: ты напишешь парсер конфига
13:55
который скажет, что умеет железка?
13:56
13:56
dvolodin, это просто, не обязательно конфиг парсить
13:56
if "oam" in config:
13:56
if "rep" in config:
13:56
вкуды смотреть, в коммент последний?
13:57
zi_home:
13:57
interface blablabla
13:57
description "Foam show"
13:57
:)
13:57
ну и ничего страшного
13:57
zi_home, еще раз - одно дело не включено, другое - железка не умеет
13:57
ну можно if "ethenet oam" in config:
13:58
_4ePTeHok, я тебе и говорю, поверь, нельзя включить то чего она не умеет
13:58
interface blablabla
13:58
description "!!! Do not enable ethernet oam"
13:58
:)
13:59
спорить с Володиным..))
13:59
это всегда так увлекательно)
13:59
zi_home: inv-18 я не коммитил?
13:59
нет
13:59
он не готов был
13:59
ну и чудно
13:59
_4ePTeHok: можешь в репо пихнуть?
13:59
dvolodin, отмечай в трекере чтоли)
13:59
я только сейчас модель доделал
13:59
я в трекере отмечаю
13:59
dvolodin, ты авто включение/отключение id discovery сделай
13:59
впихнуть то запросто. было б куда и кому)
14:04
zi_home: а можешь сделать pull request?
14:04
нет
14:04
:)
14:05
полгода только код курить придется
14:05
гг
14:05
несложно - и тут же полгода
14:06
ну логика простая, а куда ее всунуть надо еще найти
14:06
"name": "Cisco | ASR9k | A9K-MODULEv",
14:06
лх не стал бы я такой пид класть во все 9л
14:06
9к
14:07
они же разные там бывают вроде
14:07
с разным набором потрохов, не?
14:07
может в 9001 все ж?
14:07
эээ
14:07
кто разные?
14:08
или во всей линейке один?
14:08
от 9001 до здоровых
14:08
он только в 9001
14:08
но серия то одна
14:08
не вижу смысла разделять
14:08
ну смотри, главное чтобы такого же пида не попалось потом
14:08
даже есть мысль остальные туда же засунуть
14:09
не попадется
14:09
я так думаю :)
14:09
иначе все равно никак
14:09
это самый простой вариант
14:09
если коллизия случится, тогда и переделаем
14:10
не имеет значения, сейчас или потом это делать
14:10
а пока и так сойдет
14:12
SFP+ - надо решать
14:23
блин, теперь Lost&Found не открывается
14:24
хз
14:24
жму развернуть
14:24
оно крутит кругом и все
14:24
в консоли ошибок не видно
14:24
я закомитил
14:25
наверно дохера у тебя там просто
14:25
а нет, есть какая-то ошибка. когда дохера он дольше крутит. сейчас трейс посмотрим
14:26
млять
14:26
UNHANDLED EXCEPTION (2014-06-15 18:27:54.916131)
14:26
Working directory: /opt/noc
14:26
<class 'mongoengine.base.ValidationError'>
14:26
Unable to dereference <class 'noc.inv.models.objectmodel.ObjectModel'>:528ba0faf3b682005b9788a1
14:26
START OF TRACEBACK
14:26
агась
14:26
ниже смотри
14:26
после такого в инвентори соваться не хочется
14:28
хм
14:28
надо смотреть что утебя в базе под этим айдишником
14:28
что то удаленное наверно
14:29
ммм
14:29
если в могу лезть
14:29
*монгу
14:29
я даже не знаю как
14:33
db.noc.objectmodels.find({_id: ObjectId("5288d24d5c8b827f343acea4")})
14:33
только айди свой
14:34
> db.noc.objectmodels.find({_id: ObjectId("528ba0faf3b682005b9788a1")})
14:34
>
14:36
> db.noc.objects.find({_id: ObjectId("530afb52f3b682045a7bce89")})
14:36
{ "_id" : ObjectId("530afb52f3b682045a7bce89"), "model" : ObjectId("529ee77bf3b682392f8d6a09"), "container" : ObjectId("530afb52f3b682045a7bce88"), "name" : "Global Lost&Found" }
14:37
_4ePTeHok, во
14:37
> db.noc.objects.find({_id: ObjectId("532c259df3b6826da1570e31")})
14:37
{ "_id" : ObjectId("532c259df3b6826da1570e31"), "container" : ObjectId("530afb52f3b682045a7bce89"), "model" : ObjectId("528ba0faf3b682005b9788a1"), "data" : { "asset" : { "serial" : "FNS17041572", "revision" : "A" } } }
14:37
> db.noc.objectmodels.find({_id: ObjectId("528ba0faf3b682005b9788a1")})
14:38
дропнуть?
14:42
по серийнику это трансивер
14:43
ну ебнуть мало
14:43
там же еще линк
14:43
dvolodin, ты же делал команду какую то чтобы линки вычищать?
14:45
да у него лост энд фаунд модельку потерял
14:45
объект сам можно дропнуть, а про линк я помню что ты вроде делал команду какую то
14:45
или это при удалении из веб модры модельки оно чистило
14:45
совсем память дырявая стала
14:46
=) пора ECC ставить)
14:46
каким боком тут линки?
14:47
линк между трансивером и платой
14:47
родителем и детьми
14:47
=)
14:54
таки чего мне сделать?
14:54
format c: ?
15:14
_4ePTeHok, таки дропнуть?
15:17
млять
15:17
опять все сломал
15:22
все дропнул, теперь надо корень обратно создать и Lost&Found
16:01
подебил
16:13
_4ePTeHok, тут?
Share this page
Share this page: