nocproject.org
06:51
...
06:51
вот и поговорили)
06:52
и вам доброго утричка
06:53
бля. вот мы вчера покутили.
06:53
кто то мне в 10 часов вечера звонил и спрашивал почему не смог добраться до адрессных планов. а я не помню что звонок вообще был.
06:53
но в телефоне звонок есть
06:54
что то странное
06:59
ну так. посидели хорошо
07:02
володин есть? сортировка в алярмах по длительности нарушилась
07:02
Invalid value for 'remote_capabilities': IntParameter: '`\\x00' - подскажите что с этим сделать ?
07:04
представляю что нужно преобразовать hex в int но как не понимаю
07:47
Krakozaber: это какая железка такое выдала?
07:48
китайцы по традиции фигачал в cli output бинарные данные?
07:48
и не собираются исправлять?
07:52
а
07:53
в микросервисах оно корректно отдаст int
08:24
да да
08:24
именно
08:24
:-)
08:26
Знакомое чувство...
08:27
dvolodin: если покажешь пример где преобразовывается правильно буду благодарен
08:29
Krakozaber: в develop руками преобразуй
09:48
Что-то тихо совсем.. Все работает..
10:05
local_interface = v[0].split('.')[1] в чем косяк ?
10:06
нам вчерашнего хватило
10:08
ужас как жить я ненавижу D-Link ещё больше, весь код профиля в костылях под разные модели
10:17
гыгыгыгыгы
10:17
гыгыг хахахаха
10:19
ненависть нужно возмещать на закупках
10:19
например, послать их нафиг :)
10:21
ну, to my mind обкостыленность профиля - проблема не только длинка, но и одного товарища.
10:22
страшно подумать, во что оно превратится при активном добавлении snmp
10:25
Krakozaber: просто профиль охватывает продукты с 15-ти летней историей
10:26
под киски SG300 кто-то LLDP модулем поделится ?
10:28
печалько :-(
10:39
pong
10:39
давайте его забанем. мне он не нравится.
10:41
лдогадайся с трёх раз
10:46
e_zombie нельзя банить. он лицо^Wсиськи нашего канала
10:46
хохохо
10:47
и котиков
10:47
10:47
10:47
10:48
Krakozaber: lldp в циске ужасен
10:48
дооооо
10:48
ужасно там всё
10:48
evyscr: его там еще найти надо
10:49
а кто не пьёт? нет, ты назови, я жду
10:49
я знаю что он есть, но никогда в работе не видел
10:49
это потому, что никто не дает доступа на железки, тестировать не на чем
10:49
у меня 6524 недавно линковались с джуниперами через ллдп
10:49
Dmitry1: это потому, что я запатчил
10:49
у меня DLink, Catalist, SG300, HP живут по LLDP
10:50
evyscr: что запатчил ?
10:50
только EdgeCore плюётся
10:50
lldp_discovery, вестимо
10:50
ёжики дохнуть начинают в кольцах если там ллдп опрашивать
10:51
ежели с консоли запросишь - подохнет?
10:51
evyscr: в смысле ? твой патч в апстриме, или у тебя локально ?
10:51
там как приходит запрос он начинает опрашивать соседей по ллдп и начинается свистопляска с маршрутами.
10:52
поэтоу отключено от греха подальше.
10:52
Dmitry1: давно уж в апстриме
10:52
впрочем, у меня уже новые наслоения
10:52
пипл, есть такая ботва 2015-12-29 10:47:11,736 [noc.lib.scheduler.job] [inv.discovery][vlan_discovery][TTDORDEQ1DCAG01] UNHANDLED EXCEPTION (2015-12-29 10:47:11.716916) BRANCH: develop TIP: a942bf434bc7 PROCESS: ./scripts/noc-discovery.py WORKING DIRECTORY: /opt/noc EXCEPTION: <class 'django.db.utils.IntegrityError'> duplicate key value violates unique constraint "vc_vc_vc_domain_id_21725b7fb0adaf81_uniq"
10:53
регай саппорт в настройких. крешь отправляй.
10:53
как понимаю, это говорит о том, что влан с именем "vrfttnetalphaeBGP-BT" уже существует где-то?
10:53
в постгрес его нет
10:53
noc=# select * from vc_vc where l1='1995'; id | vc_domain_id | l1 | l2 | description | name | style_id | state_id | tags | project_id ----+--------------+----+----+-------------+------+----------+----------+------+------------ (0 rows) noc=#
10:54
то есть вот
10:54
noc=# select * from vc_vc where name='vrfttnetalphaeBGP-BT'; id | vc_domain_id | l1 | l2 | description | name | style_id | state_id | tags | project_id ----+--------------+----+----+-------------+------+----------+----------+------+------------ (0 rows) noc=#
10:54
нет влана с таким name в БД
10:54
а зачем l1?
10:54
vc_vc_vc_domain_id
10:54
с l1 неправильный запрос
10:55
там просто несколько подобных сообщений
10:55
"local_interface": "Gi 0/20" - "remote_port": "Gi0/20" - так не слинкуется ?
10:55
блин, а где в ноке схема pgsql?-)
10:56
по поводу "регай саппорт в настройках". Это же опенсорс проект, без саппорта. Не?
10:56
Krakozaber: должно
10:56
ежели полимеры не просраны
10:56
z_pedalkin: /main/desktop/#support.account
10:56
z_pedalkin: да, но анальный зонд уже стоит
10:57
а что вы хотите от бздояблов?
10:57
и опенсорс никак не отменяет платного саппорта
10:57
его другое отменяет
10:57
и можно подумать, что это плохо
10:57
"расслабьтесь и постарайтесь получить удовольствие"
10:58
dvolodin: как тебе сказать, фактически идея опенсорса умирает
10:58
что должно совпасть для установки линка по LLDP ?
10:58
чтобы за что либо платить деньги, необходимо, чтобы базовая версия работала
10:58
z_pedalkin: вот заплатишь и будешь требовать чтоб работала
10:58
таки я не требовал, чтобы работала
10:58
zi_rus: идея опенсорса заключается в том, что у тебя есть исходники
10:59
и ты можешь их править
10:59
и ваще понимать на чём оно сковырнулось.
10:59
на виндоус тоже исходники есть. Что-то еще никто не поправил :)
10:59
а то некоторые персонажи компиляют софт в 21 первом веке без дебаг инфы
11:00
блин. я сразу предлагал этого неблагонадёжного забанить.
11:00
если не можешь сам - попроси того, кто может
11:02
dvolodin: смотри такую вещь, раньше все писали свои программы, а потом их начали продавать, потому что все накручивалось и усложнялось, теперь опенсорс, вроде бесплатно и круто, но некоторые вещи уже самому не настроить и не исправить, и ты и
11:02
а потом намеренно начинают усложнять
11:02
чтобы ты никуда уже не делся
11:03
вроде бы правильную вещь делают, но хуй ты там что исправишь
11:04
срачи в lkml читал?
11:04
срачей везде полно
11:04
я просто пример привожу
11:04
у них есть некоторые проблемы в головах
11:04
я за системд если он реально полезен
11:04
а это так
11:04
но без саппорта баг ты не исправишь
11:05
в инит-скрипте поправить можно и на самой машинке
11:05
и все заработает
11:05
а в системд у тебя на руках только юнит
11:06
я не буду исправлять ни того ни другого, я просто скажу что линукс говно
11:06
и опять ничего не работает
11:06
Krakozaber: "local_interface": "Gi 0/20" - "remote_port": "Gi0/20" - так не слинкуется ?
11:06
блин
11:06
интерфейсы должны быть приведены к одному виду
11:07
системный подход каменного века, а староебы все еще пытаются пихать его во все щели
11:07
в профиле железки должна быть функция вида "convert_interface"
11:09
Krakozaber: смотри в прфиле cisco.ios функцию convert_interface_name
11:09
Dmitry1: боюсь, у него как раз cisco.ios -)
11:10
evyscr: На одной из сторон точно, а на другой - знают только участники битвы экстрасенсов
11:11
кто сказала Зелёный слоник ?:
11:13
с одной стороны 2960x с другой des-1210-52 C1
11:15
с обычным 2960 линк склеился а с 2960x не хочет
11:16
попадает в список потом сразу исчезает
11:18
Krakozaber: дай угадаю
11:18
"local_interface": "Gi 0/20 - это 2960x
11:18
"remote_port": "Gi0/20" - это des-1210-52 C1
11:18
профиль у длинка какой?
11:19
DxS_Smart, написал sa по SNMP забирающий LLDP
11:19
там нет cli, но есть lldp и snmp
11:20
там и convert_interface_name нет
11:20
как еще сделать, чтобы определенную задачу из "Service Activation->Managed Objects -> Object -> Discovery" запускать сразу для нескольких объектов Service Activation?
11:21
импортировал CSV, а некоторые объекты незадискаверились
11:21
больше половины
11:21
что значит "незадискаверились"?
11:22
свойства объектов такие как platform, vendor
11:22
джоб есть? статус есть?
11:22
незадискверились, а конфиги, интерфейсы и тп сделались
11:22
где его вытащить?
11:23
если job id вытаскивается из логов, тогда нет
11:23
я удаляю логи каждый день, тк безмерно растут
11:23
окай. отвечаю: у тебя что-то не работает.
11:24
на слово "незадискаверились" будет именно такой ответ
11:24
изначально я по одиночке девайсы разных вендоров и моделей добавлял - работало
11:24
человек, не способный однозначно описать проблему, не заинтересован в её решении
11:25
тут как бы настолько все запутанно, что непонятно с какого краю подступиться :)
11:30
z_pedalkin: открой для себя heartbeat = true
11:30
logsize = 1G
11:30
logfiles = 9
11:30
syslog_host =
11:31
/noc debug-script get_version asw2-72-eng
11:32
11:32
11:32
это отдается
11:32
но не отображается в списке объектов
11:32
2015-12-29 11:28:25,197 SCRIPT RESULT: Arista.EOS.get_version(TTDORDEQ1LSWTA02, 10.111.255.150) {'platform': 'DCS-7150S-52-CL-R', 'vendor': 'Arista', 'version': '4.14.5F'}
11:33
когда запускаешь скрипт через ./noc debug-script xxx yyy
11:34
он должен положить данные в базу данных?
11:34
после него и не должно ничего добавляться.
11:34
инфа 100%
11:34
или это типа dry run
11:34
а как сделать так чтобы обновлялось?
11:34
только после того как пройдёт дискавери. лезь в карточку МО и там тыкайся в дискавери
11:34
у меня таких объектов сотни
11:35
в каждый тыкать - заипешься
11:35
я вот и спрашиваю, можно ли запустить какой-нибудь скрипт вручную, чтобы не ждать discovery?
11:35
успокойся. сядь прямо. погляди логи sae для любого хоста который не отдискаверился.
11:36
11:36
у тебя чё?
11:37
не понимаю а как тогда d-link с обычным 2960 линкуются...
11:39
Krakozaber: смотри, если длинк выдает "Gi0/20" в lldp, то он это должен выдавать и при show ports, и при show lldp как локальный порт
11:39
version_discovery, который есть get_version, даже не запускался
11:39
иначе - нужно в convert_interface_name привести это все к одному виду
11:40
z_pedalkin: так а что у тебя ping c X ? у тебя то хост ваще живой ? если задача пинг не отработала то все задачи для данного хоста останавливаются.
11:41
у тебя в профиле Is Managed? вообще с галкой ?
11:41
этот хост находится за firewall, который блочит icmp
11:41
Krakozaber: а заодно lldp использует функцию get_interface_names, которая возвращает массив из возможных написаний интерфейса
11:42
поэтому ping отключен
11:42
11:42
вот вывод
11:42
кого к кому приводить ?
11:43
например: в профиле DLink.DxS для интерфейса "1/1" оно вернет массив ["1/2", "2"]
11:44
Krakozaber: не так
11:44
local_interface совпадает с именем порта на самом девайсе
11:45
скрипт lldp определяет, что удаленная железка - Cisco.IOS, и скармливает ему "Gi0/20"
11:45
z_pedalkin: а у тебя в алярмах для него нету события пинг таймаут ?
11:45
evyscr: я правильно сказал ?
11:47
main/desktop/#main.reportdbsummary погляди сколько у тебя sa_maptask
11:47
e_zombie: является ли включенный ping в профиле объекта условием для запуска version_inventory?
11:48
хз. я знаю что если пинг фейлед то всё стопится
11:48
если пинг включен и фейлит, тогда стопится
11:48
а если НЕ включен, то не стопится
11:48
есть десятки других объектов с таким же профилем, где все работает
11:49
/main/desktop/#sa.monitor
11:49
других объектов того же класса, вендора и модели. Единственные различия в hostname и management_ip
11:50
кстати как ты собираешься проверять доступность оборудования без пингов ?
11:50
у меня нет такой задачи - проверять доступность
11:50
если оно недоступно, то скрипты будут таймаутить
11:51
для меня это достаточно
11:51
достаточно ли этого для noc?
11:53
у тебя будут повисать невыполненные задачи и кровь кишки распидорасит
11:53
11:54
реальное различие в ip адресах
11:54
а ты случаем дискавери не через sql делал ?
11:54
включал
11:54
нет
11:55
я добавил эти два объекта через сsv-import
11:55
как можно его сделать через sql?
11:55
или sql это опечатка и имелось в виду csv?
11:55
можно через sql но потом может быть жопа.
11:56
11:58
e_zombie: а что нужно ждать в логах?
11:59
запуска неотработанных дискавери.
11:59
в каком-то определенном надо смотреть? или через tail -f * ?
11:59
при таком количестве объектов там все pretty much нечитаемо
12:00
2015-12-29 11:54:05,861 [noc-sae] All activators are busy in pool 'default'
12:00
сейчас еще раз попробую
12:01
вот тебе и причина. у тебя активаторы заняты хернёй какойто .
12:01
увеличивай их количество.
12:01
z_pedalkin: сколько у тебя активаторов и скриптов на них?
12:01
все по умолчанию
12:01
я так понимаю, что это 1 активатор с 10 одновременными скриптами
12:01
ну и тупить то зачем ?
12:02
поставь 100
12:02
а лучше 10000
12:04
поставил, перегрузил noc через /etc/init.d/noc-launcher
12:05
наслаждайся
12:05
теперь пырься в логи сае
12:05
демон noc-sae не запускается с параметрами конфига размер лога 1G и количество логов 9
12:05
:)
12:05
настрой какие тебе нравятся
12:08
таки он не запускается ни с какими отличными от "0"
12:08
или от дефолтов
12:08
пробовал и 100M
12:08
и 100m
12:08
и тп - только 0
12:08
у тебя ваще какая ветка стоит ?
12:08
develop
12:09
сделал ./script/upgrade
12:09
а ты точно не на русском языке там М набираешь ?
12:09
в noc-sae.log наблюдаю пока get_config, get_cdp_neighbors, get_vlans и тп
12:09
с различнми статусами, но не вижу get_inventory или get_version
12:12
logsize изначально в байтах. буковки делались после.
12:13
а жить без log_jobs вообще хреново
12:14
ensure_jobs или как-то так
12:15
а не, DiscoveryJob.apply_object_jobs(m)
12:16
но для этого надо получить внятный ответ о наличии джоба дискавери.
12:17
Dmitry1: где-то можно посмотреть лог лвязывания девайсов ?
12:17
evyscr, точно не на русском. это я в чате, возможно, по-русски написал. Но там - только латинские
12:18
язабан (q)
12:18
ещё и не смотреть, кто что спрашивает. ох и молодёжь пошла.
12:19
ваще ппц, куда мир катиться...
12:21
evyscr, это в каком файле смотреть и какое ключевое слово при грепе?
12:22
у грепа есть ключ -r
12:22
а все ключевые слова уже сказаны
12:24
если это слова: ensure_jobs, DiscoveryJob.apply_object_jobs или их части, то по ним ничего внятного не ищется
12:25
или по крайней мере внятного для моих глаз
12:25
есть типа "[noc.inv.models.discoveryjob] Installing discovery jobs watchers"
12:25
Krakozaber: в noc-discovery.conf есть ключик "log_jobs ="
12:26
Krakozaber: делаешь "log_jobs = /var/tmp" - и наблюдаешь там логи с каждого устройства
12:32
как говориться "ну и?"
12:32
"08:50 TSergey: после создания МО из питона, надо запустить DiscoveryJob.apply_object_jobs(o)"
12:32
я не создавал объект из Питона
12:32
я создавал объект из CSV
12:34
12:37
ясен хреф
12:37
импорт модуля делать надо или где?
12:38
внезапно, питоновского.
12:38
even нокопитоновского
12:40
имя у него, вероятно, есть. но я так и не получил внятного описания состояния дискавери.
12:42
без оного пытаться фиксить глупо
12:42
12:43
я даже не понимаю, что искать, честно говоря
12:43
скрипты, запущенные по отдельности и вручную, например, ./noc debug-script xxx object_name работает
12:44
12:45
например если кликнуть на "version_inventory" и потом на Run, то результат выдастся, но в атрибутах в "карточке МО" не появятся"
12:46
хотя
12:46
вот теперь можно сказать, что джоба нет
12:46
после манипуляций со скриптами выданными ранее в чате, все объекты задискаверились
12:48
так вот. при пустой строке можно утверждать, что джоб не создан. причины этого могут быть самыми разными. импорт объекта из csv вполне подходит под причину.
12:49
item, объекты не дискаверятся.
12:50
дискавериться могут, например, version inventory
12:51
если для объекта не создался джоб (один или несколько) дискавери, джобы можно [пере]создать.
12:51
12:51
то есть пересоздавание джобов?
12:51
нет
12:52
это, конечно, баг, но легче от того не становится
12:52
тогда я не понял, что могло вызвать discovery для объектов, которые не были задискаверены?
12:52
discovery job
12:54
mo.save() _должен_ создавать отсутствующие джобы. но... см. логи канала.
12:55
именно поэтому используется DiscoveryJob.apply_object_jobs
12:57
12:58
absent на missing надо заменить :)
13:03
что, в школе не спрашивали "who's absent today?"
13:04
не
13:04
т
13:04
школа - это не обязательно правильно
13:07
отсутствующий missing, absent, vacant, faraway, vague, wanting
13:08
то есть там должны появляться МАК-адреса из get_mac_address_table ?
13:08
там галочек в 10 местах надо проставить
13:09
оо
13:09
да ты не знаешь
13:09
значит не делал
13:09
салага
13:09
?
13:10
если б знал, то не спрашивал :)
13:11
в общем тебе надо включить мак дискавери
13:11
в Noc.conf
13:11
в mo profile
13:11
в interface profile
13:11
в mo profile
13:11
ипать
13:12
вот давай анп забаним
13:12
да, mac_discovery включен в noc.conf
13:12
e_zombie: что за приступ бдсм?
13:13
свой написанный SA куда-то добавлять надо ?
13:13
errr
13:13
Krakozaber'у больше не наливать
13:13
в interface discovery profile "default" есть чекбокс MAC-Discovery
13:14
Krakozaber: ты что именно написал-то?
13:14
профиль?
13:14
и в дескрипшене "Fallback interface profile. Do not remove or rename"
13:14
get_lldp_neighbors.py
13:14
он появился в командах
13:14
так я думал, что лучше вообще не трогать этот профайл, а то крякнется еще что-нибудь
13:15
но выполнить get_neighbors не может
13:15
да профиль
13:15
да ничего не будет
13:16
просто этот профиль на всех интерфейсах по дефолту
13:16
снесешь, говна не оберешься
13:16
а настройки хоть до усери меняй
13:17
про пул реквест понятно
13:17
Krakozaber: name правильный?
13:17
да, он работает когда локально вызывается
13:17
а когда вызывается job-ом на девайсе что-то не так
13:21
"локально" - это как? через debug-script или веб-морду?
13:22
zi_rus, ага. чекбокс поставил в дефолтном интерфейс профайле - заработало. Спасибо!
13:22
боль и страдания тебя ждут
13:22
заработало оно это не то что ты хочешь
13:23
кстати, у меня сразу заработало так, как я хотел
13:24
в дефолтном, конечно, всё выключено
13:25
ну ты мой пируль заюзал
13:25
наверное
13:26
нет
13:26
мог в него поглядеть, но делал сам
13:36
Подскажите пожалуйста.
13:36
Создал в service activation > management objects несколько коробок (qtech 2800|8200, juniper mx80-p). На всех коробках включен lldp.
13:36
во вкладке links по каждому объекту есть связи, но ни одна не commited. Вручную approve проходит и на соседе также становится lldp+manual. Куда рыть, чтобы связи по lldp устанавливались автоматически?
13:36
это багафича. нужныкостыли.
13:37
плюс я тебе скажу что на 2800 если они в кольце и влючен дискавер поллдп то начинает штырить маршрутизацию
13:37
колец в L2 нет, почти все поборол.
13:37
А lldp_discovery в mx80-p fail - тоже баг?
13:37
пардон, фича..
13:37
возможно
13:38
закидывай багрепорт на багзиллу
13:39
anp135: смотри логи lldp_discovery по _обеим_ сторонам
13:39
/noc debug-script get_version asw2-72-eng
13:39
да я себе моск сломал, get_lldp_neighbors срабатывает но обоих сторонах
13:40
но порты для связки даже не появляются
13:40
точнее появляются и исчезают
13:40
ну таки имена разные
13:40
надо же, чтобы с двух сторон совпало
13:41
(с точностью до символа)
13:41
на 2960 линки выставляются, а на 2960x нет
13:41
имена в mo и neighbor у меня совпадают
13:41
эээ
13:41
имена интерфейсов
13:43
визуально сопадают. собственно как они могут не совпадать, если это расписывает сам lldp?!
13:44
Krakozaber: ты log_jobs включил ?
13:45
Привет. Подскажите, можно ли в VC bind filter прописывать несколько префиксов?
13:45
да, но там просто пишет мак устроства -> none
13:45
хотя на том устройстве LLDP так же опереляет соседа
13:46
Dmitry1: где-то надо добавлять каким скриптом проводить проверочный discover ?
13:46
Dmitry: Krakozaber: в noc-discovery.conf есть ключик "log_jobs ="
13:47
включил, но там нет никаких ошибок
13:47
Dmitry: Krakozaber: делаешь "log_jobs = /var/tmp" - и наблюдаешь там логи с каждого устройства
13:47
anp135: про log_jobs - тебе тоже
13:47
evyscr: включил, log_level поставил в debug
13:47
пока видел только [inv.discovery] Job lldp_discovery(MX24) is failed
13:48
перезапустил noc
13:48
если мак -> none - значит, либо мака нет в id_discovery/interfaces, либо имеется более одного
13:48
anp135: я починю джунипер
13:48
кинь мне debug-script
13:49
Dmitry1: в жире последний issue посмотри
13:49
Dmitry1: который 1717
13:49
/noc debug-script get_version asw2-72-eng
13:50
/noc debug-script get_lldp_neighbors
13:50
Dmitry1: там накосячили с caps
13:52
13:53
при том 2 линка с d-link-ами он установил
13:54
и что?
13:54
интерфейсы-то называются по-разному
13:54
делай convert_interface_name
13:55
в конце имя МО поставь
13:55
для хоста
13:56
Krakozaber: повторяю, делай convert_interface_name
13:56
шобы пробел вставил
13:57
DxS_Smart
13:57
__init__.py
13:57
нет
13:57
функцию создай
13:58
ну функцию понятно, пробел вставлять в remote_port ?
14:01
не подскажете, как можно группе mo поменять SA profile? в management objects -> group edit сие поле недоступно.
14:04
галочки выделяешь через шрифт и там есть сверху групповое изменение.
14:04
но лучше используй автоопределение типа оборудования по снмп.
14:04
это поле нельзя менять в групповом изменении -(
14:04
14:05
у менялюди меняли циску на джуниперы - утром всё отработало норм.
14:05
а на доступе такое вообще сплошь и рядом.
14:06
руками гиммороиться с этим смысла никакого
14:06
это то самое автоопределение?
14:06
там и автодобавление рядом лежит
14:07
пили шаблоны под своё железо и наслаждайся.
14:10
добавил пробел но всё равно не склеиваются линки
14:10
Krakozaber: тебе надо только написать функцию. её _уже_ пытаются вызвать.
14:11
так написал
14:11
вызывает
14:11
порт теперь с пробелом
14:14
лог джоба покажи
14:14
то есть джобов, с двух сторон
14:14
14:15
anp135: проверь
14:15
а как применить теперь? в upgrade поменять default на develop?
14:16
ох
14:16
да, только девелоп, дефолт мёртв
14:16
ну парддонте, не знал -)
14:16
чую щас сломаю всё себе…
14:17
оно того стоит.
14:18
Dmitry1: твою мать. какого ты это в микросервисы закатал а не в девелоп ?
14:18
а у меня теперь нету develop :(
14:18
ну заебись. а всем что полгода делать ?
14:19
блин, щас попробую в develop загнать
14:20
после upgrade /noc fix надо?
14:20
14:20
anp135: жди пока это в девелопах будет
14:21
e_zombie: ты упрлс
14:21
Dmitry1: уверен, что это правильный путь?
14:21
закоммитил в develop
14:21
evyscr: я уверен, что неправильный путь
14:22
более того, я уверен, что это мегакостыль
14:22
пиши TODO али FIXME
14:22
для того же длинка я тупо рядом ставил freebsd с демоном lldpd, в котором по очереди менял все возможные варианты capabolities
14:22
у кого есть доступ до стандарта LLDP - скиньте мне -)
14:22
джентельмены, (стдыно блин, но надо) теперь снова upgrade или /noc fix?
14:22
а на длинке смотрел, как оно отображает
14:23
как вариант - кирпич в сторону anp135
14:23
не, у него другие проблемы
14:24
если ему очень нужно lldp на juniper, пусть поставит рядом машинку с linux и софтовым демоном lldpd
14:24
и в исходниках этого демона меняет разные комбинации capabilities
14:25
anp135: теперь можно
14:26
ага, вылез другой глюк
14:27
ага, добавилась ещё одна строка с fail -)
14:28
фига вы текста нагенирили
14:29
теперь на 80ке interface_status_discovery fail и lldp тоже
14:32
можешт в нормальном виде вывести show lldp neighbors interface xe-0/0/1 ?
14:32
не могу продраться через эти "\n"
14:33
там в самом скрипте есть
14:33
rx_detail, rx_detail1, rx_detail2. х.з., какой из них срабатывает
14:34
Port type : Port component
14:36
педерастические {}[]
14:37
{} нету, а [] есть пameconv.
14:37
evyscr: и что запорт такой "Port component" ?
14:38
бывают также $$ и другая херня в изобилии
14:38
anp135: что за порт такой "Port component" ?
14:39
2 небось
14:39
LLDP_PORTID_SUBTYPE_PORT
14:39
хз. это же кутек
14:39
скорее всего имеется ввиду комбо-порт
14:40
мне тут RFC подсказывает, что это "Interface Alias"
14:41
пусто
14:42
по данному порту не видит rx
14:42
у этого "KRD-SCH-PSE54-SW50-Q3900" есть аналог длинковского show lldp local_ports ?
14:42
sh lldp interface только
14:43
14:43
чтобы он про себя рассказал
14:43
какой тип порта у него
14:44
про себя он не умеет
14:44
щас покручу, может починю rx ему..
14:46
Dmitry1: какой rfc?
14:46
LLDP не в RFC
14:47
IEEE Std 802.1AB-2009
14:47
почему-то то что описано в RFC реализовано лучше чем в стандартах
14:49
не, не видит qsw-3900 по lldp mx80-p
14:51
будем думать, что 2
14:51
или 1 ?
14:52
The enumeration 'portComponent(2)' represents a port
14:52
identifier based on the value of entPhysicalAlias (defined in
14:52
IETF RFC 4133) for a port component (i.e., entPhysicalClass
14:52
value of 'port(10)'), within the containing chassis.
14:54
в qtech-3900 это combo gjhn
14:55
это 2
14:55
а делать будем по-другому
14:55
так
14:55
засунул пока в микросервисы
14:57
щас в develop запулю
14:57
а вот после upgrade в develop по тому же mx80-p interface_status_discovery Fail, это как покопать?
14:59
Dmitry1: don't do it Duddley
15:01
Dmitry1: серьёзно, лучше оставь до завершения каникул
15:02
anp135: в логах джоба что есть?
15:04
пишет Running script get_interface_status_ex и Job completed successfully (6.63ms)
15:06
о пля, теперь побелело… -/
15:07
anp135: ну вот по поводу "Port component" мне прищлось лезть в гугль, поднимать документацию по lldp и смотреть, что это такое
15:07
нажал руками Run - опять покраснело но в noc-dicovery.log не нашел свежих логов по данной коробке
15:08
Dmitry1: ?!
15:09
это плохое оправдание кривости нококода
15:09
вот, поймал в логах сие:
15:09
2015-12-29 18:04:33,411 [noc.lib.scheduler.job] [inv.discovery][interface_status_discovery][KRD-SCH-PSE54-R-MX80] Running script get_interface_status_ex
15:09
2015-12-29 18:04:34,431 [noc.lib.scheduler.scheduler] [inv.discovery] Job interface_status_discovery(KRD-SCH-PSE54-R-MX80) is failed
15:10
я про то, что патч тривиальный. если хочешь более полной поддержки джунипера, поступай как я с длинками. тупо пытайся подключить к нему все подряд устройства и собирай статистику
15:11
anp135: ну так запусти get_interface_status, и посмотри, чего ему не нравится
15:11
Dmitry1: а ты что, коды lldpd не читал?
15:11
evyscr: я их наизусть помню :)
15:12
как и синтаксис всех моделей длинка, циски и джунипера
15:13
не, ну в lldpd явно указано, что этот сабтайп - unsupported
15:14
а ты хвастался про его взаимодействие с длинком
15:14
:)
15:16
get_interface_status_ex
15:17
и ежели через debug-script - то с '-c-'
15:19
anp135: ну так нормально выдает get_interface_status
15:21
anp135: и, кстати, смотри заодно sa -> reports -> failed scripts
15:21
а зачем -с? он не возьмёт с конфига snmp community ?
15:21
-c- - чтоб взял из конфига
15:22
в хелпе про это не написано
15:22
это очередное (блядское) тайное знание
15:23
войну и мир мне выдал. в failed_scripts трейбек лежит
15:23
угу
15:23
там небось про dict parameter
15:24
это (относительно) известный баг нока
15:24
это идеология такая
15:24
мои действия? расслабиться?
15:25
в скриптах специально допускается вываливание в traceback, чтобы можно было найти причину
15:25
ты хоть знаешь, про какой баг я говорю?-)
15:25
про вываливание из SA скриптов
15:25
'nj yt ,fu
15:26
нок падает, когда ему по snmp не всё прилетает
15:26
ок, если это не баг, то это пиздец.
15:26
ну тек нужно дебажить
15:27
чо дебажить-то?
15:27
код править надо
15:27
у меня физически нету возможности это делать сейчас
15:27
потому как я застрял в башне на установке mongodb-3.2
15:27
я решил, что не буду править до конца каникул
15:29
anp135: можешь расслабиться. рано или поздно тебе повезёт, и snmp пришлёт полные таблицы :)
15:29
он периодически присылает судя по всему -)
15:29
строка в discovery по коробке то белая то красная
15:30
15:30
там правда каша =(
15:31
ну так оно ругалось
15:31
2015-12-29 18:16:12.024000 KRD-SCH-PSE54-R-MX80 85.174.230.24 Juniper.JUNOS.get_lldp_neighbors 14 <class 'noc.sa.interfaces.base.InterfaceTypeError'> DictParameter: {'neighbors': [{'remote_chassis_id_subtype': 4}], 'local_interface': 'xe-0/0/2'}. Invalid value for 'neighbors': DictParameter: {'remote_chassis_id_subtype': 4}. Attribute 'remote_port' is required in {'remote_chassis_id_subtype': 4}
15:32
вроде ж починили ?
15:32
ну не проапгрейдились
15:32
и, если чо, этот патч только у меня заработает :)
15:33
anp135: там есть специально обученный отчетик по "failed scripts"
15:34
дык sa -> reports -> failed scripts я и показал вторым бином
15:34
а в traceback оно специально в 90% случаев выпадает
15:36
evyscr: я пока не могу протестировать. у меня NOC в оффлайне уже несколько месяцев.
15:37
но там реально нужно дописывать как lldp, так и cdp
15:37
*переписывать
15:38
я в своём патче ещё не выбросил дублирующий код
15:38
там и у lldp, и у cdp одна болячка
15:38
я помню твою идеологию
15:38
и не во всём с ней согласен
15:39
там половину функций нужно вынести в профиль
15:40
такие как get_interface_name и comvert_interface_name
15:44
для того же qtech
15:44
оказывается, что portComponent == interfaceName
15:45
evyscr: смотри как я думаю
15:45
вместо такого:
15:46
1: self.get_remote_port_by_description, # interfaceAlias(1)
15:46
3: self.get_remote_port_by_mac, # macAddress(3)
15:46
5: self.get_remote_port_by_name, # interfaceName(5)
15:46
7: self.get_remote_port_by_local, # local(7)
15:46
128: self.get_remote_port_unspecified # undetermined
15:47
вызавать одну функцию, куда паредавать тип порта, имя порта, и его описание
15:47
если в профиле есть такая функция, то она сама правильно распарсит это все
15:47
иначе - общие правила для всех
15:48
т.е. для длинка, если тип порта mac, то нуэно заглянуть в interface descruption
15:49
а там мы обнаружим:
15:49
"D-Link DES-3200-10 R4.37.B008 Port 1 " -> "1"
15:49
"PORT 7 ON UNIT 1" -> "7"
15:50
evyscr: и тогда уберутся костыли из dlink.dxs.get_lldp_neighbors
15:55
Для этого, в интерфейсе IGetLLDPNeighbors нужно добавить несколько полей:
15:55
Port Description
15:55
System Description
15:55
Management Address
15:57
последний - для того, когда не удается определить удаленную железку по связке "Chassis ID Subtype" и "Chassis ID"
15:57
аналогично - для CDP
Share this page
Share this page: