nocproject.org
05:04
привет! Есть кто живой на канале?
05:05
подскажите, я на циске обновил IOS.. та же ветка, те же фичи и та же лицензия, только версия более новая. была 150-1М. Стала 152-4М. И у меня слетел конфиг на интерфейсах "traffic-shape group..." в новой версии такая команда не поддерживается
05:05
ни кто не помит - её выпилили чтоли, совсем? или заменили на что-то другое?
05:43
MindGames, друг это команда из 90х годов, она deprecated уже много лет. пользуйся mqc
05:43
zi_rus, ну я старпер :) эта комманда полный аналог шейпера?
05:44
zi_rus, нет такой команды у меня на сабе :(
05:44
facepalm
05:44
policy-map 1M-inet
05:44
class class-default
05:44
shape average 1024000
05:45
exit
05:45
int fa0/1
05:45
service-policy output 1M-inet
05:46
это называется mqc
05:47
zi_rus, аа.. ну то есть полиси мапом надо пользоваться. очень неудобно.. раньше одной строчкой на интерфейсе можно было сделать. а сейчас куча строчек.. я уже пробовал - оно ругается, что у меня на интерфейсе уже есть рейт лимит. а в старой версии работа
05:47
ло параллельно спокойно :( в общем, как всегда, сделали хуже.. да и полиси почему-то загрузил процессор циски моей до 60%
05:47
полиси ты один раз содаешь
05:47
а потом все равно одна строчка на интерфейсе
05:48
кстати, мне надо разные классы траффика делать. нужно создать на них отдельные полиси, а потом сделать полиси с класс-дефаулт и туда кинуть сервис-полиси с нужными мне классами?
05:48
и как ты это делал на трафик шейпе?
05:50
ну просто добавил команду траффик-шейп с указанием полосы. все. не ругался.. а вот полиси ругается :(
05:50
в общем, рейт лимит повешу
05:51
e_zombie, извини, разослал сслыку в отделе
05:51
это шедевр
05:52
программисты такие программисты
06:00
Волчок. Хроники рекламщика #2492
06:00
— рисуешь чувака из линий?
06:00
— это кривые безье
06:00
— не выёбуйся
06:00
— иди нахуй
06:02
e_zombie, помоги с полиси.. Вот что я наклепал:
06:02
class-map match-any torrents
06:02
match protocol edonkey
06:02
match protocol directconnect
06:02
match protocol kazaa2
06:02
match protocol gnutella
06:03
match protocol fasttrack
06:03
match protocol bittorrent
06:03
06:03
policy-map limit_torrents
06:03
class torrents
06:03
police 1024000 32000 32000 conform-action transmit exceed-action drop violate-action drop
06:03
06:03
Могу ли я теперь этот полиси прикрутить на интерфейс? Или нужно сделать еще вот это:
06:03
policy-map limit
06:03
class class-default
06:03
service-policy limit_torrents
06:03
бля бля бля бля изыди.
06:03
e_zombie, :)))
06:04
ну помогии %:))
06:04
я тут pppoe от PoEthernet плохо отличаю .
06:04
а ты с такими вопросами
06:04
мне просто понять как правильно прикрутить ;))
06:04
и ваще. это канал про аниме
06:04
zi_rus, оцени конфиг. как его правильно прикрутить? :)
06:05
у меня dhcpd на центоси ен поднимается
06:05
да там 3 строчки.. просто надо писать полиси с суб-полиси? или достаточно просто повесить первый полиси?
06:05
zi_rus: и симптомы?
06:05
zi_rus, смени центось на убунту сервер. у меня там все поднималось ;)
06:05
dhcpd[1056]: Can't bind to dhcp address: Cannot assign requested address
06:05
systemd[1]: dhcpd.service: main process exited, code=exited, status=1/FAILURE
06:06
я уже селинукс отключил
06:06
не помогло
06:06
может быть firewall, но там он разрешен
06:06
отключил firewalld. не помогло
06:07
e_zombie: где, кстати, аниме?
06:07
:)
06:07
пятница сегодня
06:09
06:09
правда фотка 2011 года
06:09
я тогда был ещё молод.
06:09
06:09
и велся на такое?
06:09
ну ничего, все в жизни надо попробовать
06:09
поэтому тема сисек раскрывалась некачественно
06:09
блиин! почему полиси на оутпут нельзя прописать одновременно с рейт-лимитом на оутпут :(((
06:10
ну давайте NOC научим по пятницам твоих баб показывать
06:10
чего зря пропадают-то :)
06:14
ну а чего, отрабатывать разные мероприятия нужно
06:14
в том числе и такие
06:14
да и следить за сетями надо да. а то бардакс.
06:15
подозреваю, что бардак - явление местное
06:17
ты прав.
06:18
я вот даже не знаю - увеличиваю я его или нет
06:19
06:29
или я чего то не замечаю или нок стал потреблять меньше ресурсов и не мучать монгу запросами.
06:45
e_zombie: это тебе володин за баб скидку адл
06:45
*дал
06:45
палюбому
06:45
а может просто поток сислога мелкий и базу не штырит
06:46
или опять что то не замечается.
06:47
06:47
(09:10:56) e_zombie: правда фотка 2011 года
06:47
(09:11:04) e_zombie: я тогда был ещё молод.
06:47
e_zombie: это точно ты на фотке?
06:48
я? не. у меня таких сисек нету
06:49
но это был интересный сет. я её уболтал раздеться полностью за полторы минуты.
06:51
она опоздала почти на час. и я тупо показал на солнце которое уже почти садилось за горизонт и сказал что как оно скроется - будет гавно :)
06:51
судя по всему, еще и туман был
06:51
не. это такая обработка и настройки кривые.
06:52
Кто-то ещё омжет подсказать, почему пишется unknown source, есть в MO ip прописан?
06:52
а из raw вытянуть цвета нельзя?
06:52
равка там ваще ..... никакая .
06:52
buggy-funhouse: пропиши IP в trap source
06:52
там диафрагма 3.2 и при этом выдержка 1\640 и исо 400
06:53
говорю что тогда я был ещё молод.
06:53
Dmitry1: дело в том, что он там прописан. И даже совпадает с тем, который отображается в Data event'а
06:53
то-то я вижу шума много. а искал прогу для этого фотика, для удаления шума?
06:53
это д3000 - там всё бесполезно. да и не надо
06:54
buggy-funhouse: посмотри настройки железки, с какого ip она отправляет логи и трапы
06:54
блин! почему такая хренть вылазит? Cannot attach queuing-based child policy to a non-queuing based class
06:54
Dmitry1: я в дампе вижу, что с этого. У неё других нет.
06:57
buggy-funhouse: оно IP пишет в лог, или куда там нужно?
06:58
прости, оно это кто?
06:58
нк то, что пишет "unknown source"
06:59
[<TrapCollector(0x29114d0, )>] Invalid event sources in last 60 seconds: 172.24.4.2 Это в активаторе.
06:59
Event has been received from unknown source 172.24.4.2 by collector Это в data event
07:00
и в поле SNMP trap source ip прописан 172.24.4.2 соответственно.
07:01
хм, кто-то заходил на канал недавно с подобным страданием
07:01
На железке я пробовал снимать галку is managed, запускать discovery заново, ребутать нок
07:01
evyscr: скорее всего я. Последний гугл по логам был давно
07:01
07:01
Вот тут ещё человек то же самое написал
07:02
не, дня три-четыре назад кто-то новенький
07:02
вроде как
07:09
ТАк, а что у вас прописано в collector.conf?
07:10
и какой коллектор в MO стоит для железки?
07:16
buggy-funhouse, а в логе sae подозрительных сообщений нету?
07:24
сейчас посмотрю.
07:25
zi_rus: покажи свой noc-collector.conf? Он нужен вообще? А то у меня даже лога коллектора нет.
07:25
ок
07:26
в sae у меня куча error=Unknown exception дял устройств, дял которых половина скриптов неверно отрабатывает. Старые циски.
07:27
про узел ничего, кроме того, что он-то обрабатывается нормально
07:38
а кто-нибудь про агрегацию данных в ноке графите может пояснить?
07:38
вот если я говорю что метод average и агрегировать за сутки
07:38
zi_rus: там аналогично RRD
07:38
он возьмет среднее за сутки и скажет что оно вот так?
07:39
а есил я выберу максимум, то будет выбирать максимум в диапазоне?
07:39
да
07:39
на самом деле агрегацию делает storage
07:42
dvolodin, смотри что я хочу сказать, вот есть данные загрузки интерфейса, трафик днем растет, ночью падает, и мне надо максимальное значение чтобы видеть как трафик за год растет. а теперь если у меня возникает какой-то пик ненормальный, я хочу его исключит
07:42
ь, как это говорят 95 перцентиль. такое возможно?
07:43
потому что в кактусе такого нет
07:43
только он делается, в основном, за биллинговый период
07:43
либо среднее либо максимум
07:43
слушай, ну что мешает
07:43
у тебя есть список значений
07:43
отсортировать их и взять значение c 95% длины - какие проблемы-то?
07:43
эмм
07:44
ну у меня есть нок
07:44
и в его настройках ничего похожего нет
07:45
и соответственно для графиков тоже пока ничего нет чтобы их как-то строить
07:53
zi_rus: технически в whisper делается в 3 строчки
07:53
посмотри у себя в whisper.py
07:53
def aggregate(aggregationMethod, knownValues):
07:53
if aggregationMethod == 'average':
07:53
return float(sum(knownValues)) / float(len(knownValues))
07:53
elif aggregationMethod == 'sum':
07:53
return float(sum(knownValues))
07:53
elif aggregationMethod == 'last':
07:53
return knownValues[len(knownValues)-1]
07:53
elif aggregationMethod == 'max':
07:53
return max(knownValues)
07:53
elif aggregationMethod == 'min':
07:53
return min(knownValues)
07:53
else:
07:53
raise InvalidAggregationMethod("Unrecognized aggregation method %s" %
07:53
aggregationMethod)
07:53
костыльчики, вот же они :)
07:55
если ты не захочешь в нок это встроить, то да, придется самому дописать
07:56
ну не костыльчики, а придется там добавить строчку
07:57
все чего нет в ноке и приходится дописывать в код - это костыли
07:57
то есть нок не может, а надо
07:58
хотя надо ли это только мне
08:00
погоди
08:00
NOC использует внешние storage
08:01
для патчей на внешние библиотеки у нас есть каталог patches
08:01
сейчас я патчу mongoengine и django
08:02
"zi_rus: все чего нет в ноке и приходится дописывать в код - это костыли"
08:02
некстати говоря, можно добавить в бэкап то, что выдает "hg diff"?
08:05
а вот ветку develop влил в future/graphite, значит ли это что дальнейшие коммиты будут только в future/graphite?
08:10
Kostua: нет
08:11
это значит, что в feature/graphite появятся последние изменения из develop
08:11
там пофиксили отдачу ifindex на кисках, оно критично
08:14
dvolodin: понял, спасибо
08:14
zi_rus: в whisper добавить - не вижу проблем
08:14
в mongoengine я вчера закинул pull request
08:15
dvolodin: "$i18n": {} - ужасно.
08:15
говорю сточки зрения человека, занимающегося l10n
08:17
evyscr: предложения?
08:17
проблема в целом понятна?
08:18
в */collections/* лежат JSON, которые апгрейдом заливаются в базу
08:18
там модели инвентори, классы и правила FM и куча всего еще
08:19
gettext не просто так придумали и используют. минимизация точек редактирования и отделение трансляций от кода.
08:20
кто-то поможет с trap source unknown или нет?
08:20
я к тому, что эти два принципа очень важны
08:21
buggy-funhouse: коллектор не проставил дуриком?
08:21
и активатор правильный?
08:22
активатор единственный и верный. Коллектор куда можно неверно поставить?
08:24
если ты его прописал, то выгрузка по-другому делается
08:24
evyscr: а вот покажи мне, где и как используют gettext в JSON
08:24
при условии что это просто справочные данные
08:24
и при условии, что они поступают в разное время из разных источников
08:25
а также скажи, .po файл будет один на весь NOC, один на модуль или один на коллекцию
08:25
прошу заметить, я ещё не призывал перейти на gettext
08:26
два принципа я указал
08:26
find fm/collections/eventclassificationrules/ -type f -name \*.json | wc -l
08:26
935
08:26
допустим, что я знаю про gettext
08:26
dvolodin: прописывать коллектор не нужно? Коллектор заводить не нужно? Настройки noc-collector.conf не нужны?
08:26
buggy-funhouse: тебе - нет
08:26
Отлично. Он у меня и не прописан.
08:27
расскажи, как можно применить gettext в этих условиях и какой профит оно может дать?
08:27
упртст
08:27
я не призываю использовать gettext
08:28
чем тебе не нравится подход с $18n ?
08:28
при условии что точка редактирования строго одна -- это объект, который будет заливаться в базу
08:28
пять языков; как увидеть, где что передено?
08:29
а кода в JSON можно считать что и нет
08:29
item, локализатор не поставил запятую
08:29
что делать?
08:29
да легко
08:29
делаю отчет, который выводит все объекты в коллекии и локализованные строки
08:29
прямо параллельными колонками
08:30
если сильно хочется -- то прямо в морде NOC
08:30
английский текст изменился. как об этом узнает локализатор?
08:30
не
08:31
разве json не может поменяться без изменения сообщения?
08:31
давай конкретнее
08:31
посмотри fm/collections/alarmclasses
08:32
хочу subject/body и прочее там - на разных языках
08:32
теперь смотри общий паттерн
08:33
у zi_rus опять заглючила киска и начала слать чудные выражения
08:33
он сделал alarm class -- Vendor | Cisco | Total Fuckup
08:33
и какими-то окольными путями через три года он попал в репо
08:34
там обычно, если и меняется, то только текст
08:35
твою проблему номер раз - как узнать, что еще не перевели, можно пролечить сверочным отчетом
08:35
ok
08:35
это не слишком принципиально
08:35
проблему номер два -- как узнать, что изменились только описания -- теоретически поднимать старую и новую версию json и проверять, не менялся ли в ней английский перевод
08:35
наверное, реализуемо
08:36
ммм
08:36
вероятно, реализуемо
08:36
dvolodin, ты про фм удачно вспомнил, смотри приходит сообщение что упал isis на bundle-ether интерфейсе, но падения самого бандла нет, есть только падение всех интерфейсов в этом бандле. как можно спрятать в таком случае падение isis под падение линка
08:36
но надо чтобы fuzzy был
08:36
погоди, не перебивай
08:36
зачем тебе fuzzy?
08:37
fuzzy не даёт использовать неверный перевод
08:37
например, приходит письмо -- появился новый JSON с i18n
08:37
или -- поменяли английский перевод
08:37
evyscr: как?
08:38
при установке флага fuzzy используется не перевод, а оригинальный текст
08:38
про перевод серверной части и JS-приложений я пока еще не говорю
08:38
evyscr: не понял, как это выглядит
08:38
в gettext-то?
08:39
ох, нет у меня под руками родной .po'шки...
08:40
08:42
то есть типа пометка -- что тут у вас лажа какая-то в переводе?
08:43
ага
08:44
и пометка эта выставляется автоматически
08:44
по каким критериям?
08:45
дык, альтерашн оф ориджинал текст
08:46
о котором мы и говорим
08:46
то есть, изменился en - выставился fuzzy.
08:46
то есть при изменении английского перевода на все остальные должен выставиться fuzzy?
08:47
английский в большинстве случаев - не перевод, а оригинальный текст
08:48
i use google translate to translate, but
08:48
ну хорошо, допустим технически, что если в начале строки перевода идет [FUZZY], то в базу мы это не грузим, а в JSON храним
08:48
from russian to english is an bad translate
08:48
то есть алгоритм такое
08:49
если изменилось значение для английского текста и поменялись не какие-нибудь знаки препинания -- все остальные переводы помечаем как fuzzy
08:49
примерно так
08:51
следующая проблема - локализатору не надо видеть ничего, кроме переводимого текста и сопровождаюих его пометок.
08:51
он не знает, что такое json
08:53
08:53
evyscr: с этим локализаторы пойдут в пень
08:53
если локализатор переводит описание сетевых проблем или специфичного оборудования, то считаем, что он не полный балбес
08:53
мы же не торрент-клиент переводим
08:54
а вот хрен
08:54
он может знать сетевые проблемы и не знать json
08:54
ну не смеши, а
08:54
;)
08:54
у меня под боком такие, лол
08:54
welcome to reality
08:54
допустим, что у него будет морда для трансляций, прямо в NOC
08:55
dvolodin: Дим, вопрос по FM. Ты думал над тем, чтобы disposition для ивентклассов вынести в отдельную базу, и оформить что-то типа ивенттриггеров
08:56
Реальная ситуация. В удаленном офисе стоит железка, которую включают утром, и выключают вечером и на выходных.
08:56
В случае с ивенттриггером я смогу поднимать аларм по проблемах с ней в рабочее время, и не поднимать в нерабочее
08:56
evyscr: посмотрел описание fuzzy в моем ваианте?
08:56
Dmitry1: это не в disposition
08:56
тут зонтики нужны
08:57
и даже не совсем зонтики, а указание рабочего времени для железки
08:57
Указание рабочего времени как раз реализовано в ивентриггерах
08:57
за пределами рабочего времени - не пингуем ее
08:57
И селекторы там реализованы
08:58
к которым я могу привязать эту железку
08:58
Dmitry1: давай вынесем его просто на уровень managed object и managed object profile
08:58
ну и всякие ППР туда можно будет указывать
08:59
так оно правильнее будет
08:59
Дим, 100% твоих сценариев (handlers, jobs и т.п.) можно вынести в триггеры. Почему ты не хочешь?
09:00
триггеры -- тупой частный случай
09:00
У них есть достоинство - ими можно управлять
09:00
настройками железок тоже можно управлять
09:01
джобами и хандлерами - нельзя. Это нивелирует все их преимущества.
09:01
сделай нормально работающие триггеры
09:02
что то у меня после апдейта стало 2014-09-19 13:05:12,562 script(Huawei.VRP.get_version,10.64.181.173,**{}) failed: Cancelled
09:02
2014-09-19 13:05:12,564 Late answer for map task 42145190 is ignored
09:02
таких записей много
09:03
понятно что оно протормозило но странно это
09:03
вот я, к примеру, хочу, чтобы на одной железке у меня поднимался аларм BGP Peer down, а на другой - не поднимался
09:03
Как мне это реализовать ?
09:04
А вот zi_rus хочет, чтобы алармы у него были с другим severety. Как без аларм триггера "изменить severety" это реализовать?
09:05
dvolodin: Дим. В базовой поставке NOC должно быть 10500 таких триггеров. А управлять ими - это уже личное дело конечного пользователя.
09:05
handler'ы умеют менять severity
09:06
т.е. ты предлагаешь конечному пользователю изучать python ?
09:06
А конечные пользователи windows должны изучать Microsoft Visual Studio ?
09:09
Дим, в профилях объектов есть поле Down Severity
09:09
Dmitry1: Я предлагаю реализовывать функционал в виде нормальных настроек
09:09
а не костылей в виде триггеров
09:10
Речь идет о том, что конкретному объекту (селектору) для конкретного алармкласса нужно вставить другой severity
09:11
вот если эта проблема действительно массовая -- нужно сделать нормальную настройку для управления severity
09:11
Другому конкретному объекту (селектору) для конкретного ивенткласса запретить поднимать аларм
09:11
Или поднимать аларм только в рабочее время
09:12
Или менять severity только врабочее время
09:12
В триггерах уже есть привязка к селекторам и таймсериям, а так же возможность их вообще отклуючать
09:13
Сама идея триггеров очень хорошая. Если она сейчас реализована криво, так и скажи.
09:13
думай над тем, как могут выглядеть настройки
09:13
идея триггеров как раз -- запускать pyrule
09:14
"мерзкий питоновский код"
09:14
ага
09:15
т.е. код джоба они тоже запустить могут
09:15
как и код хандлера
09:15
как и код солюшена
09:16
Вся проблема, в том, что они его не кошерно запускают?
09:16
Так всего-навсего нужно переделать механизм запуска
09:16
Например, добавить возможность передавать переменные в питоновский код
09:17
или вместо питоновского кода запускать небольшой сценарий
09:18
типа "если переменная X, попавшая в триггер, равна Y, то поднять аларм Z, передав ему переменную X"
09:19
Я говорю какие-то нереальные вещи?
09:20
Почему то это уже реализовано в той же The Dude
09:21
09:21
09:21
09:22
могу еще ссылок на картинки накидать
09:22
а винтернете полно этих проб, потому как там обычный текстовый файлик (в нашем случае будет JSON)
09:23
Dmitry1: есть у тебя минутка посмотреть
NOC-1444,
NOC-1442? там решения некоторых неглобальных проблем
09:24
дим, ты вообще threshold'ы PM показываешь
09:24
это просто примеры сценариев
09:24
когда аларм поднимается в зависимости от каких-то условий
09:24
и даже хуже -- вместо того, чтобы дать пробы, которые работают из коробки, юзера заставляют ползать по кишкам SNMP
09:25
это не сценарии для алармов
09:25
Они и будут работать из коробки
09:25
а генерация алармов для активных опросов
09:25
ну нифига себе
09:25
вот тебе разница в подходе
09:25
Просто кто мешает вынести управление ими в триггеры, и оформить их ка триггеры
09:25
в NOC ты говоришь -- хочу мониторить загрузку транковых портов
09:25
и все
09:26
в dude значит -- для этой железки дерни такой-то oid, если будет бобо -- громко кричи
09:26
а вот эта железка неправильная, она не отдает загрузку по snmp -- тут мы обламываемся и ничего не кричим
09:26
поставь себе dude
09:26
там куча предустановленных проб
09:27
в нашей терминологии, "ивентклассов FM"
09:27
а так же реакций на их срабатывание
09:28
ты саму идею то пнял?
09:28
бестолковая она абсолютно
09:28
Приходит ивенткласс. мы смотрим какую то переменную. В зависимости от ее значения, что-то делаем
09:28
вот тебе пример -- хочу мониторить температуру блоков питания
09:29
Dmitry1: (скажи "да, гляну")
09:29
допустимые интервалы зависят, вообще - то, от платформы
09:29
в NOC ты говоришь -- хочу мониторить блоки питания всех шеститонников
09:30
при условии, что они воткнуты в железо, а не валяются на складе
09:30
и все
09:30
твои действия в Dude?
09:30
09:31
и пойми, в чем разница
09:31
dvolodin: делаем триггер. НЕ PYRULE. привязываем его к селектору "шеститонник" и ивентклассу "temperature out of threshold" . смотрим значение переменной "temperature". В зависимости от значения температуры, поднимаем аларм
09:32
dvolodin: у меня куча (сотни и тысячи) свичей на чердаках, которые летом начинают слать алармы, что им жарко.
09:33
чем мне поможет graphite ?
09:34
а чем тебе поможет dude?
09:34
В dude пример того, как обрабатывать входящий ивент
09:35
получены данные - сравниваются с чем-то - в зависимости от сравнения что-то делается
09:35
У моего знакомого dude запускает скрипты на "sh"
09:36
Второй тебе пример. У меня есть циска, которую я не могу выключитт/вытянуть из стойки
09:36
У нее сдох вентилятор, и она постоянно шлет об этом сообщения
09:36
Но температура в пределах нормы
09:37
ну так что тебя беспокоит?
09:37
Как мне конкретно у жтой циски подавить сообщения об отказе этого конкретного вентилятора ?
09:37
сделать функцию acknowledge для аларма
09:37
не надо его давить
09:37
пусть поднимет проблему
09:37
а ты ей тупо приоритет в 0 урони
09:37
типа знаю, отстань
09:38
и все
09:38
dvolodin, а как это сделать без консоли?
09:38
Блин! это вентилятор раз в пол-часа то запустится, то поднимется
09:38
есть у меня один остановившийся вентилятор
09:38
И она постоянно срет сообщениями
09:38
сообщениям срет, а аларм висит один
09:38
Мой выход в этой ситуации простой - снять галочку "is managed"
09:39
Dmitry1, почини вентиляторо
09:39
dvolodin: он иногда запускается, и аларм пропадает
09:39
zi_rus: не могу починить. надо разобрать пол-стойки, чтобы добраться до него
09:39
в этом виноват нок?
09:39
Дим
09:40
NOC нужен для того, чтобы дрючить распиздяев
09:40
которые знают про проблему, но ничего не делают
09:40
Мне надо подавить конкретное сообщение про "FAN1" для конкретного MO/селнктора
09:40
поставь нулевой приоретет на этот alarm
09:40
и все
09:41
а если остановится "FAN2" ?
09:41
берешь гоблина и пылесос
09:41
и отправляешь на площадку
09:42
evyscr: скажи еще раз функцию, плс
09:42
NOC подразумевает наличие хоть какого-то порядка и хоть какой-то дисциплины в эксплуатации
09:42
или насаждает ее силой :)
09:42
если NOC ебет тебя за этот вентилятор - дрючь того, кто за него отвечает
09:43
вплоть до замены чувака на более вменяемого
09:43
dvolodin: Дим, я уже выше написал, как в идеале оно должно работать. Как ты назовешь этот механизм (pyrule, trigger, handler, job, solution) мне все равно
09:43
Дим, идеал у всех разный
09:43
пиши как могут выглядеть настройки и изменения в алгоритмах
09:43
Но должна быть возможность обрабатывать вывод ивентов и в зависимости от него, что-то делать
09:44
dvolodin, с хендлерами гибкости не хватает, многое приходится зашивать, то что надо изменить, в интерфейсе не поправить
09:44
Dmitry1: он называется handlers
09:44
zi_rus: handler не обязан быть совсем жестким
09:44
он и настройки смотреть может
09:44
dvolodin, хотябы по селекторами правила раскидать
09:44
чем handlers принципиально отличается от триггера?
09:44
опять же -- если ты придумаешь нормальные настройки
09:44
то handler может по ним работать
09:44
ну так вот придумайте их
09:45
чем handlers ПРИНЦИПИАЛЬНО отличается от триггера?
09:45
dvolodin, у триггеров вполне вменяемое меню, предлагаю повторить
09:45
ага
09:45
настройки триггеров повторить для хандлеров
09:45
если нужна какая-то карта изменения приорететов аварии -- надо думать, как она может выглядеть
09:45
настройки триггеров повторить для джобов
09:46
у меня, например, вообще другой взгляд
09:46
настройки триггеров повторить для солюшенов
09:46
alarm'ы NOC -- это некий промежуточный уровень
09:46
а вот за ним должны быть уже какие-то эксплуатационные проблемы
09:46
и TT на разрешение
09:47
давайте конкретнее все-таки
09:47
dvolodin: для этого у нас есть алармтриггеры :)
09:47
Dmitry1: ответ не правильный
09:47
смотри
09:47
у экслуатации обычно всего с десяток сценариев
09:48
Конкретизирую: сделать унифицированный API для вызова хандлеров, pyrule, джобов и солюшенов
09:48
заменить железку, перетянуть кабель, чмокнуть клиента в нос, позвонить на площащку
09:48
и так далее
09:48
Дим
09:48
вот пример тебе
09:49
09:49
Чтобы туда можно было передавать переменные в виде "int i = 1"
09:49
тупо есть известная проблема -- вот описание для решения
09:49
я ее описал, показал
09:49
evyscr откритиковал, но из критики выросло разумное звено
09:49
придумали решение и записали его
09:49
dvolodin: про API ты не против?
09:50
если его помусолить немного, то получится задание для реализации
09:50
Дим: Cделать унифицированный API для вызова хандлеров, pyrule, джобов и солюшенов
09:50
Чтобы туда можно было передавать переменные в виде "int i = 1"
09:50
09:51
и у меня таких три десятка
09:51
вот тебе третий
09:51
09:52
пиши что за API, как оно бъется с тем, что сейчас есть
09:52
с перспективой развернуть до конкретных таблиц, где оно все лежать будет
09:52
evyscr: не, не помогло
09:52
я эе говорю. придумать новое.
09:52
Дим, ответ неправильный
09:52
придумывай
09:52
предлагай
09:52
для текущей работы, чтобы ничего не ломать, сделать врапперы
09:53
сядь и распиши
09:53
хочешь, evernote какой-нибудь поставь для заметок
09:53
на самом деле я вчера сунулся к нам в JIRA
09:53
Дим -- напиши себе
09:53
распиши
09:53
прочитай сам
09:53
подумай
09:53
и показывай
09:53
первая переменная -MO
09:54
вторая - строка
09:54
на самом деле у меня предложение такое
09:54
поправить текущую схему проходдения issue в jira
09:54
добавить там отдельный этап -- Discussion
09:55
изначально нечетко сформулированные идеи по развитию функционала оформлять как issue с типом Epic
09:55
мы их будем выводить на этап обсуждения
09:55
под них в Confluence будем делать отдельные страницы
09:55
где сначала делаются общие наброски
09:55
там же ведется обсуждение
09:56
и тут же по месту вносятся корректировки
09:56
в итоге рождается понимание, как оно должно выглядеть и что нужно сделать
09:56
и прямо из confluence делаем subtasks на реализацию
09:56
их там же в странице видно будет
09:57
А вот после того, как все станет понятно - отдадим issue на реализацию
09:57
dvolodin: а в jira можно сделать метабаг?
09:57
evyscr: там есть такой тип -- epic
09:57
он же custom story
09:57
это как раз то, что дима сейчас пытается протолкнуть
09:57
мне вот, например, хочется lldp собрать в одну кучу
09:58
теги не всегда удобны
09:58
в метабаг именно добавляешь нужное
09:58
теги все-таки ближе
09:59
есть компоненты
09:59
но я хочу их сильно урезать
09:59
реально до уровня -- CORE, UI, SA SCRIPT, INV MODEL, FM RULE
09:59
так их проще по исполнителям будет разделять
10:00
в принципе в jira есть линки между issue
10:00
может быть, то, что ты хочешь, проще сделать через confluence?
10:04
для метабагов тоже есть epic link, да
10:06
но все-таки лучше тегами
10:06
чтобы можно было все issue для скрипта увидеть, скажем
10:07
тег задаётся на уровне низлежащего бага его создателем, в результате может добавиться совсем не нужный баг
10:07
тоже дело
10:07
классификаторы можно сделать в виде custom fields
10:08
ещё вопрос - слияние багов
10:09
оно иногда очень напрашивается
10:09
в jira что-то такое есть?
10:16
dvolodin, давай рендер графиков и потом продолжим про фм
10:16
у тебя уже сбор данных пошел?
10:16
да
10:16
вроде работает
10:17
рсскажите, есть где-то про фм, начиная с того, что должно быть включено на коммутаторе?
10:17
1821M
10:17
насобирал
10:17
Доброго дня всем! Просьба дать материал для документирования.
10:19
techwriter, а что? уже все описано? а где эта радость сейчас лежит? а то я открыл noc docs, а там только пустые странички
10:22
dvolodin, от тебя еще понядобится инструкция как добавить новые метрики. а то пока со встроенными играемся
10:26
dvolodin, а еще у меня проба 2% cpu съедает, больше чем все остальные демоны вместе, надо бы пофиксить чтобы лаунчер таки запускал несколько инстансов
10:36
Описаны модули Service Activation, DNS, VLAN, Performance Management
10:37
коллеги, раскажите кто-нибудь Свете про формочки в main
10:50
В правом верхнем углу есть имя пользователя. В его меню есть user profile, в нём - notification contacts.
10:50
Это важно! (q)
10:51
Иначе потом фиг догадаешься, почему не работают нотификейшны на пользователя
10:53
которые используют информацию из Main > Setup > Notification Groups
10:53
dvolodin: В Jira можно создавать task report. Если не трудно, создай space по задачам и перенеси свои задачи туда
10:54
Dmitry1: да, я хочу сделать space -- discussions
10:54
с задачами и TODO
11:13
11:18
dvolodin: lдобавил комментарии
11:25
о
11:25
там появился крайне полезный шаблон страницы -- Product Requirements
11:27
вот, как раз то, что я хотел
11:27
Page Properties и фильтры
11:42
Просьба рассказать про модуль Main
19:00
и еще странность такую встретил
19:00
перезапустил нок
19:00
он откопал какие-то старые алармы
19:01
вернее старые ивенты и поднял два ларма, и тут же один закрыл
19:01
а у незакрытого таймстамп указывал на duration 21 час
20:53
по симптомам дело не в нотификации
20:53
скорее это классификатор
20:54
когда ивенты пришли, он их почему-то пропустил и они висели в базе
20:54
при перезапуске с ним что-то случилось и он наконец смог ивенты классифицировать
20:58
потому что до перезапуска алармов не было, а потом они появились. нотификатор работает четко. дело в классификаторе или где-то рядом
Share this page
Share this page: