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: 17.12.2012
freeseacher #
09:43
я сам могу его запустить
zi_rus #
09:43
freeseacher, кто же хнал
09:43
*знал
freeseacher #
09:44
ну вот :)
dvolodin #
09:44
бедняга печалится и задумывается
zi_rus #
09:44
dvolodin, но мы не об этом, тут с ФМ вопрос обратно поднялся
freeseacher #
09:44
dvolodin, надо бы его на daemon tools посадить
zi_rus #
09:44
<zi_rus> Dmitry1, есть такое мнение, поднимать инфо аларм, все равно его, в той куче мусора, что попадает в инфо, никто не увидит, а если число повторных сообщений превышает лимит, то поднимать и уровень аларма
09:44
<Dmitry1> Так нету у нас такого механизма. Хотя разговор об этом был.
09:44
<Dmitry1> Я обеими руками за, чтобы поднимать аларм при достижении каких-то условий.
09:44
<Dmitry1> По идее это должно решаться через eventtrigger, но сейчас этот механизм ничего делать не умеет.
dvolodin #
09:45
freeseacher: не поможет, процесс не умирает
09:45
давайте поподробнее, что вы поднимать собрались?
mikevlz|2 #
09:46
хотят промежуток между ивентом и алармом
dvolodin #
09:46
есть такое
09:46
только промежутка мало
mikevlz|2 #
09:46
например, 1 инфо-ивент в месяц, что где-то что-то плохо - сбой, когда он раз в час - это реально плохо
dvolodin #
09:46
надо чтобы либо соблюдалась последовательность event'ов
09:47
или через какое-то время не пришло нужного event'а
mikevlz|2 #
09:47
не, промежуточную сущность хотят. Иерархия по возрастанию : свалка инфосообщений - важные сообщения, за которыми надо последить - алармы, когда случилась жопа
zi_rus #
09:48
как например NOC-863
dvolodin #
09:48
event это event, он есть и случился
09:48
а вот требует он внимания или нет -- это отдельный вопрос
zi_rus #
09:48
dvolodin, ты знаешь сколько всякого говна сейчас попадает под инфо
mikevlz|2 #
09:48
ну хотят просто event и важный event
dvolodin #
09:48
event не может быть важный и неважный
zi_rus #
09:49
alarms: 947 - из ни 2 требуют внимания
dvolodin #
09:49
важный event это тот, который учавствует в alarm'е
zi_rus #
09:49
алармы уровня инфо уже стали второй свалкой
dvolodin #
09:49
zi_rus: какого именно?
09:49
вот этого быть не должно
zi_rus #
09:49
например
09:49
Invalid MAC 00:00:00:00:00:00 detected
09:50
Invalid MAC 01:00:5A:52:4C:4D
09:50
куча макфлапов, но это надо просто доработать, чтобы польза была
09:51
PIM DR change - я уговорил чтобы понизили до ИНФО, но и там они лично мне не нужны, может я не прав и для кого-то это существенное событие?
dvolodin #
09:52
тогда может быть нужны отдельные настройки для приоритетов
09:52
например, если тебе неинтересен клас invalid mac -- задавить его целиком?
zi_rus #
09:53
да, я про это и говорил, давно, а ты сказал что не надо
dvolodin #
09:54
ну так какие предложения по реализации?
zi_rus #
09:54
настраиваемые из интерфейсы уровни алармов
dvolodin #
09:54
в принципе что надо -- некий механизм который позволит настраивать приоритеты под себя и поднимать и опускать приоритеты по каким-либо правилам
09:55
ты давай конкретнее
09:55
:)
zi_rus #
09:55
dvolodin, alarm classes еще не переписали на новый UI, можно туда засунуть
dvolodin #
09:57
там не только подстройка приоритета нужна
09:57
но и возможность добавлять правила
mikevlz|2 #
09:57
угу
09:58
еще бы классификатор, хотя бы по таймеру, перечитывал правила
dvolodin #
09:58
он по hup перечитывает
mikevlz|2 #
09:58
а то наклепаешь правил, лезешь в консоль прибивать классификатор
09:59
лучше, чтоб оно делало это без вмешательства с настраиваемым интервалом/по кнопке
dvolodin #
09:59
его за stopm завязать надо
mikevlz|2 #
09:59
бантиком
zi_rus #
09:59
за стомп это правильно
10:00
а лучше и остальные модули тоже
dvolodin #
10:00
ну для демонов должны быть контрольные очереди
zi_rus #
10:00
а то аларм триггер сделал и ждешь пока он применится
dvolodin #
10:00
которые принимают команды вроде shutdown, restart, get_info
10:03
грубо говоря -- после запуска демон должен подписываться на парочку топиков в STOMP
10:03
первый -- управление всеми демонами этого типа
10:03
второй -- управление конкретным instance
10:19
собственно туда же должна уползти и проверка heartbeat'ов launcher'ом
Dmitry1 #
10:24
dvolodin: Я предлагаю понаделать кучу pyrules для event triggers.
10:25
Но! В этих pyrules иметь возможность задавать через WEB какие-то переменные, и брать переменные из ивентов
10:26
К примеру, pyRules на LinkDown будет брать из ивента номер порта, а из базы - флажок - реагировать на это событие, или нет
mikevlz|2 #
10:27
кто Custom fields пользуется. Флажки searchable/filtered/hidden только для веб-морды?
Dmitry1 #
10:27
Опять же, наш любимый ивент BGP,OSPF,RIP, EIBGP и т.п. down
10:28
В PyRules нужно возможность задать IP адреса пиров, при событии на которых игнорировать ивенты
mikevlz|2 #
10:30
это Rocket Science
10:30
=)
Dmitry1 #
10:30
Куча таких event triggers должны идти в базовой поставке NOC, а пользователь иметь возможность задействовать нужные ему
10:35
Например. У нас событие "Link Down"
10:36
В event trigger мы запускаем command snippet со следующими скриптами:
10:36
get_copper_tdr_diag или get_dom_status
10:37
И в аларме Link Down мы можем отобразить дополнительную информацию
10:39
На ивент "STP Loop Detected" и подобные выполнить команду get_stanning_tree
zi_rus #
10:45
какой смысл
10:45
и есть джобы
dvolodin #
10:49
есть job'ы, действительно
11:00
галочку синхронизации с ipam кто-нибудь проверял?
mikevlz|2 #
11:02
я хз сколько уже не обновлялся
zi_rus #
11:06
я не проверял ибо мне кажется что текущая реализация не решает никакой задачи
mikevlz|2 #
11:16
а для 3100 чо, не должна отрабатывать нормализация Interface_name?
11:20
а...
11:20
все норм :)
11:20
наверное...
11:31
вот, матерное слово, до чего удобно отлаживать pyRule/IReduceTask, это же просто праздник какой-то
dvolodin #
11:36
mikevlz|2: а что с ними не так?
11:36
PyRule.call(....)
mikevlz|2 #
11:36
а на вход ему чо дать?
11:37
не, просто я отлаживать пытаюсь через Run Task, оно выдает дофига информативные сообщения об ошибках...
11:38
сказало index out of range, а где - хрен знает =)
11:39
да, с 3100 интерфейсы не снимаются принципиально?
11:40
или это мне обновиться надо?
Dmitry1 #
11:40
mikevlz|2: Не снимаются. У меня единственно доступный 3100 после обновления прошивки перестал быть доступным по ssh
mikevlz|2 #
11:41
а телнет тебя пугает своей открытойстью и простотой?
dvolodin #
11:41
а там в ssh дело?
mikevlz|2 #
11:48
там дело в ssh со стороны длинка, видимо. Я вот телднетом их пинаю, все норм вроде
11:51
блин, придется для 3100 писать гет_интерфейсис, шоле...
11:51
Reduce для get_lldp_neighbors я индусский накорябал...
11:52
но т.к. оно завязано на inv.Interfaces - половина связок выходит с одной стороны пустая =)
11:52
для 3100 нету интерфейсов в базе :(
dvolodin #
11:54
mikevlz|2: погоди, ты что делаешь?
mikevlz|2 #
11:54
свою построялку топологии с сохранением в БД в виде линков между интерфейсами
11:55
я же в пятницу тут писал, как все плохо :)
dvolodin #
11:55
:)
11:55
а я как раз на бумаге прикидываю, как оно должно выглядеть
mikevlz|2 #
11:56
ну я тут второпроходимец... Первопроходимец на форуме уже выложил скрипты
11:56
и статиквлан.
11:57
сделаю, чтоб нормально находило, примусь за приложение для того самого автопроброса вланов по топологии
11:57
благо всякие networkX бесплатны и просты в эксплуатации
dvolodin #
11:58
собственно что я хочу -- job'ы на разные виды discovery в соответсвии с профилями железок
11:58
по идее -- один из job'ов должен ввскребать chassis id и fqdn железок и хранить в кеше
mikevlz|2 #
11:58
я для этого custom field сегодня все же сделал
dvolodin #
11:58
для lldp -- равномерно размазывает job'ы
11:59
берем железку -- смотрим lldp neighbor'ов
11:59
по кешу смотрим -- кто может быть с другого конца
_4ePTeHok #
11:59
вопрос в том, что оно не всегда корректно отрабатывает вообще.
mikevlz|2 #
11:59
_4ePTeHok: кто?
_4ePTeHok #
11:59
я про построение топологии
dvolodin #
11:59
делаем job'ы и проверям, что говорят с других концов
_4ePTeHok #
12:00
у меня стабильно б ывает в одном вилане висят пару свитчей в воздухе
dvolodin #
12:00
то есть общий подход такой
mikevlz|2 #
12:00
_4ePTeHok: бывает...
_4ePTeHok #
12:00
это по макам
mikevlz|2 #
12:00
у меня больше
12:00
мы про lldp
_4ePTeHok #
12:00
ибо тупое железо другие методы неумеет
dvolodin #
12:00
из железки выскребаем данные, проверяем кандидатов на линки
12:01
для каждого кандидата топаем в другой конец и проверяем гипотезу
12:01
для lldp/cdp/fdp это должно работать достаточно надежно
mikevlz|2 #
12:01
ну я не видел еще, чтоб lldp убежал дальше физического линка. Если конечно не сказать длинку, что он должен прокидывать сообщение дальше
12:01
cdp по влану со свистом пролетает, я ему не верю
dvolodin #
12:01
c stp примерно то же
mikevlz|2 #
12:02
fdp по влану может пробежать
12:02
потому я и собрался верить lldp, остальное проверять с двух концов...
dvolodin #
12:03
да и lldp тоже нужно проверять
12:04
грубо говоря - у discovery есть 2 типа job'ов
mikevlz|2 #
12:04
зависит от настроек. Мы запрещаем проброс lldp-пакетов дальше в другие линки. Через foundry оно не проходит
dvolodin #
12:04
get_*_links и check_*_links
12:06
или даже еще боле изящный вариант можно
12:07
для каждого типа discovery делать кеш -- какие линки нужно проверить
12:07
типа <протокол>, <железка>, <другая железка>, <порт>
12:08
когда запускаешь, скажем get_lldp_links
12:08
он выдирает get_lldp_neighbors
12:08
смотрит, что ему надо было проверить -- если нашел подтверждение, что линк действиетльно есть -- пишет в базу
12:09
если ему ничего не оставили на проверку - пишет сам в кеш, что надо проверить и подстегивает проверки на соседних железках
zi_rus #
12:30
когда?
dvolodin #
12:30
?
mikevlz|2 #
12:35
он спрашивает, когда будет счастье и кнопка "сделать заебись!"
12:36
zi_rus: правильно перевел?
_4ePTeHok #
12:36
гг
zi_rus #
12:36
да
dvolodin #
12:39
:)~
12:39
из вредности не сделаю это сегодня
Dmitry1 #
12:40
Не хватает web-морды на "типа <протокол>, <железка>, <другая железка>, <порт>"
mikevlz|2 #
12:40
счастье или кнопку?
12:40
Dmitry1: она не особо нужна
12:40
да и модели как таковой нету :)
12:41
чтоб вебморду к ней лепить
Dmitry1 #
12:41
Конечный юзер должен иметь посредством web-морды доступ ко всяким внутренним переменным и процессам
dvolodin #
12:41
Dmitry1: морда делается как modelapplication
Dmitry1 #
12:41
Конечный юзер не должен знать python.perl и т.п.
mikevlz|2 #
12:42
только PHP
12:42
только хардкор
Dmitry1 #
12:42
и php ему тоже не нужно
mikevlz|2 #
12:42
ммм... предлагаешь программировать на html?
12:42
=)
Dmitry1 #
12:43
у конечного юзера должна быть "волшебная кнопка" и возможность настроить действия, которые она будет исполнять
12:44
Из маленьких кирпичиков выстроить последовательность действий, которые будут происходить по какому-ниюудь ивенту
mikevlz|2 #
12:44
не должно быть выбора, это вводит пользователя в ступор
dvolodin #
12:44
у конечного юзера должна быть волшебная пачка денег
12:46
она волшебным образом влияет на то, сколько волшебных кнопок ему придется жать
zi_rus #
12:46
ну так вот, она волшебная, ты ее не видишь, а она есть
mikevlz|2 #
12:47
zi_rus: речь не про суслика, речь про деньги
zi_rus #
12:47
простая замена переменных
mikevlz|2 #
12:48
угу, шорты превращаются в элегантные джинсы
dvolodin #
12:48
mikevlz|2: лучше подумай, как нам топологию в морде рисовать
Dmitry1 #
12:50
Смотрите идеологию. У нас есть event trigger
12:50
Событие syslog FM - event
12:50
Событие SNMP FM - event
12:50
Новый объект в SA - event
12:50
Новый объект в IPAM - event
dvolodin #
12:51
ну
Dmitry1 #
12:51
Новый объект в Peers - event
12:52
Соответственно ивенты на изменение/удаление объектов SA,IPAM,Peers
_4ePTeHok #
12:52
аудит трейл впихивается в фм)
mrdk_ #
12:53
Hi everyone! I'm trying to configure NOC to use groups defined in LDAP. Is the configuration key ldap_groups_base the correct one to use?
mikevlz|2 #
12:53
dvolodin: самое простое - import graphvis, отдавайть png/gif/etc динамически. Если хочется, чтоб клиент рендерил - то рисовать в принципе не сложно, но надо будет писать свои layout менеджеры
dvolodin #
12:54
а кликать в это как?
_4ePTeHok #
12:54
dvolodin, Дим, с агрегированными линками и профилями интерфейсов надо порешать. И с удалением интерфейсов которые уже не существуют.
mikevlz|2 #
12:54
значит, чтоб клиент рендерил...
_4ePTeHok #
12:54
эта штука уже полгода болтается нерешенной
12:56
а по топологии - вот бы как yED
Dmitry1 #
12:56
mrdk_: reading http://kb.nocproject.org/display/DOC/noc.conf and search "ldap" may help you
_4ePTeHok #
12:56
=)
mrdk_ #
12:58
Dmitry1: thanks. The key ldap_groups_base is described as "Base DN to search for groups". However this does not seem to work. The list of groups in the GUI under "Home > Main > groups" stays empty.
Dmitry1 #
13:00
No. This groups must be created manually. I think :)
mrdk_ #
13:01
Dmitry1: so there's no way to automatically assign users to groups as defined in LDAP?
Dmitry1 #
13:02
Do you have one or more group in "Home > Main > groups" ?
mrdk_ #
13:03
Dmitry1: yes, I created a group named "test"
Dmitry1 #
13:03
And set up all permission, you can want ?
mrdk_ #
13:05
Dmitry1: Yes, I also did that. However, I need to manually assign the groups to the users. Isn't NOC supposed to load groups using "ldap_groups_base" automatically?
Dmitry1 #
13:06
And simply create group with equal name in LDAP server. I think, this shuld help you.
13:07
s/shuld/should/
13:08
dvolodin: Ответь правильно человеку, а то я ldap вместе с NOC не настраивал
MindGames_ #
13:10
привет. есть тут кто? :)
Dionys #
13:11
Нет никого.
MindGames_ #
13:11
хорошо ;) тогда подскажите, на линуксе можно ли настроить правило исходящих пакетов через один интерфейс, чтобы они натились, но кроме направления на одну сеть.
13:12
просто линукс не сразу в интернет выходит.. а сначала в локалку.. а там дальше уже в сеть
13:12
вот надо, чтобы пользователи за линукс-севрером в локалку имели полноценный доступ без ната (из локалки к пользователям тоже надо доступ сделать). но в интернет тоже ходили
13:13
просто на маршрутизаторе ЛВС я не могу добавить новую подсеть для НАТа..
mrdk_ #
13:13
Dmitry1: that doesn't work, unfortunately. It looks like the "ldap_groups_base" key is never used.
Dionys #
13:13
Какое-то извращение получается.
MindGames_ #
13:14
Dionys, ну да.. есть такое..
13:14
я уже думаю. может просто поднять дополнительный интерфейс, на котором не будет НАТа, и туда кидать пакеты в направлении нужной сети..
13:14
но думал, что может, можно все просто решить одной строчкой в iptables..
Dmitry1 #
13:15
mrdk_: Ask for that dvolodin. He is better, when I am, has knowlege an inside NOC
mrdk_ #
13:15
Dmitry1: ok, thanks :)
Dionys #
13:18
У меня например НАТ дивертами реализован и мне никто не помешает отправлять в НАТ только те пакеты которые мне нужны.
13:19
Прадва у меня фря с ipfw. :)
13:20
Как в iptables честно не помню...
zi_rus #
13:20
там просто
13:20
-d !192.168.0.0/16
13:21
в строке с натом
13:21
кажетсмя
13:25
типм
13:25
*типа
13:25
$ipt -t nat -A POSTROUTING -o $ext_if -d !192.168.0.0/16 -j SNAT --to-source $ext_ip
13:25
если локалка /16
13:25
! - отрицание
13:26
те весь трафиккоторый идет не влокалку, тот натить
13:26
но тут надо проверить, как правильно отрицание ставить, я один раз пробовал, у меня не получилось
dvolodin #
13:27
shell восклицательный знак разворачивает
13:27
\! тогда
zi_rus #
13:28
да, может быть из-за этого
dvolodin #
13:28
у нас вырисовывается новый интерфейс и новые скрипты, похоже
13:28
нужен скрипт, который выдает всевозможные идентификаторы железки
13:28
например -- fqdn, диапазон chassis id
13:29
может что-то еще в протоколах будет использоваться
zi_rus #
13:34
dvolodin, что ты думаешь чтобы в NOC были встроены сразу 3 профиля интерфейсов (default, UNI, NNI) и по определенной логике NOC сам их расставлял, например все погашенные порты в default, все порты за которыми есть линк к другому МО - NNI, все остальные UNI + доп логика при из
13:34
менениях на портах из одного типа в другой
13:34
что скажешь?
13:37
логика UNI простая, если порт в апе и за ним не видно другой железки, значит это клиентский порт
dvolodin #
13:41
для этого надо найти линки
zi_rus #
13:42
не спорю
13:42
и соотвественно настроенные профили
13:42
для NNI маки не собираются
13:43
для UNI алармы не поднимаются
mrdk_ #
13:44
dvolodin: quick question: what's the use of the configuration key "ldap_groups_base"? Will NOC create groups based on this key's base DN?
zi_rus #
13:44
а еще для этого нужно разделить Admin и Oper ыефегы
13:44
*status
dvolodin #
13:48
http://dpaste.org/EvJRG/
13:49
http://dpaste.org/E4Rm6/
13:49
собственно переделываем get_chassis_id
13:49
чтобы прихватить диапазоны маков
13:50
и делаем общий композитный интерфейс, чтобы за один раз выдрать hostname и chassis id
13:50
делаем job и кладем все это дело в кеш
_4ePTeHok #
13:54
mrdk_, no. On this moment ldap_groups_base didn't used in ldap auth backend
13:54
по крайней мере в коде нигде не вижу чтобы оно парсилось.
mrdk_ #
13:57
_4ePTeHok: ok. But how can I assign a group to a user? When I try to assign a group to a user, I need to enter the user's password (the user was created automatically via LDAP).
_4ePTeHok #
13:57
dvolodin, подскажи товарищу как быть с группами)
dvolodin #
13:57
это завтра все
_4ePTeHok #
13:59
mrdk_, dvolodin only may answer you, but sorry, only tomorrow.
mrdk_ #
13:59
_4ePTeHok: ok, thank you
safewithyou247 #
17:25
Hey guys. I am trying to do an install of NOC on ArchLinux and I am running into an issue. I was wondering if someone could help. I make it to the step where you run ./scripts/post-update but I get the follwoing error message.
17:26
post-update: 28: Inconsistent .pyc files found
17:27
"/usr/bin/env: python: No such file or directory"
17:39
when I sure pdb against the post-update script I get an exception with the deffinition for dirname $0
17:39
anyone have any ideas on this?
Tweet
Share this page
Share this page: Tweet