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: 10.06.2011
dvolodin #
06:04
Коллеги, а давайте-ка коллективно подумаем над одним вопросом
06:05
задача такая - хочу, чтобы для каждого managed object'а автоматом подсчитывалась его значимость для сети
06:05
то есть - какая часть сервисов будет затронута, если он грохнется
06:06
нужно, чтобы в фолте автоматом расставить приоритет для alarm'а
06:06
все-таки есть разница, навернется последний свич в цепочке, свич в начале цепочки или коммутатор ядра
06:07
можно, конечно, в настройках managed object'а указывать, но это тупизм
lexus-omsk #
06:08
ну это, наверное, когда топология будет - по кол-ву даунлинков, например
dvolodin #
06:08
а как ты различишь аплинк и даунлинк?
06:08
:)
06:09
там хитрость есть - часть путей резервированная
06:09
отказ свича в цепочке отшибает весь хвост
06:09
отказ свича в кольце - только юзеров свича
06:10
задачу даже обобщить можно - какие устройства станут недоступны из заданной точки сети, если отвалится конкретное устройство
06:10
может от этого плясать?
lexus-omsk #
06:10
хм... ну у нас в самописной системе так: аплинк всегда один (нет колец), а даунлинки считаются по кол-ву ссылок с других девайсов (там указаны parent-id) - ну это наша конкретная реализация... тут не прокатит
dvolodin #
06:10
типа выделить точки которые должны быть доступны всем
06:10
например, DNS'ы и ASBR
06:11
это руками указывается - основные сервисы
06:12
lexus-omsk: а если BRAS лег?
lexus-omsk #
06:15
у них приоритет другой стоит, они выше других девайсов в списке будут при падении... хотя говорю же, у нас ни разу не универсальная система... о падении браса узнают скорее по кол-ву звонков раньше
06:17
насчёт доступных точек, в общем, согласен... пока минус то, что не запустить это до построения полной топологии сети
freee #
06:25
dvolodin, никак. inventory. без вариантов.
dvolodin #
06:25
понятно что inventory, мне алгоритм интересен
06:25
положим, у нас в базе лежит топология
freee #
06:26
платформа уже говорит о важности устройства
06:26
думаю алгоритм будет взвешанный
06:27
платформа + кол-во маков + колв-во ip интерфейсов.
06:27
совсем не обнаружит важнос свитча в который включены аплинки
06:28
дистанция в переходах от маршрутизатора.
lexus-omsk #
06:30
насчёт платформы - тоже вопрос... у кого-то 3750 - самое ядро, а у кого-то - агрегация... а может и доступ у кого...
freee #
06:30
вес платформы можно расчитать по колву занесенных устройств
06:30
хотя очень спорно
06:32
регулярные выражения по названию :) bsr +100500, *bill* +100400, bgw +100600 :) бред конечно
dvolodin #
06:35
хотелось бы избежать
06:36
по макам - да, хорошая метрика
06:36
тогда еще размер ARP-кеша
freee #
06:36
быть может тогда маки конкртных устройст.
dvolodin #
06:36
можно еще - количество префиксов на BGP-сессиях
freee #
06:36
например bgp пиров
dvolodin #
06:37
тогда бордеры выловит
freee #
06:37
тут проще
06:37
ипы не пренадлежащие автономки +100500
06:37
это будут стыки с операторами
dvolodin #
06:37
да не -- суммарное количество префиксов, полученное по eBGP
freee #
06:38
предполагаю механизм сканирования важности ?
dvolodin #
06:38
если там аплинк - будет много
06:38
с автономками мутно
06:38
у вас же их, например, много
freee #
06:40
предвижу механизм который вызывает известные ему тесты на важность для конкретной железки и в ответ ожидает положительную накопительную метрику
06:40
хотя нее
06:41
скрипт не в состоянии понять тыща маков это много или нет
06:44
предвижу 64 битный счетчик важности аварии
dvolodin #
06:44
логарифмические шкалы рулят
freee #
06:44
:)
06:44
это важность железки.
06:44
а когда упал город.
06:44
и остался жив только bgw
lexus-omsk #
06:51
тогда зафиксируется потеря связи с активатором :)
dvolodin #
06:52
так это и есть конечная цель
06:52
прилетит событие Ping Failed
06:52
поднимет Alarm Ping Failed
06:53
так вот - я и хочу автоматом задирать приоритет этому alarm'у
06:53
и свернуть в него все alarm'ы Ping Failed, если эти железки находятся за ней
06:53
root cause такой примитивный
06:54
самый примитивный тип - graph based
06:58
свернуть недоступные - не особая проблема
Dmitry1 #
06:59
Цветами задать
07:00
зеленый, синий, оливковый
freee #
07:00
цветами хорошая идея!
07:00
даешь цветной нок !
Dmitry1 #
07:00
на карте хорощо будет видно самую важную трассу из устройств
07:01
Все смотрим сюда: http://img443.imageshack.us/img443/8369/dudemapjq2.jpg
07:02
Или сюда: http://forum.mikrotik.com/download/file.php?id=1418
freee #
07:03
опа. дудка.
07:04
но приоритет аварии это не совсем карта :)
LexLuthor #
07:04
да ладно, это еще маленькая карта
07:04
))
freee #
07:06
LexLuthor, так... основные железки в ядре. без агрегации.
07:06
:)
LexLuthor #
07:06
аа
07:06
=)
Dmitry1 #
07:06
Зато любой человек, который не дальтоник, разберется, какая железка или какой линк важнее всего.
freee #
07:07
а дальтоников среди мужчин 3! прочента
dvolodin #
07:08
а просто мудаков - 30 :)
Dmitry1 #
07:08
Ну, обычно сисадмины дальтониками редко бывают. Витуху неудобно обжимать. И волокно в тубе различать.
dvolodin #
07:08
да не
freee #
07:08
женщины есть на канале ? скажите уже сакраметальное "Все мужики козлы"
07:10
dvolodin, а вообще думаю от поправочного cost в свойствах объекта не уйти
07:11
что подтверждают все автоматические системы :) ospf, stp
dvolodin #
07:12
кстати да
07:12
для линков полезно брать IGP Cost
07:12
:)
freee #
07:13
:))
07:13
вот ведь..
dvolodin #
07:13
а для L2
07:13
Bridge priority из STP
07:13
и рутовому свичу задирать
freee #
07:13
64 битный счетчик... где ты там :)
dvolodin #
07:14
скоринговая модель, блин
07:14
:)
freee #
07:14
дык без вариантов
dvolodin #
07:24
и очередной гадский скрипт get_fm_metrics
07:24
:)
07:25
который будет драть разные параметры
07:25
а еще полезно лезть в 1С и выдирать стоимость железки
07:25
кипеш в случае завала дорогой железки больше ;)
gnu-linux #
07:28
По поводу важности объекта. Это задача теории графов!!! Сеть - граф. Задача: на какие графы разделится сеть если выкинуть один узел. Важность узла определяется числом узлов графа которые становятся не доступны при его отключении, от 1
07:28
отключился крайний свитч и до ...
07:29
Задача чисто с теории графов...
07:29
Какой алгоритм? Лично меня теории графов не учили...
07:30
Впервые столкнулся при написании поиска пути для статического vlan...
07:31
Мой совет непридумывать алгоритм, а найти в интернетах готовое решение.. И добавить в нок еще пару функций с графами..
07:32
Относительно таблицы маков арпов bgp ... Это может только определять "вес" узла в графе...
07:33
Но если добавить "вес" узла это значительно усложнит алгоритм поиска "значимости/кретичности" данного узла...
07:33
Такие вот эти графы противные и вредные...
07:34
Алгоритмы сверх сложные, человечество некоторые буквально пару лет назад открыло...
07:35
А ещё больше не открыло:) Так что я однозначно рекомендую использовать готовое решение!!!
07:36
У меня есть, другая, тема для осуждения.. Можно?...
07:38
Короче идея вытянуть максимум с "опции 82" dhcp relay....
07:40
настройки свича предельно просты и все свичи L2 её поддерживают.
07:41
Опция 82 возвращает dhcp серверу ID коммутатора и порт с которого производится запрос IP адреса.
07:42
Соотведственно dhcp сервер может выделить IP основываясь натом с какого порта какого свичя происходит подключение...
07:44
Далее в билинге, например netup есть возможность привязать клиента к ip и порту...
07:45
Наконец вопрос: какой dhcp сервер умеет лазить в базу mysql, postgre?
dvolodin #
07:45
gnu-linux: а зачем ему лазять?
07:45
делай ему конфиг и пинай
gnu-linux #
07:46
За привязкой IP клиента IP порт rjvvenfnjhf которая есть в билинге...
07:46
8коммутатора
07:48
Если у меня будет такой dhcp то при добавлении клиента в билинг и выдилении в биленге ему портов прога автоматом пробъёт все vlan и выдаст IP!!!
inoyat_kayumov #
07:49
gnu-linux, http://forum.nag.ru/forum/index.php?showtopic=64849
07:49
http://forum.nag.ru/forum/index.php?showtopic=64724
gnu-linux #
07:50
http://forum.nag.ru/forum/index.php?showtopic=49611
07:50
Dlink http://www.dlink.ru/ru/faq/62/228.html
07:51
Опция 82 http://xgu.ru/wiki/%CE%EF%F6%E8%FF_82_DHCP
Dmitry1 #
07:51
Ээээ.. Чего-то вас не в ту сторону понесло
07:51
Лучше смотрите в сторону объединения dhcpd+bind
dvolodin #
07:53
можно как одну задачку для service catalog сделать
Dmitry1 #
07:54
Или в сторону FreeRadius
dvolodin #
07:54
BRAS'ы это в RADIUS отдают
07:54
обычно привязку туда и вливают
Dmitry1 #
07:54
Ну так тем более. FreeRadius однозначно
dvolodin #
07:55
если provisioning на сети развернут, то при изменении в сервисном каталоге параметров ip/порт, выдавливает изменеия в радиус
07:55
там засада есть, кстати, с опцией 82
07:56
на части свичей первый порт имеет номер 1, на других - 0
07:56
поэтому номер порта в opt 82 надо корректировать в зависимости от модели свича
07:56
у нас на этом SRC-PE жестко обламывался
inoyat_kayumov #
07:58
а как быть тем у кого нет dhcp на доступе? ну как класс? нет привязок ip-mac и проч.
Dmitry1 #
07:59
а что есть?
inoyat_kayumov #
07:59
pppoe - в разных видах - с дсламов или свитчей все терминируется на брасы
07:59
радиус - часть биллинга
Dmitry1 #
08:00
PPPoE Tag Insertion
dvolodin #
08:00
pppoe тоже с radius'а пускается обычно
Dmitry1 #
08:00
Сейчас разые что смыльницы не умеют этого
freee #
08:00
Dmitry1, иди 3026
inoyat_kayumov #
08:01
записал себе в todo...
freee #
08:01
*или
08:01
или 3526
Dmitry1 #
08:01
3526 давно это умеет
freee #
08:01
6 прошива не пспоминаю этой опции
Dmitry1 #
08:01
Еще с прошивки 6.00-B14
08:04
Если интересно, могу ченжлго для прошивок 3526 выслать
`kk #
08:05
к слову. "DHCP server with SQL support on Perl" на тесте держит 4-5к юзеров
Dmitry1 #
08:06
А на практике загнется на второй сотне. Проходили. Знаем.
`kk #
08:06
второй сотне? 200к юзеров?
Dmitry1 #
08:06
Нет.
08:06
Я тебе приведу простой пример.
08:07
У нас есть такая штука, как DOCSIS.
`kk #
08:07
давай. и ещё альтернативу dhcp кроме ics
Dmitry1 #
08:07
там такие устройства есть - кабельные модемы, которые все-все-все получают через bootp. dhcp и tftfp
08:09
Кабельный модем, пока не получит прошивку считает себя в оффлайне и "тушит" ethernet порт
08:09
Теперь ситуация: По каким-то причинам перегружается CMTS
08:10
В ОДНУ СЕКУНДУ патаются получить адрес по DHCP пару тысяч модемов и несколько тысяч пользователей за ними.
`kk #
08:10
не испоьзуем DOCSIS
Dmitry1 #
08:11
Это не считая того, что кроме адреса по DHCP модемы еще подтягивают сертификаты и профиль по tftp
08:11
Альтернатива isc - radius
08:11
Причем там тоже не все хорошо. Иногда ему не хватает и сотни тредов на обработку.
`kk #
08:12
в данный момент перл дхсп устраиват всем (с небольшим напильником)
08:12
радиус смотрели. не понравилось
Dmitry1 #
08:12
Почему не понравилось? Пишешь свой модуль как хочешь.
`kk #
08:13
чем-то неустроил несколько лет назад. за место него был isc
dvolodin #
08:14
freeradius хорош, если с умом его использовать
Dmitry1 #
08:15
Я вообще видел одну большую контору у которой в рфдиусе всего один модуль, но который все умеет
`kk #
08:16
да я не говорю, что он плохой -)
gnu-linux #
08:18
У меня сейчас pppoe - radius - billing
Dmitry1 #
08:18
ну так это у большинства
`kk #
08:18
у нас и pppoe нет -)
Dmitry1 #
08:18
так уже идут вариации: pppoe, l2tp, pptp и т.п.
gnu-linux #
08:19
Хочу выкинуть нах pppoe дать vlan на пользователя и динамически раздавать ip...
08:20
radius и билинг оставлю
Dmitry1 #
08:20
терминировать vlan'ы на чем будешь?
gnu-linux #
08:21
пока в раздумии где будет определятся vlan и когда...
08:21
пробиватся будет ноком :)
08:22
хочу пока максимально просто сделать, без AAA и радиуса, для некретичьных пользователей...
08:23
Просто с биллинга взять коммутатор - порт отправить в dhcp пробить vlan и выдать ip по dhcp
08:24
В клиента вообще надо выставить только dhcp discovery...
08:25
Потом добавлю 802.x и radius но это усложнит настройку клиента...
08:25
Для очень кретичных в конце ещё и сертефикат ipsec..
_4ePTeHok #
08:59
dvolodin> да не -- суммарное количество префиксов, полученное по eBGP - а если у меня на бордере один дефолт?) а на другом роутере пониже - пиринговые стыки с кучей сессий?)
dvolodin #
09:01
вот еще метрика
09:01
получаемый по eBGP дефолт
09:01
:)
09:01
причем с хорошим весом, надо сказать
_4ePTeHok #
09:04
ога
09:04
и маков там не обязательно много будет в этом случае
dvolodin #
09:05
ну и пусть
09:05
формула вроде такой
09:07
sum( ai * log(mi))
09:07
где a - весовой коэффициент, m - метрика
lexus-omsk #
09:09
а можно пример - что есть метрика, а что вес в данном случае
dvolodin #
09:09
ну например
09:09
есть дефолт из eBGP - вес 1000, метрика 1
09:10
для маков - метрика - количество маков, вес - подгоняется
09:11
ну пусть для дефолта вес будет 3
09:11
для маков - 1
lexus-omsk #
09:11
ага, вроде понял
dvolodin #
09:11
и вот вам - железка с дефолтом имеет общую стоимость с 1000 маков
gnu-linux #
09:13
Кажись придумал алгоритм определения кретичности узла!
09:14
1 Определяем все маршруты от каждого узла к "Самому Важному".
09:14
2 Определяем узлы в маршрутах которых есть отключаемый узел.
09:14
3 Если маршрут не единственный для узла то от его веса отнимаем процент потеряных каналов к "Самому Важному" узлу.
09:14
4 Подщитываем суму оставшихся "весов" этих узлов.
dvolodin #
09:15
нюанс есть
09:15
засада с линками
09:16
надо смотреть, что там, switchport или L3
09:19
скорее всего в два захода надо
09:19
по логарифмической шкале периодически рассчитываем и храним в базе меру маниакального величия каждой железки
09:20
это будет серьезность отказа ее в случае, если она живет сама по себе
09:21
а серьезность аварии можно считать по топологии
09:21
к каким ресурсам пропадет доступ и с каких железок
09:22
и опять же - по логарифмической шкале
09:22
сравнивать не количественные показатели, а порядки
gnu-linux #
09:23
dvolodin: может лучше функционал какой в нок добавить?
09:23
Хотябы карту...
dvolodin #
09:23
Если хорошо подогнать - получим уровень шума в децибелах на техподдержке
gnu-linux #
09:23
К стати у меня получились карты сети и vlanов :)
dvolodin #
09:23
будет карта с inventory
gnu-linux #
09:24
Ктото смотрит моё поделие? Выкладывать релиз сегодня?
lexus-omsk #
09:24
снова немного оффтопа:
09:24
делаю get_version, вывод немного отлличается на разных версиях... но делать NOCScript.match по версии в скрипте get_version - немного странновато
dvolodin #
09:26
в get_version придется руками
gnu-linux #
09:26
Я на такое забивал. Просто указывать список версий фирмваре.. А там можно свич обновить до нужной версии. Главное чтобы самые свежие версии поддерживальсь..
dvolodin #
09:27
Script.find_re
lexus-omsk #
09:27
ну это откопал я зюксель с прошивкой 3.60, он платформу не показывает
dvolodin #
09:27
можно по разным регуляркам попроверять
09:28
платформу они наверняка по SNMP отдают
gnu-linux #
09:29
Забей на них Зухели 3.50 вообще совсем другие я их в особом профиле держу... А 3.60 можно обновить до 3.90..
lexus-omsk #
09:30
через snmp - да, можно
09:31
ну и обновить можно, надо просто тогда предусмотреть чтоб не вываливался трейсбэк... как раз с помощью find?
dvolodin #
09:36
try: ... except: ...
Dmitry1 #
09:48
2dvolodin: Ты не думал еще над дополнительными интерфейсами к SA?
09:48
Или над разбивкой существующих на кучу мелких.
_4ePTeHok #
09:52
тут надо подумать, чтобы каждый вызов интерфейса не лез на свитч
09:53
а то наделаем, что выдергивание маков будет 100 раз запускать интерфейсы, каждый раз логин и т д
09:54
надо как то систематизировать вызовы - чтобы скажем можно было очередь выстраивать - один раз залогинился - нужные интерфейсы-запросы выполнил - отвалил
09:54
ну и кэш
Dmitry1 #
10:02
_4ePTeHok: для этого кеш существует
10:03
Как им пользоваться - дело автора скриптов.
dvolodin #
10:20
кеш - дело хорошее
10:20
главное, не увлекаться
freee #
10:40
быть может для тегов нужен механизм не слива вместе а алиасинга
10:41
в кирове ребята тег придумали krv а у я запонял как kirov
10:41
и тот и другой имеют право на существование.
10:41
и добавляеют удобстава
Dmitry1 #
10:41
Ни в коем случае не теги и не селекторы
freee #
10:41
но при поиске хотелось бы что бы они были равнозанчны
dvolodin #
10:42
тогда все, связанное с тегами, придется переделывать
Dmitry1 #
10:42
Я уже рассказывал притчу, как в бухгалтерии завели две карточки "ленолиум" и "линолеум". На одну шел приход, а не другую - расход.
freee #
10:42
я боялся этого ответа
dvolodin #
10:43
для тегов используется django-tagging
10:44
вообще он кривоват
10:44
имеет смысл хранить теги в mongodb и не париться
freee #
10:45
дима проперся от монгодб :)
dvolodin #
10:46
ну типа того
10:46
данные в него хорошо ложатся
10:46
и функционал быстрее расширяется
10:46
захотел сделать чат в просмотре события - взял и сделал
10:46
не плодя новых таблиц
_4ePTeHok #
10:49
о, чатики
10:49
"юра, ты почему, казлина не подключил упс?")
10:49
"я не козел"))
dvolodin #
10:54
ну да
10:55
"Сегодня тусим на аларме 'Навернулся свич в сортире'"
10:55
О
10:55
вот и идейка
10:55
алармам надо имя давать
10:56
вместо малоинформативного "pe-1-m9 is down" - "ГЛОБАЛЬНЫЙ ТРЫНДЕЦ"
10:56
и малиновым цветом
10:57
типа взял аварию на разборку, переименовал, покрасил голубеньким
10:57
ляпота
_4ePTeHok #
10:58
это уже трабл тикет
dvolodin #
10:58
так задача фолта - поддержка всего жизненного цикла событий
_4ePTeHok #
10:58
ага, да я просто подмечаю
dvolodin #
10:58
естественно, что у недо дофига функционала пересечется с TT
10:58
кроме того, в полной промышленной эксплуатации они связаны с TT
10:59
при серьезных авариях заявка создается
10:59
при закрытии аварии - автоматом закрывается
11:00
что-то прет меня в пятницу без грибов
_4ePTeHok #
11:00
это верный подход
11:00
только тогда ТТ надо будет интегрировать
dvolodin #
11:00
ну а как же
_4ePTeHok #
11:00
или писать свое
dvolodin #
11:00
да не
11:00
RT тот же без проблем интегрируетяс
11:01
конечно, когда проект разрастется, можно будет пару программеров посадить писать service desk для NOC
_4ePTeHok #
11:02
дашбоард!)
dvolodin #
11:02
тот же ManageEngine тихой сапой так и сделал
11:02
да хотя бы
11:06
Мы как раз потихоньку начинаем развивать направление коммерческой поддержки
11:07
интеграция всего со всем туда и войдет
_4ePTeHok #
11:21
а не в курсе на хп где меняется мту? чот сходу невижу(
dvolodin #
11:22
на прокурвах менялся
_4ePTeHok #
11:24
у меня тут 5304
dvolodin #
12:43
вкусность из недавних коммитов
12:43
появился скрипт noc
12:43
который можно использовать вместо python manage.py
12:43
./noc runserver, например
12:43
./noc debug-script ....
freee #
12:47
нереальный коммит!
dvolodin #
12:48
ага
12:48
:)
12:48
задрало
Tweet
Share this page
Share this page: Tweet