About Forum Blogs NOC Docs Downloads KB Issues Code CI Registration

nocproject.org

#nocproject.org at irc.freenode.net log.
Back to nocproject.org Back to IRC log index
Date: 24.07.2012
dvolodin #
06:37
_4ePTeHok: заглушка пока
06:37
они далеко не всю информацию пока возвращают
zi_rus #
06:38
dvolodin, там не совсем link local, просто eui-64
acid232 #
06:38
утро
zi_rus #
06:39
я не знаю как нок формирует таблицу, когда открываешь префикс, просто пытаюсь определить некоторые факты
06:40
некоторые могут оказаться важными, некоторые не очень
dvolodin #
06:41
zi_rus: давай попродробнее
06:41
eui-64 он из MAC'а делает
zi_rus #
06:44
dvolodin, короче было так, есть префикс /64 там пара компов автоматом сформировали себе адреса по eui-64, нок их отдискаверил, этот префикс не открывается, я удалил эти адреса и все заработало, создал в префиксе нормальные маленькие адреса, проблемы не возн
06:44
икло
dvolodin #
06:44
ну надо discovery отучить в этом префиксе адреса искать
zi_rus #
06:45
dvolodin, в другом найдет, мне кажется эьл не выход
dvolodin #
06:45
да не
06:45
это autoip :)
zi_rus #
06:46
в смысле?
dvolodin #
06:47
RFC 2373
06:47
APPENDIX A
zi_rus #
06:48
APPENDIX A : Creating EUI-64 based Interface Identifiers
dvolodin #
06:48
кинь пару примеров адресов
zi_rus #
06:49
2a03:8700:1:1:20f:feff:fef1:cbb2
06:49
вот один из тех что там был
06:50
не будем параноить по поводу белых адресов
06:50
2A03:8700:1:1:21E:58FF:FEAA:89CE
06:50
и вот такой
acid232 #
06:52
а вопрос
06:53
нам вот тут коммерческие фолты показывают
06:53
и рекламируют способность "обогащать" алармы информацией из внешнего инвентори
06:54
как такое исполнить в ноке?
dvolodin #
06:56
посмотри как реализованы BGP'шные alarm'ы
06:57
m/collections/alarmclasses/Network/BGP.json
06:57
он извлекает дополнительную информацию по упавшему пиру из peering management
Dmitry1 #
06:57
ага, а сколько я просить буду, чтобы в datasources добавились имена vlan'ов и названия железяк, опознанные по MAC и IP ?
dvolodin #
06:58
в событиях, связанных с линками -- есть информация по интерфейсу
Dmitry1 #
06:59
Кстати, именно для того, чтобы опознавать железяку по MAC, я предлагал завести еще одну таблицу, которая будет заполняться из скриптов get_mac_address_table (адреса с ключем C - CPU) и get_interfaces
dvolodin #
07:00
по идее они должны в IPAM упась при discovery
Dmitry1 #
07:00
В IPAM нету MAC адресов
acid232 #
07:00
а в событиях связанных с
dvolodin #
07:00
это как это нету?
07:00
:)
acid232 #
07:00
а в событиях связанных с линками должен быть дескрипшн из инвентори
dvolodin #
07:01
acid232: он выдается в заголовке
acid232 #
07:01
у меня - не всегда
Dmitry1 #
07:01
Вот так нету
07:01
Вот у меня циска:
07:01
Vlan Mac Address Type Ports
07:01
---- ----------- -------- -----
07:01
All 0100.0ccc.cccc STATIC CPU
07:01
All 0100.0ccc.cccd STATIC CPU
07:01
All 0180.c200.0000 STATIC CPU
07:01
Это вывод команды show mac address-table
07:02
MAC адреса на портах присутствуют не зависимо от того, порт активный или в дауне, есть ли на нем адрем, или нету и т.п.
07:03
Или такое:
07:03
6509_core_switch#show catalyst6000 chassis-mac-addresses
07:03
chassis MAC addresses: 1024 addresses from 0005.7497.4900 to 0005.7497.4cff
07:03
6509_core_switch#
07:04
Чем мне поможет discovery в этом случае?
07:05
А вот когда в FM происходит ивент "MAC Address Flap", то мне нужно знать, что этот MAC адрес принадлежит конкретной железке. И что это за железка.
07:06
Т.е. я предлагаю, кроме как IP Discovery, сделать еще MAC Discovery. И его результаты тоже хранить в базе.
zi_rus #
07:08
Dmitry1, при мак флапе один мак ничего не значит, вполне может быть рядовым явлением, при проблеме будут флапать десятки маков, и тебе ничего не даст знание их принадлежности
Dmitry1 #
07:09
У меня часто "флапает" один MAC адрес. Особенно это критично на цисках.
07:10
Мы предоставляем каналы корпоративным клиенам, которые на их концах ставят роутеры циско. И уже не в первый раз замечаю, что у этих роутерах совпадают MAC адреса.
07:14
Кроме того, скрипт, чтроящий топологию сейчас определяется на MAC адрес, который возвращает скрипт get_chassis_id. Я же показал, что на некоторых свичах может быть несколько MAC адресов, не привязанных к IP интерфейсам.
07:18
Кроме того, сейчас не возможно использовать datasources в ивентах.
07:18
Они используются только в алармах.
zi_rus #
07:19
у нас тут на днях произошла такая история, есть каталист включенный в кольцо, с одной стороны это обычный гиговый оптический линк, а с другой - узкий канал проключенный через SDH, один из жирных клиентов пустил по своему каналу мультикаст который рас
07:19
текся во все порты и забил узкий канал, bpdu перестали проходить через него и каталист с чистой совестью разблокировал линк, в сети воникла петля, маки начали флапаться по всей сети где были вланы проходящие через этот каталист, мы трижды заходили на
07:19
него, уже после того как проблема решилась (тк мы ее собственно и не заметили сразу), но в логах ничего не было, про стп молчек, а маки флапались ВЕЗДЕ, кроме проблемной железки. Вот как такие проблемы отлавливать? две циски с одинаковыми маками, это
07:19
ерунда
Dmitry1 #
07:46
Для этого у свичей есть такая фигня как CPU Packets priority
07:47
Т.е. пакетам, которые генерируются CPU, можно установить приоритет, например, 7
07:47
У некоторых свичей это автоматом делается. На некоторых, нужно вручную.
07:48
Тогда всякие BPDU, LLDP и т.п. пакеты будутс большим приоритетом, чем мультикаст
zi_rus #
07:57
когда на порту нет перегрузки это не имеет значения, дропы идут на sdh mux, которому покраска до лампочки
Dmitry1 #
08:01
Как бы наоборот. Выпихиваются пакеты сначала с большим приоритетом.
08:01
Почитай про CoPP на Cisco.
zi_rus #
08:07
циска тут вооще не при чем
08:08
на ней нет дропов, порт 100М, лезет 50М трафика, а на sdh канал на 10М
08:09
с циски вышло, пришло на mux, он 10М взял, остальное дропнул
08:09
совершенно без разбору
kelt18 #
08:16
добрый день
08:17
кто может подсказать как настроить snmp trap ?
Dmitry1 #
08:17
так на циске нужно было канал на mux зажать на 10M с помощью polising. А тогда уже сама циска будет думать, какие туда пакеты пихать.
08:17
kelt18: Где именно?
kelt18 #
08:18
NOC 0.7(4)
Dmitry1 #
08:18
В noc-activator.conf
08:19
listen_traps = 0.0.0.0 (или IP, на котором нужно слушать)
08:20
разрешить пользователю "noc" слушать на порту менше, чем 1024
08:20
И все
kelt18 #
08:20
вроде всё так и сделано, сейчас перепроверю
Dmitry1 #
08:20
http://kb.nocproject.org/display/DOC/noc-activator.conf
08:21
В SA в профиле железяк указать trap community и trap source
zi_rus #
08:22
Dmitry1, ну это все будет частью новой схемы, раньше не было необходимости в qos, а теперь будет реализовываться новая схема уже с учетом узких мест
Dmitry1 #
08:23
zi_rus: Это ты мало сталкивался с WiFI, когда на точку доступа приходит 100 мегабит, а нужно через радиоканал выпихнуть в несколько раз меньше.
zi_rus #
08:24
просто у нас сеть построена так чтобы перегруза не было, а если нет перегруза, то и qos не нужен
_4ePTeHok #
08:26
dvolodin, я снова по get_interfaces. Вот есть там статусы, у меня снимается скриптом строка up/down, в результат оно передается, но base.py его не жрет, говорит
08:26
Invalid value for \'admin_status\': BooleanParameter: (\'up\',).
zi_rus #
08:26
ввиду того что ситуация изменилась и возможности ширить каналы больше нет, пришлось реализовывать qos. в мплс ядре я уже сделал, а до каталистов руки не дошли, да необходимости особой не было, там нет такой нагрузки
_4ePTeHok #
08:26
как бы его в boolean то конвертнуть
08:27
и кстати с маками похожая проблема - снимает нормально, конверчу MACAddressParameter().clean(match.group("mac")), а оно не жрет.
08:28
хотя по виду отдает нормально ХХ:XX:XX:XX:XX:XX
kelt18 #
08:31
Dmitry1: даже если запустить от рута не начинает слушать
_4ePTeHok #
08:32
kelt18, активатор то перезапустили?, в логах активатора что?
Dmitry1 #
08:32
_4ePTeHok: newstatus = (oldstatus == "up")
_4ePTeHok #
08:32
Dmitry1, ээ..
Dmitry1 #
08:33
конвертит из "up" в boolean :)
_4ePTeHok #
08:33
а если down = автоматом будет boolean false?
08:33
или надо еще одну строку)
Dmitry1 #
08:35
автоматом будет false
_4ePTeHok #
08:35
спасибо.
08:35
вот по макам еще бы)
Dmitry1 #
08:35
false будет при любой строке, кроме "up"
08:36
По MAC'ам - выводи на консоль, что тебе выдает
_4ePTeHok #
08:36
сейчас переделаю статусы..
Dmitry1 #
08:39
главное - понаделай потом кучу тушенки, чтобы можно было доработать скрипт
acid232 #
08:39
Dmitry1: а можно поподробнее
08:39
чем тебе хуавейские трапы не нравятся
08:39
или миб-ы
Dmitry1 #
08:40
на d-link'е мы обнаружили, что при использовании трапов версии v1, не все значения нормально передаются
08:41
Поэтому рекомендуется использовать трапы версии v2c
08:41
Попробуй собрать трапы на этой версии SNMP
_4ePTeHok #
08:42
Dmitry1, да в том то и проблема, что пишут абсолютно разные люди по разному)
08:43
гляжу вот IOSXR/IOS/ES - и далеко не везде мозайка собирается в голове)
Dmitry1 #
08:43
Есть еще в OS.FreeBSD
_4ePTeHok #
08:43
подходы изначально разные. где то массивом, где то еще как то
08:43
пока въедешь.
08:44
еще и с почти нулевым питоном)
08:48
еще такой вопрос - часть данных можно взять из других скриптов. Но это лишняя дергатня железки ибо все можно выдернуть из одного вывода. Пишем второй вариант?)
zi_rus #
08:50
а еще можно делать через include (на циске и других нормальных производителях), тогда можно сразу только нужные параметры получать
08:50
а не весь мусор вроде sh ver
_4ePTeHok #
08:50
там сразу вылезут ограничения по прошивкам.
08:51
на том же ES далеко не везде есть | i
zi_rus #
08:51
es - это кто?
08:52
на циске есть везде
08:53
по крайне мере, на всем том зоопарке что есть у меня
ufir #
08:53
еджкоры ето
08:53
ES
_4ePTeHok #
08:54
там и так костылей в профиле под разные прошивки...
08:55
разве что длинк еше не обогнали
zi_rus #
08:55
так я и говорю про нормальных производителей, где есть возможность
08:56
все разделено на профили потому что у всех все по разному
08:56
а в профилях есть костыли потому что некоторые производители бараны
_4ePTeHok #
08:57
поправка "большинство производителей")
Dmitry1 #
09:01
Для того, чтобы брать данные из других скриптов, у скриптов предусмотрен параметр cached.
09:02
Он кеширует данные из CLI, чтобы не выполнять одну ти ту же команду несколько раз
_4ePTeHok #
09:02
та не..в любом случае надо идти на железку, выполнять команду и отключаться от нее
Skripnik #
09:11
Подскажите, изменений в инвентори не происходтло в последнее время? а то вчера интерфейсы вчера отображались, а сегодня, после обновления, выдает ошибку "Failed to get interfaces"
09:12
как доп информация - сносил базу монго, но судя по логам дисковери интерфейсы он добавил по новой
dvolodin #
09:13
traceback есть?
Skripnik #
09:13
как его получить? ошибка выдается в вебинтерфейсе.
09:17
traceback не нашел нигде. в логах тоже ошибок не видно
09:20
а как в монго можно посмотреть полученые интерфейсы?
dvolodin #
09:46
mongo noc
09:46
db.noc.interfaces.find()
09:47
db.noc.subinterfaces.find()
Skripnik #
09:50
в монго они попали. записи присутствуют
09:51
может они записаны не в том виде? вот вывод из монго http://pastebin.com/XqbX9QHC
acid232 #
09:59
Dmitry1: так я вроде как с версии 2 и собирал
10:00
или версии 1 в issue?
Dmitry1 #
10:00
не знаю.
10:00
но я видел, что некоторых переменных не хватает, хотя они напрямую описаны в MIBэах
10:02
Как пример - NOC-565
10:02
Если заглянуть в HUAWEI-IF-EXT-MIB то мы увидим
10:03
hwIfMonitorCrcErrorResume NOTIFICATION-TYPE
10:03
OBJECTS { hwIfMonitorCrcErrorStatistics, hwIfMonitorCrcErrorThreshold, hwIfMonitorCrcErrorInterval, hwIfMonitorName }
10:03
В NOC-565 я вижу только три первых переменных
dvolodin #
10:05
у dlink как-то странно
10:06
при v1 последние два числа из enterprise запихали в generic type и subtype
10:06
какого риса они накурились науке неведомо
_4ePTeHok #
10:08
чтобы при вызове скрипта self.scripts.get_portchannel() снять инфутолько по одному портчаннелу - нужно передать ему переменную, self.scripts.get_portchannel(current), где current - имя портчаннела, верно?
acid232 #
10:09
вот что он отдает в сислог IFNET/1/CRCERRORRISING:OID 1.3.6.1.4.1.2011.5.25.41.4.1 The CRC error is rising. (hwIfMonitorIndex=13, hwIfMonitorCrcErrorStatistics=0 6, hwIfMonitorCrcErrorThreshold=3, hwIfMonitorCrcErrorInterval=10)
10:10
то есть не ifname а ifindex
10:11
потом отдает IFNET/1/CRCERRORRESUME:OID 1.3.6.1.4.1.2011.5.25.41.4.2 The CRC error resume. (hwIfMonitorIndex=13, hwIfMonitorCrcErrorStatistics=0 0, hwIfMonitorCrcErrorThreshold=3, hwIfMonitorCrcErrorInterval=10)
10:11
когда ошибки не растут
dvolodin #
10:18
что касается mac-discovery
10:18
сделать его не сложно, но это это даст?
10:18
будет база типа
10:18
mac, object, interface
MindGames #
10:21
привет! есть гуру SNMP? У меня есть девайсина Wavion wbs-2400 (базовая станция WiFi). Есть файлик WavionPrivateMIB_trap.dat. Как все это дело теперь прикрутить к примеру, к кактусу? мне хочется строить графики типа, скорость на интерфейсах,
10:21
количество подключенных юзеров..
10:21
ну или к ноку прикрутить.
10:21
чтобы он SNMP выгружал
acid232 #
10:25
а сейчас в базе интерфейсов их snmp ifindex как-то фигурирует?
10:25
чтобы делать лукапы и привязки
dvolodin #
10:34
типа на каких портах видели MAC ?
acid232 #
10:48
нет, я не про мак
10:48
а про лукап в правилах классификации например
10:48
когда есть ifindex и нет ifname
10:48
как вот у хуавея к примеру
10:49
IF-MIB::ifDescr.13 = STRING: Ethernet0/0/8
10:50
а в трапе он отдает 13
10:50
и в сислоге
10:50
а не имя
evyscr #
10:51
Dmitry1: в #331 предположение неверно. Дебаг чего-либо не включен. Генерировать какой-либо аларм не нужно, но правильно ли оставлять событие в unknown?
dvolodin #
10:51
это можно сделатьё
10:51
если get_interfaces выдает ifindex
acid232 #
10:51
а как:
10:51
?
10:52
в переменных правила классификации фигурирует только interface_name
10:52
нужно дополнить это правило, чтобы можно было или по ifindex или по ifname ?
dvolodin #
10:53
для ifindex и ifname разные правила нужны
acid232 #
10:53
то есть это будет доп.правило
Dmitry1 #
10:53
evyscr: А само по себе совершенно не информативно это сообщение.
acid232 #
10:53
или даже семейство правил
evyscr #
10:54
Dmitry1: и? подавите что ли, раз так. Оставлять в unknown зачем?
Dmitry1 #
10:54
dvolodin: 1. Это поможет при topology discovery по L2
10:55
2. Для FM как источник для datasource
10:56
evyscr: В правиле FM для правила STP Topolology Change в переменной требует имя интерфейса, которого нет в твоем issue
evyscr #
10:58
фигасе
10:58
а мужики и не знают
10:58
vlan 100 в дате имя интерфейса
acid232 #
10:59
хорошо, а как быть если на одно событие приходит и сислог и трап? отображать две аварии? или триггер писать?
dvolodin #
11:04
оно склеится в одну аварию по discriminator'у
acid232 #
11:08
а как этот процесс автоматизировать
dvolodin #
11:12
он и так автоматизирован
11:12
в описании alarm class
_4ePTeHok #
11:27
а как бы подебажить скрипт в процессе debug-script? всмысле прервать выполнение и вывести переменные
11:27
а то скрипт отрабатывает, но выдает не все то, что должен..
dvolodin #
11:27
print "blablabla"
11:27
чтобы отрубить его
11:28
raise
11:28
raise выдаст traceback и будет видно состояние локальных переменных
_4ePTeHok #
11:33
хмы. чот не реагирует
acid232 #
11:33
dvolodin: в каком таком описании класса?
11:34
"discriminator": ["interface"],
11:34
это имя?
dvolodin #
11:34
да
11:34
если есть активная авария этого класса для этого объекта и интерфейса, то событие будет подшито к аварии
zi_rus #
11:38
как интересно
acid232 #
11:39
вот, а как сюда подшить аварию с ifindex
_4ePTeHok #
11:39
гляньте кто нибудь плиз
11:39
http://pastebin.com/FeXHNd2Q
11:39
на rise не реагирует - хотя и в самом начале)
dvolodin #
11:39
zi_rus: ровно так же делает spectrum
11:39
:)
_4ePTeHok #
11:39
raise rjytxyj
11:40
конечно*
zi_rus #
11:41
dvolodin, это я про root cause вспомнил
_4ePTeHok #
11:41
просто вываливает r как и положено
dvolodin #
11:49
ась
_4ePTeHok #
11:49
глянь плиз выше пасту
11:49
не останавливает чойто
dvolodin #
11:50
а что выводится?
_4ePTeHok #
11:50
работает как будто и нет rise
dvolodin #
11:50
а ты там поправил?
_4ePTeHok #
11:50
дык в пасе верно - raise
11:50
gfcnt*
11:50
пасте
zi_rus #
11:51
_4ePTeHok, dvolodin, NOC-52
11:51
не?
_4ePTeHok #
11:53
ну у меня не в cli, не в дебаг-выводе нету
11:53
только результат и выводы команд
11:55
сломали? :(
acid232 #
12:07
а грохните плиз NOC-591
12:07
я случайно его склонировал
_4ePTeHok #
12:19
ну дык чего с дебагом то делать?))
MindGames #
12:19
блин! почему-то на NOC не клерятся алармы.. к примеру, на д-линк было падение порта... и оно до сих пор висит как down, хотя порт уже давно как в ап.. от чего такое может быть??
acid232 #
12:21
да бывает иногда
MindGames #
12:21
часто
acid232 #
12:21
пропустили видимо трап или сислог
MindGames #
12:21
особенно с длинками
12:21
может, много трапов валится со многих объектов и потому не справляетсч?
acid232 #
12:22
мне вот еще что интересно
12:23
пришел трап с interface GigabitEthernet0/0/2 и сислог о том же событии SNMP/2/IF_PVCDOWN:OID 1.3.6.1.6.3.1.1.5.3 Interface 7 turned into DOWN state.
12:23
interface 7 это и есть ifindex для GigabitEthernet0/0/2
12:23
как их скоррелировать? или правильнее игнорить что-то одно?
MindGames #
12:27
как бы линк положить в инвентори, если это д-линк и на нем не отрабатывает скрипт get_switchport?
acid232 #
12:41
никак )
MindGames #
12:42
это подстава..
12:43
у меня длинк один с оптическими портами агрегирующий
12:43
мне надо там обязательно указать связь линков
acid232 #
12:50
пиши скрипты )
MindGames #
12:52
ну так там Дима пытался написать. но упирается в CLI длинка
_4ePTeHok #
12:59
блин. да что за гадство то. Внутри def execute(self): raise не отрабатывает.
13:14
сам буратино в общем.
zi_rus #
13:38
dvolodin, а audit trail и failed scripts как-то чистятся? а то они у меня пухнут больно сильно. аудит пофиг, а по скриптам все серьезней
Huko #
13:49
а есть вариант в cisco sysloge отключить логирование отвалов ospf нейбров ?
acid232 #
13:59
по идее можно написать ignore rule
zi_rus #
14:01
а что он алармы по этому поводу поднимает?
14:01
если нет, то не пофигу ли?
Huko #
14:02
поднимает
14:04
а закрывает только если небор DR/BDR, а если просто 2WAY/DROTHER, то при его подьеме в сислог вообще ничего не пишется
14:04
и получается что аларм на падение 2WAY/DROTHER остается не закрытым
14:14
no ospf log-adjacency-changes
Tweet
Share this page
Share this page: Tweet