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: 06.02.2014
lexus-omsk #
03:29
Dmitry1, dvolodin скажите что-нибудь в NOC-1267, там человек уже столько патчей прислал
03:30
в смысле хоть какую-то обратную связь, дорожить надо такими пользователями :)
evg_krsk #
03:32
lexus-omsk: это йа :-)
03:33
Патч на самом деле один, просто он обновляется :-)
zi_rus #
05:31
lexus-omsk, да, кому-то везет, саппортят 5350, вот уж какое говно откопали, у меня есть такие железки, по семь лет аптайма, никак не дождусь пока сдохнут. а вот новые железки на ios xr никто не пользует, печально
06:11
Dmitry1, ты тут?
lexus-omsk #
06:23
zi_rus: новые железки на ios xr не все могут себе позволить, а те, кто могут, используют немного другой софт вместо noc'а
zi_rus #
06:23
и только я тут один такой... :)
06:24
ростелеком, нищая контора, ага :)
06:24
кто тут еще засветился
06:24
мтс кажется был
06:26
_4ePTeHok, ты тут?
e_zombie #
06:29
ростелеком сосёт хуавеи и джунипера
zi_rus #
06:30
но вы же пользуетесь ноком
e_zombie #
06:31
не пользуемся.
06:31
это всё баловство.
zi_rus #
06:31
да ладно
e_zombie #
06:31
именно
zi_rus #
06:31
сколько ты мозг выносил про service instance и дискавери
06:31
а маки
e_zombie #
06:32
ну и что? это всё моё баловство и перфекционизм.
06:32
от нечего делать.
06:32
наш мрцус принципиально не будет это использовать никогда.
06:33
и мы знаем что если ядро сети не в системе то вносить туда доступ смысла никакого почти.
06:33
хорошо что хоть есть доступ на пе и можно сних дёргать инфу.
lexus-omsk #
06:45
e_zombie: похожая ситуация - пока дают рулить в своём регионе, можно побаловаться, а если заберут руль - всё
06:48
а чтобы внедрить это официально на уровне хотя бы макрорегиона, надо либо быть соответствующим начальником, либо уметь их убеждать
e_zombie #
06:48
доступ наверное всё равно у тебя останется при любом раскладе
06:49
да мы может и без всяких офиц бумажек. ПОТОМУ ЧТО ВСЕМ ПОХУУУУУУУУЙЙЙЙ!! лиж бы была вылизана попка вышестоящего начальника.
06:49
и да такой мелочи как софт у нас не опускаются.
06:50
была идея сделать кнопку "заебись" только для этого ничего не дали.
zi_rus #
06:51
e_zombie, ты пишешь скрипты для серверов чтобы облегчить себе жизнь?
e_zombie #
06:51
я стараюсь делать так чтобы этого не делать :)
zi_rus #
06:51
так не бывает
e_zombie #
06:52
ну почему?
06:52
задач достаточно мало где надо программить .
06:53
днс \ почтари \ фтп и тд работает само.
zi_rus #
06:53
само не бывает
06:53
кто-то уже запрограммил значит
06:54
есть такая вещь как рутина, ее обычно и программят, чтобы не делать
_4ePTeHok #
06:54
тут
zi_rus #
06:54
поздно ;) я уже предумал
06:55
*передумал
_4ePTeHok #
06:55
ну и хорошо :)
zi_rus #
06:56
_4ePTeHok, хотя можешь помочь
06:56
' Hostname: ISAM\n Location: BSZ\n Contact: noc\n Model: 7324 RU R4.0.2\n 7324 RU version: V3.52(TW.0) | 05/03/2006\n F/W size: 2679468\n MAC address: 00:13:49:AD:62:72\n System up time: 26(days) : 1:45:06\nBootbase version: V1.01(7324RU4.0) | 01/18/2005\n F/W build date: May 3 2006 16:08:24\nDSP code version: f2.33.0000\nHardware version: B1\n Serial number: 0Z0622022301\n'
06:56
вот это возвращает железка
06:57
почему этот regexp не вылавливает данные
06:57
Model:\s+7324\s+RU\s+(?P<hw_rev_1>\S+)\n.+Hardware\sversion:\s(?P<hw_rev_2>\w+)\n\s+Serial\snumber:\s(?P<serial>\w+)
_4ePTeHok #
07:02
.+ не ловит \n
07:02
у тебя до .+Hardware\sversion:\s несколько строк есть
zi_rus #
07:02
хм
_4ePTeHok #
07:03
Model: 7324 RU R4.0.2
07:03
7324 RU version: V3.52(TW.0) | 05/03/2006 вот это оно ловит
07:03
а дальше - перевод строки и тю
07:03
сделай отдельными регексами
07:04
там где кусок сплошняком идет можно объединить
lexus-omsk #
07:08
. ловит перевод строки, если сказать re.DOTALL
zi_rus #
07:10
хм, попробую так, потому что отдельные regexp не сработали
_4ePTeHok #
07:14
отдельные всегда работют
zi_rus #
07:26
бред какой-то
07:27
в онлайн тестере regexp работает, в скрипте - нет
_4ePTeHok #
07:27
код покажи чтоли
zi_rus #
07:28
http://pastebin.com/3DYWabGP
freeseacher #
07:29
zi_rus, kodos офлайновый тестер. всегда работает
zi_rus #
07:33
все, заработало
07:33
match на search поменял
07:34
эта хрень меня убивает
07:34
match, matchall, search
07:34
без поллитры не разберешся что зачем
_4ePTeHok #
07:35
серч да
07:36
собсно в коде чаще всего серч и файндитер
zi_rus #
07:37
только теперь в другом косяк
07:38
<class 'noc.sa.interfaces.base.InterfaceTypeError'>
07:38
DictParameter: 'vendor'.
07:38
START OF TRACEBACK
07:39
чего ей не нравится
07:39
в других скриптах все так же вроде
_4ePTeHok #
07:42
пример вывода
07:42
[{'builtin': False,
07:42
'description': 'Opticin OS-242',
07:42
'number': 'None',
07:42
'part_no': ['OS-242'],
07:42
'revision': 'None',
07:42
'serial': '08:10:74:3A:74:0A',
07:42
'type': 'CHASSIS',
07:42
'vendor': 'OPTICIN'}]
07:42
обрати внимание на партномер
07:42
запринть r перед ретурном и сравни
07:47
а чего там олкотель специфичный какой то, что ты отдельный скрпт под него пишешь?
zi_rus #
07:48
_4ePTeHok, да нет, оно вроде как надо возвращается... ять... надо списком возвращать, а не словарем
07:48
да там дслам
_4ePTeHok #
07:49
словаь в списке да
zi_rus #
07:49
у него персональный профиль
_4ePTeHok #
07:49
ясн)
zi_rus #
07:49
меня прет, уже второй скрипт за сегодня запилил
_4ePTeHok #
07:50
во тебя накрыло
07:50
:)
zi_rus #
07:51
когда на работу клшадешь болт и нихрена не делаешь уже две недели, от безделья и не таким займешься :)
_4ePTeHok #
07:55
а вот я докатился. Пишу вендовые сервисы на питоне)))
ufir #
08:08
гадость какас (С) ДМБ
zi_rus #
08:48
Dmitry1, а почему DOM Alarm - CRITICAL, а LInk Down - всего лишь WARNING?
_4ePTeHok #
08:51
=)
Dmitry1 #
08:52
не знаю. это не я писал для link down
zi_rus #
08:53
Dmitry1, ну ладно, хрен с ним, помнишь мы обсуждали что в subject надо выводить больше информации. в аларме DOM Alarm я так и не вижу значений на которые он жалуется
Dmitry1 #
08:54
так я вроде сделал
08:54
посмотри JSON файл
zi_rus #
08:54
DOM exceeded the Rx power low threshold: Te1/29 (bb-kulibuna-1)
08:54
вот весь сабж
08:54
тут нету ни текущего значения показателя
08:54
ни предельного значения
08:54
ни даже того что ему не нравится
08:55
может там слабый сигнал
08:55
а может модуль перегрелся
08:55
а нет Rx power
08:55
ну тогда только уровни
Dmitry1 #
08:55
"subject_template": "DOM exceeded the{% if sensor %} {{sensor}}{% endif %}{% if threshold %} {{threshold}}{% endif %} threshold: {{interface}}{% if description %} ({{description}}){% endif %}"
08:55
"body_template": "DOM exceeded the{% if sensor %} {{sensor}}{% endif %}{% if threshold %} {{threshold}}{% endif %} threshold: {{interface}}{% if description %} ({{description}}){% endif %}{% if ovalue %}, Operating value {{ovalue}}{% endif %}{% if tvalue %}, Threshold value {{tvalue}}{% endif %}",
zi_rus #
08:55
в сислоге прилетает
08:55
Feb 6 07:18:59: %SFF8472-5-THRESHOLD_VIOLATION: Te1/29: Rx power low alarm; Operating value: -33.9 dBm, Threshold value: -18.4 dBm.
08:56
почему нету?
08:56
regexp кривой?
_4ePTeHok #
08:56
в ивентруле глянь
Dmitry1 #
08:56
в body что?
_4ePTeHok #
08:56
парсит он это или нет
zi_rus #
08:56
interface Te1/29
08:56
ovalue -40.0 dBm
08:56
sensor Rx power
08:56
threshold low
08:56
tvalue -18.4 dBm
08:57
нет, regexp нормальный
08:57
Event Variables все отловлены
Dmitry1 #
08:57
в теле самого ивента что пишет?
zi_rus #
08:57
DOM exceeded the Rx power low threshold: Te1/29
08:57
DOM exceeded the Rx power low threshold: Te1/29, Operating value -40.0 dBm, Threshold value -18.4 dBm
08:57
это в overview
Dmitry1 #
08:57
Ну так пишет ведь? И переменные все отлавливает
08:58
Что еще надо то?
zi_rus #
08:58
а в гриде почему нет?
Dmitry1 #
08:59
В гриде идут сообщения в сокращенном виде. Более развернутая информация идет в теле ивента
zi_rus #
08:59
лять
08:59
зачем так
09:00
почему нельзя предоставить достаточную информацию в гриде
lexus-omsk #
09:00
да нормально так: тебе даже говорят, что нижний порог, дальше уже можно открять событие, если интересно
_4ePTeHok #
09:00
у грида есть ограничение
09:00
по ширине
09:00
иначе распидорасит с прокруткой
lexus-omsk #
09:01
а так не у всех мониторы такие широкие
_4ePTeHok #
09:01
там и так сейчас дозера инфы
Dmitry1 #
09:01
Так вроде исторически сложилось. В теле самого ивента стараются побольше информации впихнуть. С форматированием, вытаскиванием нужных переменных и т.п.
zi_rus #
09:01
lexus-omsk, у меня девятнашка с уебищным разрешением, надо просто убирать мусор вроде id и все будет влезать
lexus-omsk #
09:02
Dmitry1 кстати, там дублирование получается, в теле: заголовок жирным и потом ещё то же самое, но обычным шрифтом
Dmitry1 #
09:02
Это одинаковые "subject_template" и "body_template"
zi_rus #
09:03
_4ePTeHok, если подумать то класс аларма тоже можно скрыть, это внутренняя информация, нам лишь нужен сабж, чтобы понять чтоже произошло, но сабж должен быть подробным (в разумных пределах)
Dmitry1 #
09:04
fm/apps/event/templates/Overview.html
lexus-omsk #
09:04
zi_rus: ну если класс убрать - тогда, наверное, да, влезет
zi_rus #
09:05
time, duration, events, severity и subject - вот достаточные поля для работы, все остальное можно по-дефолту скрывать и отталкиваться от того что они скрыты
Dmitry1 #
09:05
А фильтрация по классу как тогда?
zi_rus #
09:06
и что? скрытие поля в гриде ее не отменяет
09:06
поиск вполне работает
lexus-omsk #
09:06
а если ещё и severity убрать и смотреть только на цвет...
zi_rus #
09:06
по дефорлту цвета крывые
09:06
severity можно оставить
lexus-omsk #
09:06
а вообще у меня так и сделано, только ещё класс был, сейчас попробую без него
zi_rus #
09:07
но в IBM Netcool так и есть цветовая индикацияб поля severity в гриде у них нет
09:07
для оператора перед монитором этого более чем достаточно
dvolodin #
09:08
zi_rus: а ты сделай скриншот netcool'а
09:08
Ж)
zi_rus #
09:08
забавная ситуация, в netcool есть алармы выделенные серым, они серьезные, но никто их не воспринимает, мы только по сабжу понимаем что это важно
09:10
dvolodin, я не предлагаю делать копию неткула, но серьезно, кому вперлась эта монговская id в гриде, класс более спорный, но по-моему его можно скрыть
dvolodin #
09:13
ну скрой, я же не против
_4ePTeHok #
09:15
вопрос ко всем. У вас есть какая то привязка железок(конкретнее профилей авторизации, snmp-community) к префиксам в которых болтаются управляющие интерфейсы?
e_zombie #
09:15
думаю нет
_4ePTeHok #
09:16
ну то есть 10.10.10.0/24 - ето cpe и такими то профилями
e_zombie #
09:16
у нас по снмп в филиале ничего не котролится. нукроме какой то уйни из нижнего
_4ePTeHok #
09:16
8.8.8.0/22 - core и т д
09:18
я тут пишу просто дискавери объектов потихоньку
dvolodin #
09:18
правила классификации интерфейсов нужно доделать
lexus-omsk #
09:18
_4ePTeHok: логично же, что выделяются специальные префиксы под разные цели - ядро, по районам и т.д.... и это частично фигурирует в селекторах
_4ePTeHok #
09:19
вот прикидываю, стоит ли делать вохможность связки профиля авторизации с префиксом(или дескрипшеном в нем)
09:19
т е чтобы не перебором лупить железку
09:19
а по рулам каким то
09:19
хотя можно это конфигурируемым сделать вполне
dvolodin #
09:20
вообще у нас есть такая штука как prefix table
_4ePTeHok #
09:20
есть да
09:20
только оно руками
09:20
а в ипаме - префиксы сами найдутся
09:21
сделал я там например подсеть под доступ - попал туда префикс, значит профиля для доступа буду пробовать для авторизации нового объекта
09:21
из core - другие профиля
evg_krsk #
09:25
А как сделать свой локальный beef repo?
09:25
(чтобы потом по нему тестировать)
dvolodin #
09:26
делаешь каталог
evg_krsk #
09:26
Просто hg init в нужном место и в конфиг прописать его? Или можно просто каталог указать и не прописывать в конфиг?
dvolodin #
09:26
в нем hg init
evg_krsk #
09:26
так...
dvolodin #
09:26
и в etc/beef.conf его прописываешь
evg_krsk #
09:27
имена каталогов/файлов в репо имеют значение?
dvolodin #
09:27
local/repo/sa/<name>
09:27
а файлы сами создаются по ./noc beef --import
evg_krsk #
09:28
в смысле, обязательно делать vendor/interface/guid.json ?
09:28
а пример можно этого --import
dvolodin #
09:28
./noc beef --import -r my_repo <path1> ... <pathN>
evg_krsk #
09:29
он и делает структуру vendor/interface/guid?
dvolodin #
09:29
ага
evg_krsk #
09:30
ага, попробую.
09:30
спасибо
09:55
dvolodin: а коммитить в этом репо вручную надо?
dvolodin #
09:59
не, оно при добавлении закоммитит
evg_krsk #
10:03
при добавлении чего куда? Сделал --import на всё что есть, все файлы в состоянии ?, hg log пустой.
10:07
и ещё, как ему объяснить, что спаннингтри может собираться действительно ДОЛГО, а то ругается в noc-activator.0.log что Trying o kill already dead thread
dvolodin #
10:10
по ./noc beef -r <repo> --push закоммитится и выдавится все
_4ePTeHok #
10:25
а если вот так - проверяем ip по ипаму на присутствие рядом уже заведенных объектов в той же подсети
10:25
и пробуем ломиться к нему с их профилем
dvolodin #
10:42
evg_krsk: таймауты скрипта крутятся
Dmitry1 #
10:45
dvolodin: Дим, напомни мне патчи, которые ты мне высылал
10:45
У меня сейчас работает http://pastie.org/8693888
10:45
а второй я не помню
dvolodin #
10:47
второй в репо уже
zi_rus #
10:56
dvolodin, я тут взбесился с утра, два скрипта аж запилил. закоммить если все нормально
dvolodin #
10:59
:)
10:59
это дело хорошее
evg_krsk #
11:09
dvolodin: да вот что-то не нашел где нужный таймаут крутить
11:16
Сделал ./noc beef -r repo --push так оно всё закоммитило, запутило и самозабанилось на ожидании снятия блокировки свойм же процессом для пуша. Ну туууупое :-)
zcc #
11:20
как я понимаю в модуле GIS пока ничего рисовать невозможно....
_4ePTeHok #
11:21
там и не нужно рисовать
11:21
рисуется в инвентори
dvolodin #
11:21
посмотрел более детально интерфейсы в моделях
_4ePTeHok #
11:21
в гисе только настройки карт, слоев и т д
dvolodin #
11:21
обнаружил, что dimensions.units у нас полностью дублирует rackmount.units
zcc #
11:21
а как из инвентори энто все на карту?
_4ePTeHok #
11:22
обновляешься до упора в девелоп
dvolodin #
11:22
наверное, из dimensions нужно units выпилить
_4ePTeHok #
11:22
создаешь PoP точку присутствуия нужного уровня и указываешь на карте где оно должно быть
11:22
все в инвентори
11:22
и уже в точку присутствуия железки складываешь в дереве
zcc #
11:23
ок, попробую в девелоп заапдейтится
_4ePTeHok #
11:23
димерсион - это же для размеров...
11:23
зачем там юниты
11:23
юниты только для rack важны
dvolodin #
11:23
ну да
_4ePTeHok #
11:23
отмигрируй их)
dvolodin #
11:23
это из ранней драфты пришло
11:24
размеры всего в 14 моделях проставлены
_4ePTeHok #
11:24
а у нас для трансивера интерфейс есть?
11:24
чтобы дальность там указать например
11:24
есть ли DOM и т д
ufir #
11:26
а чо - в EX4200 сломали чтоли скрипты ? трейсит пострашному http://pastebin.com/4UWaCgSr
_4ePTeHok #
11:27
чо это за 0 влан у тебя
e_zombie #
11:28
4200 трейсил давно на lldp
ufir #
11:28
и каталисты все перестали работать 3750
11:28
http://pastebin.com/u6E8zCC4
_4ePTeHok #
11:30
там нет show inv?)
ufir #
11:30
нет
11:30
а у меня их сотни
11:30
еще перестал работать длинк
11:30
http://pastebin.com/RK8bkPe3
_4ePTeHok #
11:30
ну оно как бы не критично, это ж инвентори
11:30
не снимет да
ufir #
11:31
"неаккуратненько" (С)
_4ePTeHok #
11:31
а че там хоть sh idprom есть?
11:31
трансиверы подергать
gborisov #
11:33
добрый день, господа
e_zombie #
11:33
https://pp.vk.me/c311417/v311417002/88de/p4PUnp2_Oso.jpg
gborisov #
11:33
кто-нибудь может подсобить с одним дельцем, касающимся валидации конфигов?
11:35
а именно: могу ли я создать ивент прямо из пайрула, чтобы он отображался в веб интерфейсе, если конфиг не соответствует каким-либо правилам? Или это не очень хорошая идея?
ufir #
11:36
_4ePTeHok idprom есть http://pastebin.com/EBjrdPHy
_4ePTeHok #
11:36
збс
zi_rus #
11:37
gborisov, теоретически можно, но несколько геморно, а идея как идея, сделаешь и сам увидишь
_4ePTeHok #
11:37
ufir кинь мне полный вывод sh ver в пасту
gborisov #
11:38
zi_rus, а не подскажешь как это можно реализовать?
zi_rus #
11:40
надо создать alarm class
11:40
покопаться в коде и найти как поднимать аларм из скрипта
lexus-omsk #
11:41
dvolodin я ещё как только rackmount сделали спрашивал, зачем в двух местах юниты, и кто-то мне сказал, что их уже выпилили из старого места
11:41
в kb и правда нет, а вот в старых моделях осталось, наверное
zi_rus #
11:41
это самое геморное ибо из web классы создавать невозможно, только json пилить
ufir #
11:41
_4ePTeHok http://pastebin.com/QjpninFZ
lexus-omsk #
11:42
gborisov а зачем, чем не устраивает письмо?
gborisov #
11:42
zi_rus, спасибо) но главная неопределенность как раз с тем, как поднять аларм из скрипта, я думал мб кто-то знает
_4ePTeHok #
11:43
ufir, попробую добавить
ufir #
11:43
отлично ;)
gborisov #
11:45
lexus-omsk, такая хотелка у отдела, эксплуатирующего сеть)
_4ePTeHok #
11:46
алярм сам поднимется был бы ивент и рулы
11:46
ну и классы соотв-е
zi_rus #
11:47
lexus-omsk, на самом деле смысл есть, может быть даже штатно такую функцию ввести ибо письмо пришло ты сказал ага и стер его
_4ePTeHok #
11:47
тут вопрос куда пихать
zi_rus #
11:47
а алрм будет висеть
11:47
а если политика поменялась
11:47
ты в валидатор внес изменения
11:47
и привет
11:47
тысяча писем в почте
11:48
ты их снес, на следующий день еще тысяча
11:48
через пару дней ты их уже не замечаешь, они сыпятся сплошным потоком
11:48
и потом хрен поймешь где поправлен конфиг, а где нет
lexus-omsk #
11:49
а тысяча алармов лучше? ) политику применять надо после того, как на основной массе поправлено, как раз для проверки, где забыли
zi_rus #
11:49
палка о двух концах
11:50
если применять после
11:50
то будет ругаться в процессе поправления
_4ePTeHok #
11:50
поэтому надо отключать проверку
11:50
на время перехода
11:50
а после - включать.
zi_rus #
11:50
тысяча алармов будет висеть ровно до того момента пока не исправишь
11:51
_4ePTeHok, ты помнишь как оно включается и отключается
11:51
на каждой железке андо зайти и задать
lexus-omsk #
11:51
т.е. пришло поручение, выполнил, отчитался, включил и контролируешь... хотя это вопрос организации процессов в компании, конечно
_4ePTeHok #
11:51
noc shell для трусов да
zi_rus #
11:51
noc shell это хорошо, но железки различаются
11:51
не всегда можно херануть скриптом
11:52
а по аларму придет письмо и хорошо
11:52
ты прошелся, везде поправил
11:52
и смотришь, что не закрылось
11:54
у меня сейчас тухленькая валидация используется, и сотни свичей не наберется, знал бы ты как затрахали письма, через неделю на них уже внимания не обращаешь
11:54
и это я еще не все параметры и не на всех свичах проверяю
_4ePTeHok #
11:55
это палка о двух концах
gborisov #
12:07
создать ивент оказалось довольно просто
12:07
from noc.fm.newevent import NewEvent
12:07
NewEvent(timestamp=timestamp, managed_object=mo, raw_vars=data, log=[]).save()
12:08
я так понимаю, в raw_vars должен передаваться словарь, по которому этот ивент классифицируется, так?
12:09
from noc.fm.models import NewEvent
12:09
то есть
_4ePTeHok #
12:52
а никто не делал автопрописывание привязки MO - адрес в IPAM?
12:53
ну чтобы в ипам объект привязывался сам
zi_rus #
12:53
зачем? нок вроде автоматом должен в процессе дискавери
_4ePTeHok #
12:54
если в профиле галко стоит?
12:57
у меня чот не привязывает
12:57
если на железке ip discovery нет
zi_rus #
13:02
на самом деле он криво привязывает, но должен, это дело надо фиксить
13:02
я так считаю
13:02
или пируль костылять
13:02
я думаю это не сложно
13:03
вытащил из инвентори все L3 интерфесы, нашел адрес в ипам и прописал
13:03
и десяти строчек не будет
_4ePTeHok #
13:04
а там можно привязывать на 1 объект несколько адресов?
13:32
dvolodin, Дим, а если на железке нету ip_discovery = оно не будет синхронизировать свой менеджмент адрес с ипамом?(галка в профиле стоит)
gborisov #
14:21
а видно ли инфу по созданному аларму в веб интерфейсе? (то, что в классе описывается как body_template) если да, как посмотреть ее?
14:23
subject в таблице видно, а где body посмотреть?
zi_home #
14:54
gborisov, спроси Dmitry1, он тут магистр ФМ
Dmitry1 #
14:54
ась?
zi_home #
14:54
_4ePTeHok, там это где ты хочешь привязывать несколько ip на объект
Dmitry1 #
14:54
gborisov: двойной щелчек мышью на ивенте
zi_home #
14:55
Dmitry1, да говою, в сабже надо больше писать, а то прям как американский сериал, заканчивается все на самом интересном месте
Dmitry1 #
14:57
оно и не надл ничего там видеть
14:57
body аларма в письме отсылается
zi_home #
14:58
письмо приходит один раз, а аларм можно обновлять
14:59
ладно, потерплю пока как есть
14:59
посмотрим что из этого выйдет
15:01
Dmitry1, а что мы можем сделать с такой ситуацией, две железки соединены, на одной кладем порт, а вторая начинает орать про слабый сигнал? тут причина и следствие очевидны
Dmitry1 #
15:01
хм.
15:01
идея
gborisov #
15:02
Dmitry1, мерси
Dmitry1 #
15:02
но опять же, без топологии оно не будет работать
zi_home #
15:02
это очевидно
15:02
давай рассчитывать про идеальный вариант
Dmitry1 #
15:03
у нас пока FM не умеет "заглядывать", что находится на другом конце
zi_home #
15:03
а в чем тогда идея
15:04
у меня МЕ4924 себя так ведут, уже два аларма в ноке
Dmitry1 #
15:04
идея в том, чтобы аларм DOM "out of threshold" обрабатывался с помощью pyrule
15:05
То, о чем я и говорю постоянно. Root cause слишком уж прямолинейный механизм
zi_home #
15:05
ну можно, придется пирули на всякие случаи записывать
15:05
про оам мы с тобой говорили
Dmitry1 #
15:05
Да
zi_home #
15:06
там тоже самое
15:06
Feb 6 16:11:41: %ETHERNET_OAM-6-RFI: The client on interface Te1/30 has received a remote failure indication from its remote peer(failure reason = remote client administratively turned off action = none)
15:06
пожалуйста
15:06
shutdown удаленного порта
15:07
Dmitry1, запишешь где-нибудь или issue создать? пара неклассифицированных сообщений
15:07
message": "Feb 6 16:08:41 192.168.81.76 : %SPANTREE-2-PVSTSIM_FAIL: Blocking root port Te1/29: Inconsitent inferior PVST BPDU received on VLAN 1007, claiming root 33775:0015.fa15.6100"
15:07
"message": "Feb 6 16:10:11 192.168.81.76 : %SPANTREE-2-PVSTSIM_OK: PVST Simulation inconsistency cleared on port TenGigabitEthernet1/29."
Dmitry1 #
15:07
А самое мое большое жедание - вынести в пируль вот это уёбище:
15:07
"jobs": [
15:07
{
15:07
"job": "check_link",
15:07
"interval": 60,
15:07
"vars": {
15:07
"interface": "alarm.vars['interface']"
15:07
}
15:07
}
15:07
]
gborisov #
15:07
Dmitry1, еще хотел спросить: а как переменные, описанные в JSONe eventclasses и alarmclasses, передавать при создании нового ивента? В аргументе raw_vars какая-то особая структура должна быть или я могу их просто ключ:значение вкорячить?
Dmitry1 #
15:07
Которое мне засырает логами весь НОК и все свичи
15:08
gborisov: не понял вопроса
zi_home #
15:08
Dmitry1, а для циски скрипт по снмп работает, я его даже не замечаю
15:10
Dmitry1, тебе надо два пируля для начала сделать 1) аларм указывает на аварию на другом МО (не важно, другой конец линка или что-то дальше) 2) аларм активен пока приходят сообщения от железки, по прекращении сообщений, аларм закрывается через ка
15:10
кое-то время
Dmitry1 #
15:11
не-не
15:11
то уёбище, которое я выше выложил, нужно оформить в виде пируля
15:11
А его я могу спокойно выключить/включить
zi_home #
15:11
это третий вариант
15:12
ты напиши пируль и скажи что он дублирует этот функционал
15:12
а так просто выпиливать то что работает, это неправильно
_4ePTeHok #
15:14
это не то
15:14
пируль ты не можешь активировать по алярму
15:15
там же периодика только
15:15
хотя в триггере есть пируль
15:15
значит вру
zi_home #
15:24
Dmitry1, вот еще сообщение неклассифицированное
15:24
mpls_ldp[1044]: %ROUTING-LDP-4-DUP_ADDRS : 1 Duplicate address(es) advertised by more than one peer
Dmitry1 #
15:26
У нас вроде есть класс "IP | Address Conflict", но оно хочет в параметрах IP адрес
zi_home #
15:27
Dmitry1, тут нюанс
15:27
это MPLS LDP жалуется
15:28
что где-то в сети две железки анонсят одинаковые адреса
15:28
это не обычный ip conflict
Dmitry1 #
15:30
zi_home: в привате завтра пообщаемся
zi_home #
15:30
ok
15:38
Dmitry1, пока завтра не наступило, в скрипте get_inventory для длинка ты забыл в шапке поправить, там get_interfaces светится :)
Dmitry1 #
15:39
ага
mikevlz|2 #
16:04
Dmitry1: ты еще не ушел?
Dmitry1 #
16:04
ухожу уже...
mikevlz|2 #
16:04
пичаль
16:04
а можешь себе где-нить записать?
16:05
правила брокейда на link up/down исправить бы неплохо, а то не подтягивается из инвентори нифига инфа
16:05
в правиле матчит ethernet x/y, а в инвентори интерфейсы просто x/y
16:06
если это ethernet из вынести за скобки - все сразу становится хорошо
16:07
хотя может я и неправ, может для фиберченела стоит оставить, но у меня дисковая полка втыкается напрямую в тазики, FC-свича нет, так что не знаю.
Dmitry1 #
16:08
я даже не знаю, что с этим делать
mikevlz|2 #
16:08
но с другой стороны там не ironware, так что вполне нормальная правка
Dmitry1 #
16:08
у huawei так само
mikevlz|2 #
16:09
ладно, если вспомню завтра - json кину тебе исправленый. Ок?
zi_home #
16:09
mikevlz|2, а если наоборот? инвентори заполнить правльно?
mikevlz|2 #
16:09
Pref - чем выше тем главнее правило?
16:10
zi_home: ну знаешь, оно в ironware именует интерфейсы ethernet x/y или ethe x/y или просто x/y. Зависит от того, как смотришь на них
16:11
так что какой вариант правильный тут вообще фиг знает. А о том, что это - сотка, гиг или 10Г ты узнать можешь или по полному show interface ethernet x/y или в snmp
16:12
на мой взгляд правильно - когда можно однозначно определить интерфейс. У этих свичей нет путаницы как у кошек. Так что минимально достаточное x/y на мой взгляд правильно
ugenk #
16:13
а кто-нибудь пользуется extreme'вскими ящиками в связке с noc?
16:14
а то там скрипт не очень, я его вроде поправил
16:14
но как-то не до конца
16:14
и у меня дискаверятся только IP которые висят на интерфейсах самого extreme
16:14
а из arp-таблицы не дискаверится
16:14
и + маску сети определяет неправилно, хотя в дебаге видно что в mask ставится правильная маска
_4ePTeHok #
16:15
get_arp надо делать..
16:15
ээ
16:15
маска в л3 интерфейсах в инвентори должна быть
ugenk #
16:15
сейчас гляну
16:16
в инвентори маска 0
_4ePTeHok #
16:16
а в дебаге?
ugenk #
16:16
правильная
_4ePTeHok #
16:16
ну какая
ugenk #
16:16
ну такая как на интерфейсе :)
16:16
http://gyazo.com/827f5dcabe4ca4ce64eade9b2da4440b
16:16
24
16:16
26
16:17
30
16:17
ну и тд
16:17
я может куда не туда смотрю в дебаге
_4ePTeHok #
16:17
херня какая то
16:17
выложи в пасту ввывод дебага
16:17
пароль только закрась
ugenk #
16:17
уже делаю
16:26
http://np.datahata.by/static/debug.txt
16:32
с get_arp вроде понял в чем проблема
16:34
хотя нет
16:34
тоже почему-то не кушает
16:35
хотя regexp я вроде правильно поправил
16:35
pythonregex.com кажет что всё ок
16:35
http://np.datahata.by/static/debug2.txt
16:37
не, всё ок уже с get_arp
16:37
забыл + вставить в regexp
16:43
_4ePTeHok, подскажи пожалуйста еще, когда я дергаю debug-script, результаты опроса не кладутся в БД?
16:57
наверное, проблема где-то тут
16:57
# Process IP
16:57
match = self.rx_ip.match(l)
16:57
if match:
16:57
mask = IPv4.netmask_to_len(match.group("mask"))
16:57
current["ip"] = "%s/%s" % (match.group("ip"), match.group("mask"))
16:57
continue
16:58
у меня кстати mask = IPv4 было закомментировано почему-то
16:58
раскомментировал, результат не поменялся, но вот новый дебаг: http://np.datahata.by/static/debug3.txt
zi_home #
17:13
ugenk, дебаг это дебаг, в базу ничего не попадет
ugenk #
17:24
а как запустить скрипт руками что бы в базу попало
zi_home #
17:24
какой скрипт?
17:24
дискавери нужно запускать
17:25
глобально, или в девелопе есть возможность персонально конкретные виды запускать
ugenk #
17:27
get_arp например хочу запустить
17:29
а discovery - это где в гуи
17:29
а, sa/managed objects
zi_home #
17:29
в МО
17:29
да
ugenk #
17:32
осталось разобраться с маской
zi_home #
17:38
так вроде правильная маска
ugenk #
17:38
я скрин выше постил
17:38
сеть/0 в ipam
17:39
хотя в дебаге всё вроде ок
17:39
<ugenk> http://gyazo.com/827f5dcabe4ca4ce64eade9b2da4440b
zi_home #
17:42
магия прям
17:45
это не в ипам, это инвентори
17:47
ugenk, проверь такой момент, из noc shell сделай выгрузку, действительно оно /0 в базу ушло, для очистки совести, а то всякое бывает
ugenk #
17:48
а подскажи что конкретно
17:48
какую команду надо
zi_home #
17:50
./noc shell
17:50
from noc.inv.models import *
17:50
i = Interface.objects.filter(...)
17:51
pritn i
ugenk #
17:51
что а что вместо ... писать
17:51
имя устройства в кавычках?
zi_home #
17:51
попробуй варианты
17:52
enabled_protocols=["IPv4"]
17:52
managed_object
17:52
я не помню имя там или id надо указывать
ugenk #
17:54
>>> i = Interface.objects.filter(enabled_protocols=["IPv4"])
17:54
>>> print i
17:54
[]
17:54
>>> i = Interface.objects.filter(managed_object='extreme')
17:54
>>> print i
17:54
[]
zi_home #
17:55
ugenk,
17:55
mo = ManagedObject.objects.get(name="cat-77-12")
17:55
i = Interface.objects.filter(managed_object=mo)
17:56
но туда все влезет
ugenk #
17:57
ага, не влазит
17:57
>>> print i
17:57
[<Interface: extreme: 1>, <Interface: extreme: 10>, <Interface: extreme: 11>, <Interface: extreme: 12>, <Interface: extreme: 13>, <Interface: extreme: 14>, <Interface: extreme: 15>, <Interface: extreme: 16>, <Interface: extreme: 17>, <Interface: extreme: 18>, <Interface: extreme: 19>, <Interface: extreme: 2>, <Interface: extreme: 20>, <Interface: extreme: 21>, <Interface: extreme: 22>, <Interface: extreme: 23>, <Interface: extreme: 24>, <Interface: ex
17:57
treme: 25>, <Interface: extreme: 26>, <Interface: extreme: 27>, '...(remaining elements truncated)...']
zi_home #
17:57
а
17:57
я лох
17:58
SubInterface надо
ugenk #
17:58
тоже обрезает
17:58
>>> print i
17:58
[<SubInterface: extreme 1>, <SubInterface: extreme 10>, <SubInterface: extreme 11>, <SubInterface: extreme 12>, <SubInterface: extreme 13>, <SubInterface: extreme 14>, <SubInterface: extreme 15>, <SubInterface: extreme 17>, <SubInterface: extreme 18>, <SubInterface: extreme 19>, <SubInterface: extreme 2>, <SubInterface: extreme 20>, <SubInterface: extreme 21>, <SubInterface: extreme 22>, <SubInterface: extreme 23>, <SubInterface: extreme 24>, <SubInte
17:58
rface: extreme 25>, <SubInterface: extreme 26>, <SubInterface: extreme 27>, <SubInterface: extreme 28>, '...(remaining elements truncated)...']
zi_home #
17:59
In [19]: i = SubInterface.objects.filter(managed_object=mo, enabled_afi=['IPv4'])
17:59
In [20]: print i
17:59
[<SubInterface: cat-77-12 Vl 1007>]
17:59
ну или просто
18:00
for a in i:
18:00
print a.ipv4_addresses
ugenk #
18:01
нули выдает
18:01
[u'31.130.200.148/0']
18:01
[u'31.130.201.65/0']
18:01
ну и тд
zi_home #
18:01
значит действительно в базе криво
18:03
не должно быть такого
ugenk #
18:03
в общем да
18:03
IPv4.netmask_to_len(match.group("mask"))
18:03
в коде имеется ввиду что там будет маска (т.е. 255.255.255.0)
18:03
а приходит regexp
zi_home #
18:03
в смысле?
ugenk #
18:04
>>> from noc.lib.ip import IPv4
18:04
>>> IPv4.netmask_to_len("24")
18:04
0
18:04
>>> IPv4.netmask_to_len("255.255.255.0")
18:04
24
zi_home #
18:05
просто крипт вроде правильный результат возвращает судя по дебагу
Tweet
Share this page
Share this page: Tweet