nocproject.org
06:04
Коллеги, а давайте-ка коллективно подумаем над одним вопросом
06:05
задача такая - хочу, чтобы для каждого managed object'а автоматом подсчитывалась его значимость для сети
06:05
то есть - какая часть сервисов будет затронута, если он грохнется
06:06
нужно, чтобы в фолте автоматом расставить приоритет для alarm'а
06:06
все-таки есть разница, навернется последний свич в цепочке, свич в начале цепочки или коммутатор ядра
06:07
можно, конечно, в настройках managed object'а указывать, но это тупизм
06:08
ну это, наверное, когда топология будет - по кол-ву даунлинков, например
06:08
а как ты различишь аплинк и даунлинк?
06:08
:)
06:09
там хитрость есть - часть путей резервированная
06:09
отказ свича в цепочке отшибает весь хвост
06:09
отказ свича в кольце - только юзеров свича
06:10
задачу даже обобщить можно - какие устройства станут недоступны из заданной точки сети, если отвалится конкретное устройство
06:10
может от этого плясать?
06:10
хм... ну у нас в самописной системе так: аплинк всегда один (нет колец), а даунлинки считаются по кол-ву ссылок с других девайсов (там указаны parent-id) - ну это наша конкретная реализация... тут не прокатит
06:10
типа выделить точки которые должны быть доступны всем
06:10
например, DNS'ы и ASBR
06:11
это руками указывается - основные сервисы
06:12
lexus-omsk: а если BRAS лег?
06:15
у них приоритет другой стоит, они выше других девайсов в списке будут при падении... хотя говорю же, у нас ни разу не универсальная система... о падении браса узнают скорее по кол-ву звонков раньше
06:17
насчёт доступных точек, в общем, согласен... пока минус то, что не запустить это до построения полной топологии сети
06:25
dvolodin, никак. inventory. без вариантов.
06:25
понятно что inventory, мне алгоритм интересен
06:25
положим, у нас в базе лежит топология
06:26
платформа уже говорит о важности устройства
06:26
думаю алгоритм будет взвешанный
06:27
платформа + кол-во маков + колв-во ip интерфейсов.
06:27
совсем не обнаружит важнос свитча в который включены аплинки
06:28
дистанция в переходах от маршрутизатора.
06:30
насчёт платформы - тоже вопрос... у кого-то 3750 - самое ядро, а у кого-то - агрегация... а может и доступ у кого...
06:30
вес платформы можно расчитать по колву занесенных устройств
06:30
хотя очень спорно
06:32
регулярные выражения по названию :) bsr +100500, *bill* +100400, bgw +100600 :) бред конечно
06:35
хотелось бы избежать
06:36
по макам - да, хорошая метрика
06:36
тогда еще размер ARP-кеша
06:36
быть может тогда маки конкртных устройст.
06:36
можно еще - количество префиксов на BGP-сессиях
06:37
тогда бордеры выловит
06:37
тут проще
06:37
ипы не пренадлежащие автономки +100500
06:37
это будут стыки с операторами
06:37
да не -- суммарное количество префиксов, полученное по eBGP
06:38
предполагаю механизм сканирования важности ?
06:38
если там аплинк - будет много
06:38
с автономками мутно
06:38
у вас же их, например, много
06:40
предвижу механизм который вызывает известные ему тесты на важность для конкретной железки и в ответ ожидает положительную накопительную метрику
06:40
хотя нее
06:41
скрипт не в состоянии понять тыща маков это много или нет
06:44
предвижу 64 битный счетчик важности аварии
06:44
логарифмические шкалы рулят
06:44
:)
06:44
это важность железки.
06:44
а когда упал город.
06:44
и остался жив только bgw
06:51
тогда зафиксируется потеря связи с активатором :)
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
свернуть недоступные - не особая проблема
06:59
Цветами задать
07:00
зеленый, синий, оливковый
07:00
цветами хорошая идея!
07:00
даешь цветной нок !
07:00
на карте хорощо будет видно самую важную трассу из устройств
07:01
07:02
07:03
опа. дудка.
07:04
но приоритет аварии это не совсем карта :)
07:04
да ладно, это еще маленькая карта
07:04
))
07:06
LexLuthor, так... основные железки в ядре. без агрегации.
07:06
:)
07:06
Зато любой человек, который не дальтоник, разберется, какая железка или какой линк важнее всего.
07:07
а дальтоников среди мужчин 3! прочента
07:08
а просто мудаков - 30 :)
07:08
Ну, обычно сисадмины дальтониками редко бывают. Витуху неудобно обжимать. И волокно в тубе различать.
07:08
женщины есть на канале ? скажите уже сакраметальное "Все мужики козлы"
07:10
dvolodin, а вообще думаю от поправочного cost в свойствах объекта не уйти
07:11
что подтверждают все автоматические системы :) ospf, stp
07:12
кстати да
07:12
для линков полезно брать IGP Cost
07:12
:)
07:13
:))
07:13
вот ведь..
07:13
а для L2
07:13
Bridge priority из STP
07:13
и рутовому свичу задирать
07:13
64 битный счетчик... где ты там :)
07:14
скоринговая модель, блин
07:14
:)
07:24
и очередной гадский скрипт get_fm_metrics
07:24
:)
07:25
который будет драть разные параметры
07:25
а еще полезно лезть в 1С и выдирать стоимость железки
07:25
кипеш в случае завала дорогой железки больше ;)
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?
07:45
gnu-linux: а зачем ему лазять?
07:45
делай ему конфиг и пинай
07:46
За привязкой IP клиента IP порт rjvvenfnjhf которая есть в билинге...
07:46
8коммутатора
07:48
Если у меня будет такой dhcp то при добавлении клиента в билинг и выдилении в биленге ему портов прога автоматом пробъёт все vlan и выдаст IP!!!
07:51
Ээээ.. Чего-то вас не в ту сторону понесло
07:51
Лучше смотрите в сторону объединения dhcpd+bind
07:53
можно как одну задачку для service catalog сделать
07:54
Или в сторону FreeRadius
07:54
BRAS'ы это в RADIUS отдают
07:54
обычно привязку туда и вливают
07:54
Ну так тем более. FreeRadius однозначно
07:55
если provisioning на сети развернут, то при изменении в сервисном каталоге параметров ip/порт, выдавливает изменеия в радиус
07:55
там засада есть, кстати, с опцией 82
07:56
на части свичей первый порт имеет номер 1, на других - 0
07:56
поэтому номер порта в opt 82 надо корректировать в зависимости от модели свича
07:56
у нас на этом SRC-PE жестко обламывался
07:58
а как быть тем у кого нет dhcp на доступе? ну как класс? нет привязок ip-mac и проч.
07:59
pppoe - в разных видах - с дсламов или свитчей все терминируется на брасы
07:59
радиус - часть биллинга
08:00
PPPoE Tag Insertion
08:00
pppoe тоже с radius'а пускается обычно
08:00
Сейчас разые что смыльницы не умеют этого
08:01
записал себе в todo...
08:01
*или
08:01
или 3526
08:01
3526 давно это умеет
08:01
6 прошива не пспоминаю этой опции
08:01
Еще с прошивки 6.00-B14
08:04
Если интересно, могу ченжлго для прошивок 3526 выслать
08:05
к слову. "DHCP server with SQL support on Perl" на тесте держит 4-5к юзеров
08:06
А на практике загнется на второй сотне. Проходили. Знаем.
08:06
второй сотне? 200к юзеров?
08:06
Нет.
08:06
Я тебе приведу простой пример.
08:07
У нас есть такая штука, как DOCSIS.
08:07
давай. и ещё альтернативу dhcp кроме ics
08:07
там такие устройства есть - кабельные модемы, которые все-все-все получают через bootp. dhcp и tftfp
08:09
Кабельный модем, пока не получит прошивку считает себя в оффлайне и "тушит" ethernet порт
08:09
Теперь ситуация: По каким-то причинам перегружается CMTS
08:10
В ОДНУ СЕКУНДУ патаются получить адрес по DHCP пару тысяч модемов и несколько тысяч пользователей за ними.
08:10
не испоьзуем DOCSIS
08:11
Это не считая того, что кроме адреса по DHCP модемы еще подтягивают сертификаты и профиль по tftp
08:11
Альтернатива isc - radius
08:11
Причем там тоже не все хорошо. Иногда ему не хватает и сотни тредов на обработку.
08:12
в данный момент перл дхсп устраиват всем (с небольшим напильником)
08:12
радиус смотрели. не понравилось
08:12
Почему не понравилось? Пишешь свой модуль как хочешь.
08:13
чем-то неустроил несколько лет назад. за место него был isc
08:14
freeradius хорош, если с умом его использовать
08:15
Я вообще видел одну большую контору у которой в рфдиусе всего один модуль, но который все умеет
08:16
да я не говорю, что он плохой -)
08:18
У меня сейчас pppoe - radius - billing
08:18
ну так это у большинства
08:18
у нас и pppoe нет -)
08:18
так уже идут вариации: pppoe, l2tp, pptp и т.п.
08:19
Хочу выкинуть нах pppoe дать vlan на пользователя и динамически раздавать ip...
08:20
radius и билинг оставлю
08:20
терминировать vlan'ы на чем будешь?
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..
08:59
dvolodin> да не -- суммарное количество префиксов, полученное по eBGP - а если у меня на бордере один дефолт?) а на другом роутере пониже - пиринговые стыки с кучей сессий?)
09:01
вот еще метрика
09:01
получаемый по eBGP дефолт
09:01
:)
09:01
причем с хорошим весом, надо сказать
09:04
ога
09:04
и маков там не обязательно много будет в этом случае
09:05
ну и пусть
09:05
формула вроде такой
09:07
sum( ai * log(mi))
09:07
где a - весовой коэффициент, m - метрика
09:09
а можно пример - что есть метрика, а что вес в данном случае
09:09
ну например
09:09
есть дефолт из eBGP - вес 1000, метрика 1
09:10
для маков - метрика - количество маков, вес - подгоняется
09:11
ну пусть для дефолта вес будет 3
09:11
для маков - 1
09:11
и вот вам - железка с дефолтом имеет общую стоимость с 1000 маков
09:13
Кажись придумал алгоритм определения кретичности узла!
09:14
1 Определяем все маршруты от каждого узла к "Самому Важному".
09:14
2 Определяем узлы в маршрутах которых есть отключаемый узел.
09:14
3 Если маршрут не единственный для узла то от его веса отнимаем процент потеряных каналов к "Самому Важному" узлу.
09:14
4 Подщитываем суму оставшихся "весов" этих узлов.
09:15
нюанс есть
09:15
засада с линками
09:16
надо смотреть, что там, switchport или L3
09:19
скорее всего в два захода надо
09:19
по логарифмической шкале периодически рассчитываем и храним в базе меру маниакального величия каждой железки
09:20
это будет серьезность отказа ее в случае, если она живет сама по себе
09:21
а серьезность аварии можно считать по топологии
09:21
к каким ресурсам пропадет доступ и с каких железок
09:22
и опять же - по логарифмической шкале
09:22
сравнивать не количественные показатели, а порядки
09:23
dvolodin: может лучше функционал какой в нок добавить?
09:23
Хотябы карту...
09:23
Если хорошо подогнать - получим уровень шума в децибелах на техподдержке
09:23
К стати у меня получились карты сети и vlanов :)
09:23
будет карта с inventory
09:24
Ктото смотрит моё поделие? Выкладывать релиз сегодня?
09:24
снова немного оффтопа:
09:24
делаю get_version, вывод немного отлличается на разных версиях... но делать NOCScript.match по версии в скрипте get_version - немного странновато
09:26
в get_version придется руками
09:26
Я на такое забивал. Просто указывать список версий фирмваре.. А там можно свич обновить до нужной версии. Главное чтобы самые свежие версии поддерживальсь..
09:27
ну это откопал я зюксель с прошивкой 3.60, он платформу не показывает
09:27
можно по разным регуляркам попроверять
09:28
платформу они наверняка по SNMP отдают
09:29
Забей на них Зухели 3.50 вообще совсем другие я их в особом профиле держу... А 3.60 можно обновить до 3.90..
09:30
через snmp - да, можно
09:31
ну и обновить можно, надо просто тогда предусмотреть чтоб не вываливался трейсбэк... как раз с помощью find?
09:36
try: ... except: ...
09:48
2dvolodin: Ты не думал еще над дополнительными интерфейсами к SA?
09:48
Или над разбивкой существующих на кучу мелких.
09:52
тут надо подумать, чтобы каждый вызов интерфейса не лез на свитч
09:53
а то наделаем, что выдергивание маков будет 100 раз запускать интерфейсы, каждый раз логин и т д
09:54
надо как то систематизировать вызовы - чтобы скажем можно было очередь выстраивать - один раз залогинился - нужные интерфейсы-запросы выполнил - отвалил
09:54
ну и кэш
10:02
_4ePTeHok: для этого кеш существует
10:03
Как им пользоваться - дело автора скриптов.
10:20
кеш - дело хорошее
10:20
главное, не увлекаться
10:40
быть может для тегов нужен механизм не слива вместе а алиасинга
10:41
в кирове ребята тег придумали krv а у я запонял как kirov
10:41
и тот и другой имеют право на существование.
10:41
и добавляеют удобстава
10:41
Ни в коем случае не теги и не селекторы
10:41
но при поиске хотелось бы что бы они были равнозанчны
10:42
тогда все, связанное с тегами, придется переделывать
10:42
Я уже рассказывал притчу, как в бухгалтерии завели две карточки "ленолиум" и "линолеум". На одну шел приход, а не другую - расход.
10:42
я боялся этого ответа
10:43
для тегов используется django-tagging
10:44
вообще он кривоват
10:44
имеет смысл хранить теги в mongodb и не париться
10:45
дима проперся от монгодб :)
10:46
ну типа того
10:46
данные в него хорошо ложатся
10:46
и функционал быстрее расширяется
10:46
захотел сделать чат в просмотре события - взял и сделал
10:46
не плодя новых таблиц
10:49
о, чатики
10:49
"юра, ты почему, казлина не подключил упс?")
10:49
"я не козел"))
10:54
ну да
10:55
"Сегодня тусим на аларме 'Навернулся свич в сортире'"
10:55
О
10:55
вот и идейка
10:55
алармам надо имя давать
10:56
вместо малоинформативного "pe-1-m9 is down" - "ГЛОБАЛЬНЫЙ ТРЫНДЕЦ"
10:56
и малиновым цветом
10:57
типа взял аварию на разборку, переименовал, покрасил голубеньким
10:57
ляпота
10:58
это уже трабл тикет
10:58
так задача фолта - поддержка всего жизненного цикла событий
10:58
ага, да я просто подмечаю
10:58
естественно, что у недо дофига функционала пересечется с TT
10:58
кроме того, в полной промышленной эксплуатации они связаны с TT
10:59
при серьезных авариях заявка создается
10:59
при закрытии аварии - автоматом закрывается
11:00
что-то прет меня в пятницу без грибов
11:00
это верный подход
11:00
только тогда ТТ надо будет интегрировать
11:00
да не
11:00
RT тот же без проблем интегрируетяс
11:01
конечно, когда проект разрастется, можно будет пару программеров посадить писать service desk для NOC
11:02
тот же ManageEngine тихой сапой так и сделал
11:02
да хотя бы
11:06
Мы как раз потихоньку начинаем развивать направление коммерческой поддержки
11:07
интеграция всего со всем туда и войдет
11:21
а не в курсе на хп где меняется мту? чот сходу невижу(
11:22
на прокурвах менялся
12:43
вкусность из недавних коммитов
12:43
появился скрипт noc
12:43
который можно использовать вместо python manage.py
12:43
./noc runserver, например
12:43
./noc debug-script ....
12:48
ага
12:48
:)
12:48
задрало
Share this page
Share this page: