nocproject.org
01:04
а понял. он не добавляет, если один мак в разных вланах. и что делать?
01:46
всем привет
02:54
2014-08-21 06:57:05,744 main.backup: Checking paths
02:54
2014-08-21 06:57:05,745 main.backup: /usr/local/bin/pg_dump is not found
02:54
вот это что за штука? пытаюсь нок-бэкапирование прикрутить
02:57
точнее где она лежит, если не по этому пути
03:01
(нашел)
03:06
о, у меня работает бэкап
03:09
переполз на дефолтный конфиг, со своими (параметрами), а то уж очень мой конфиг отличался
03:11
вот это используется при бэкапировании?
03:11
#
03:11
# Backup parameters
03:11
#
03:11
[backup]
03:11
keep_days = 14
03:11
keep_weeks = 12
03:11
keep_day_of_week = 6
03:11
keep_months = 12
03:11
keep_day_of_month = 1
03:11
или "запускать каждые (сек) 86400" в шедулере?
03:48
комрады, если в SA\MO\Edit\Console вводите команду, нет никаких странностей? у меня после ввода одной буквы уходит фокус, и нужно ставить мышой обратно в строчку
03:51
ща перезайду
03:53
хм, значит не каждый раз
03:53
клево
03:53
freeseacher: расскажи про бэкапы, плс
03:53
кража фокуса это скорее развлечение операционки
03:53
на кб есть.
03:53
freeseacher: не, попробуй вторую команду ввести
03:54
/usr/local/bin/pg_dump ?
03:54
не, это я нашел
03:55
в шедулере стоит запуск каждые (сек) 86400
03:55
а в конфиге
03:55
7[10:14] TSergey: [backup]
03:55
7[10:14] TSergey: keep_days = 14
03:55
7[10:14] TSergey: keep_weeks = 12
03:55
7[10:14] TSergey: keep_day_of_week = 6
03:55
7[10:14] TSergey: keep_months = 12
03:55
7[10:14] TSergey: keep_day_of_month = 1
03:55
7[10:14] TSergey:
03:55
как будет бэкапить?
03:55
бекапить будет раз в шедулертайм
03:56
сохранять старые бекапы по этому графику
03:56
а блок в конфиге?
03:56
а, это ротация?
03:58
ок, а попробуй еще раз в консоли ввести команду
03:59
первый раз у меня набирается нормально, энтер, отработала, второй раз ввожу букву --- фокус слетает
04:01
и в фаерфоксе, при входе, если в name вводишь и жахаешь таб, то переходит не на пассворд, а в строку адреса
04:01
даже в строку адреса, а на имя вкладки
04:03
не в строку адреса, а на имя вкладки
04:05
фокус так же слетает и в Inventory\Inventory\ объект\managed Object\Console
04:07
dvolodin: привет
04:07
кастом поле пока добавить не получится?
04:10
почему
04:10
останови SAE и добавляй
04:11
Добрый день. Подскажите что надо указать в свойствах Notification Group - Other - Params? Уже указал Time pattern - any, Method -mail
04:13
там ошибки
04:13
неважно это?
04:15
не добавилось поле
04:15
"Error! Failed to fetch data!"
04:26
комрады, чео у вас происходит, если набрать в поиске, тот что в правом верхнем углу, ввести с пяток букв?
04:26
только неспеша
04:50
misak: закоммитил пачку фиксов для dns
04:54
dvolodin: понимаю, что вопрос пустяковый, но все же, как добавить кастом-поле?
04:56
оставь в ланчере только noc-web и добавь
04:59
а как?
05:00
все стопануть и запустить только noc-web, так не пойдет?
05:07
в трэйсбэк падает
05:09
Peer authenticateion failed for user "noc"
05:24
TSergey, su - noc
05:24
а потом уже запускать ноквеб
05:25
freeseacher: спасиб
05:26
трэйса пока нет
05:26
этот трейс про то что у тя постгрес ругается
05:26
Утра вам. Коллеги, а подскажите, как добраться до атрибутов MO из сниппета?
05:26
это же отдельная табличка
05:27
freeseacher: огромное спасибо, кастом поле вернул
05:29
Night_snake:
05:29
mo_name=context['object'].name
05:29
if mo_name not in IGNORED_MO:
05:29
__m = ManagedObject.objects.get(name=mo_name)
05:29
__run_platform = m.get_attr("platform","")
05:30
ну про игноред убери
05:31
Night_snake:
05:31
from noc.sa.models import *
05:31
mo_name=context['object'].name
05:31
m = ManagedObject.objects.get(name=mo_name)
05:31
run_platform = m.get_attr("platform","")
05:33
TSergey, О, спасибо
05:34
а чего делаешь сниппетом
05:34
тока platform находится в sa_managedobject, и цепляется просто
05:34
context['object'].platform
05:34
run_hw_version = m.get_attr("HW version","")
05:34
run_version = m.get_attr("version","")
05:34
А у меня 3200 А1 и С1, у них конфиги отличаются
05:35
так и чего делаешь сниппетом?
05:35
незначительно, поэтому obj,profile один, а сниппетов два.
05:35
дефолт-конфиг заливаю
05:36
:)
05:36
if 'DES-3200' in run_platform and 'C1' not in run_hw_version:
05:37
но правда это у меня не в сниппете
05:42
05:43
ни у кого такого нет ?
05:45
ребутну ка я НОК ...
05:54
misak: у меня не было
05:59
мля
05:59
у меня база монги 300 Гиг
05:59
как ее почистить? алармы и ивенты я регулярно чищу
06:00
у меня инсталляция НОКА 4 года уже
06:00
и логов на 300 гиг
06:00
а как чистишь алармы и ивенты?
06:01
а логи это те, что в /var/log/mongodb ?
06:01
$ mongo noc
06:01
db.noc.alarms.active.remove();
06:01
db.noc.events.active.remove();
06:01
db.noc.events.new.remove()
06:01
db.noc.events.archive.remove()
06:01
db.noc.alarms.archive.remove()
06:01
не, логи /var/log/noc/
06:02
zi_rus: пасиба
06:02
и хреново, что нок свои логи не ротирует
06:02
ротирует
06:02
настраивать надо
06:02
в настройках каждого демона это есть
06:03
misak: посмотри в /var/log/mongodb у меня недавно там сильно прибалвлялось, логировались медленные запросы
06:03
на три гига логов за день
06:04
настройки по умолчанию ротейшен отключен
06:04
нехорошо
06:05
где монга пид файл держит?
06:05
на фряхе
06:05
это от дистрибутива наверное сильно зависит
06:06
у меня федора
06:07
не оно?
06:07
"/var/lib/mongodb/mongod.lock"
06:10
а кто знает в чем меряется logsize?
06:12
misak:
06:12
06:12
dvolodin # 08:26 в байтах
06:14
TSergey_: спасибо. Посмотрел логи монги, пишет медленные запросы, что делать? апгрейдить машину?
06:14
misak: вот не того ты чела спросил :)
06:14
я убрал логирование медленных запросов
06:15
нормальный ответ, я тоже так сделаю :)
06:15
пока
06:16
там профиль настраивается, нужно не забыть войти в базу
06:16
иначе непонятно для чего запоминает настройки
06:21
zi_rus: а где эти настройки вообще?
06:22
пастебин ты дал чуть выше
06:22
noc.conf хаьъ
06:22
*[fm]
06:24
а как включить ротацию для noc-scheduler.log?
06:26
zi_rus: не подскажешь?
06:26
heartbeat --- не оно?
06:26
как и для всего остального
06:27
там два параметра
06:27
логсайз
06:27
и сколько файлов
06:27
я поставил 100000000 и 3
06:28
ок, спасибо
06:28
я поставил 10 485 760 это вроде 10мб
06:31
"2014-08-21 10:35:45,739 [main.jobs] Changing sa.wipe_managedobject(20) status to F"
06:31
забивают noc-scheduler.log напрочь
06:33
смотри почему
06:33
не может удалить железку
06:33
я думал это у всех так
06:35
пишет 17-18-19-20, это ID объектов? их давно нет, как пофиксить это дело7
06:37
они не грохнулись, я их удалял
06:37
./noc wipe managed_object 13
06:38
но это было ну оооочень давно
06:41
dvolodin: как шедулеру сказать, что эта железяка удалена?
06:44
dvolodin #
06:44
12:45 вот вам последний пятничный огненный патч
06:44
12:46 при удалении managed object из web-морды автоматом запускается job sa.wipe_managedobject, который его аккуратненько выпиливает из базы
06:46
Вопрос. Активатор обязательно от рута должен быть? Смущает наличие "[<Ping4Socket(0x2a71410, )>] Failed to create ping socket. Check process permissions"
06:47
TSergey_, так ты из морды удалял? это неправильно, удаление из морды не работает
06:47
TSergey_: мож тебе в монге джоб дропнуть?
06:47
и не работало никогда
06:47
либо в системе разрешить открывать порты не от рута
06:47
а фиг его знает
06:47
про конкретно этот
06:47
но джобы там есть
06:48
Версия "NOC 0.8dev9914" - последняя?
06:49
zi_rus: я из морды удалял, но это было очень давно
06:49
zi_rus: да вроде бы работает давно
06:49
а потом грохнул из консоли
06:49
вот как теперь джобы эти снять
06:49
никогда не работало начиная с самого появления этой фичи
06:49
были репорты, но никто доделаывть не стал
06:49
редко когда появляются объекты wiping10, эти уже вручную
06:50
удалять надо из консоли, это единственный работающий вариант
06:50
так как джобы грохнуть?
06:50
у меня парочка удалилась из морды
06:50
я аж удивился
06:51
TSergey_: ну поищи в разных noc.schedules.*
06:51
вдруг найдёшь
06:52
народ, а можете проверить такую багу. открываете МО, там консоль. вводите любую простую команду типа show ver
06:52
нок отрабатывает
06:52
db.noc.schedules.main.jobs.find()
06:52
а потом пытаетесь ввести вторую команду
06:52
у меня нок после каждой буквы теряет фокус
06:52
а фокус терятеся?
06:53
да, подтверждаю
06:53
это же жопа
06:53
у меня еще с выбором врф для мо такая же херня
06:53
первому МО меняет
06:53
вернее дает выбрать
06:53
если открываю второй
06:53
то уже не выбирает
06:54
выбери другой врф
06:54
а потом вернись на нужный
06:54
а попробуй в строке поиска ввести симсолы, в правом верхнем углу
06:54
приходится руками вбивать имя и делать энтер
06:54
evyscr: да, есть они там
06:54
в vc.vc STATE также себя ведет
06:54
dvolodin, чтоэто за жопа с новым интерфейсом?
06:54
zi_rus: я считаю, что это LookupField поломался
06:55
он нигде не даёт выбрать повторно то же значение
06:55
evyscr: с 21 февраля крутятся :)
06:55
evyscr, это же жесть
06:57
Пробовал оформления. В настройках профиля админа поменял тип на "Access".. Как сейчас вернуть на работоспособное?
07:02
zi_rus: жесть. я про неё уже дня три ною.
07:03
или больше...
07:03
Народ, как поменять оформление? Где в БД эта запись, а то вебморда потеряна по сути
07:03
evyscr: спасибо преогромное, джобы убиты
07:03
ecilop: сочуствую, я тоже так попадал
07:04
режил только вслепую выбирая новый стиль
07:04
TSergey_: я вообще не могу стиля менять сейчас
07:04
TSergey_: неработоспособная морда вышла для этого юзеря
07:04
табом можешь перемещаться?
07:05
тогда у тебя все хуже чем у меня
07:06
для "потомков":
07:06
убил джобы "[main.jobs] Changing sa.wipe_managedobject(20) status to F"
07:06
mongo noc
07:06
db.noc.schedules.main.jobs.find()
07:06
db.noc.schedules.main.jobs.find({"schedule" : null})
07:06
db.noc.schedules.main.jobs.remove({"schedule" : null})
07:06
db.noc.schedules.main.jobs.runCommand("compact");
07:06
quit()
07:07
эм
07:07
db.noc.schedules.main.jobs.find({"jcls" : "sa.wipe_managedobject"})
07:08
ecilop: noc.conf [customization]
07:08
туда глянь
07:08
не
07:08
./noc dbshell
07:08
evyscr: да, так правильнее db.noc.schedules.main.jobs.find({"jcls" : "sa.wipe_managedobject"})
07:09
в моем случае это тот же список
07:09
select * from main_userprofile;
07:09
ecilop: ^
07:10
evyscr: пнял, поменял на gray
07:13
посоны, а в алярмах у всех внизу полоска со страницами осталась?
07:15
у меня пока там пусто, ничего непотребного
07:15
полосок лишних не наблюдается
07:16
брузлер - опера 12-ая
07:26
кто в регулярках силен? в скрипте Juniper.JUNOS.get_vlans надо строчку rx_vlan_line = re.compile(r"^(?P<name>\S+)\s+(?P<vlan_id>\d+)") подправить так, чтобы оттуда исключался VLAN default ну или tag вместо путого получался хотя-бы 1
07:26
пустого
07:31
Напиши строки "ДО" и "ПОСЛЕ". Может соображу что надо.
07:41
не. я в питоне бревно. Мне опиши что требуется из каких строк получить. Какая была до обработки, что требуется после. Регулярку может соображу тогда
07:45
TSergey_: у меня тоже логи забиты джобами ...
07:46
ты что-то сделал?
07:46
он сделал
07:47
misak: тебе, похоже, не регулярку надо править
07:49
misak: ты не мне адресовал наверное :) Мне давай что было "ДО" и что требуется "ПОСЛЕ". Тогда над регуляркой смогу подумать
07:50
набор питоновских команд мне не нужен
07:54
misak@EX4200_Abovyan> show vlans brief
07:54
Ports
07:54
Name Tag Primary Address Active/Total
07:54
ABB 206 5/5
07:54
default
07:54
дефолт таг пустой
07:57
"ABB 206 5/5 default" - эта строка?
07:57
2014-08-21 11:59:35,551 [main.jobs] Changing sa.wipe_managedobject(189) status to F - объекта с ид 189 у меня уже нет, а он все хочет его удалить
07:57
db.noc.schedules.main.jobs.find({"jcls" : "sa.wipe_managedobject"})
07:58
читайте логи канала, они делают ваши волосы мягкими и шелковистыми-)
07:59
evyscr: "Раньше мои волосы были сухими и безжизненными. А теперь они шевелятся!"
07:59
а про default - его лучше убрать из результата выполнения данной команды в каком-то из скриптов
08:00
или чекать наличие default и пустоты с заменой на 1.
08:00
ecilop: default - это уже следующая
08:00
да, пустота заменяется на 0, а потом все вылетает потому как 0 невалдный таг
08:01
misak:
08:01
mongo noc
08:01
db.noc.schedules.main.jobs.find()
08:01
db.noc.schedules.main.jobs.remove({"jcls" : "sa.wipe_managedobject"})
08:01
db.noc.schedules.main.jobs.runCommand("compact");
08:01
quit()
08:02
Разве есть возможность появления слова default в ином контексте?
08:02
Если нет, то можно элементарно /\sdefault/ 1/
08:02
не надо так, наверное
08:03
там вообще, скорее s/^default\s*$/default 1/
08:05
а не так: s/\sdefault/ 1/m ?
08:05
" default" => " 1"
08:06
даже \s лишняя
08:06
раз там в 1 строке..
08:07
misak это все он evyscr :)
08:18
08:18
папробуй
08:19
если захочешь "default 1", то типа вписать его вместо ""
08:19
сейчас
08:19
да не, не нужен он вообще
08:22
evyscr, та же фигня.
08:22
да
08:23
<type 'exceptions.NameError'>
08:23
global name 'rx_default_vlan' is not defined
08:23
a = self.rx_default_vlan.sub("", a)
08:24
<type 'exceptions.TypeError'>
08:25
expected string or buffer
08:26
а кстати, там дефолта уже нет в а
08:28
логично, он под первый регэксп не попал
08:29
странно тогда, что где-то он проявляется
08:32
я просто твою строчку a = self.rx_default_vlan.sub("", a) закомментил и заработало
08:34
чудеса
08:35
теперь и дефолтный скрипт работает
08:35
скорее всего мои дурни инженеры создали ВЛАНЫ без тагов
08:35
они и мешали
08:36
я их почистил в конфиге железки заработал скрипт
09:57
09:57
все, кто хочет графики -- курите и давайте обсуждать замечания
09:58
dvolodin, aggregation_method - метод агрегации: average
09:58
как это понимать
09:58
если он для годового графика с агрегирует точки посуточно
09:59
покажет среднюю за сутки?
09:59
возьмет среднее
09:59
да
09:59
нахер не надо
09:59
нужен суточный максимум
09:59
(с практической точки зрения)
10:00
Available aggregation methods are: * average * sum * last * max * min
10:00
дописал
10:01
остальное многа букав
10:04
dvolodin, а там задуманы функции преобразования? ну там биты в байты. asr вон температуру в десятых долях показывает, значение 10 надо делить чтобы в базу класть
10:05
metrics это типа threshold?
10:05
тогда я бы еще добавил min/max _alarm
10:05
а
10:05
error это типа и есть аларм
10:06
лучше бы назвал как есть аларм
10:06
и поднятие аларма в ФМ соответственно
10:07
плюс проблемой может быть еще и значение первой производной
10:07
не только превышение предела
10:07
но и слишком быстрый рост
10:07
или падение
10:08
evyscr, а можешь объяснить что это
10:08
dvolodin, короче открываешь какти и переписываешь :D
10:09
из всех выборок за период (напр. месяц) отбрасываются 5% максимальных
10:09
Максимальное из оставшихся и будет этим
10:09
evyscr, для агрегации годная вещь, чтобы он не максимум брал, а вот так вот
10:10
а то авария случится, из-за петли канал забьет
10:10
и на агрегированном графике будет пик
10:10
а по сути он там не нужен
10:10
95% обычно для пира нужен
10:11
еще не вижу возможность прогнозирования
10:11
ну типа есть график, добавить линию тренда, чтобы посмотреть когда параметр выйдет за пределы
10:12
я думаю с bgp в последнее время людям бы пригодилось
10:12
dvolodin, что скажешь? а то мы тут в воздух говорим. или ты сидишь записываешь? Ж)
10:15
zi_rus, прогнозирование - жопка.
10:16
freeseacher, а что такое?
10:16
линейная интерполяция
10:16
более солжные функции конечно более сложны
10:17
а где это работать-то будет? графики в FM?
10:17
про 95-процентный персентиль я в курсе
10:18
только он считается не за период аггрегации, а за расчетный период при оплате по burst'у
10:18
и к методам агрегации отношения особого не имеет
10:18
metrics -- это просто число
10:18
скажем, вход на интерфейсе
10:19
тренды и определение аномалий - это уже постобработка
10:19
dvolodin, ну ты же можешь его применить и к агрегации, у тебя есть период с данными которые ты агрегируешь в число
10:20
если у тебя есть сырые данные за месяц - можешь посчитать и выгрузить в биллинг
10:20
dvolodin, но ты еще не забывай, а то сделаешь графики потом тебя не допросишься
10:21
какие возможны источники данных?
10:21
по netflow сможет график или диаграмму набросать?
10:21
zi_rus: источники - любые
10:21
с помощью пинговалки задержку до ресурсов отсчитать?
10:21
нативно понимает протокол графита
10:22
который карбон
10:22
dvolodin, но мы его не понимаем. давай то что из нока можно сделать
10:22
но можно сделать и загрузку из файлов и из любого коллектора
10:22
как на счет экспорта графиков в png?
10:23
так это что-то отдельное? не к существующему модулю в ноке?
10:23
он и сейчас умеет рендерить в png
10:23
у меня есть use case когда график надо периодически отправлять на почту ддля вставки в отчет
10:23
пожалуйста, дергаешь URL и получаешь картинку
10:23
хочешь в png, хочешь в SVG
10:24
можно и из внешней системы дергать
10:24
есть куча дашбордов вроде giraffe, graphene и прочих
10:25
если по полочкам, то так
10:25
графит -- это скорее общая технология
10:25
с одной стороны там есть хранилища
10:25
дефолтное -- whisper, по природе похоже на RRD
10:26
есть эксперементальное -- ceres, он покомпактнее и лучше параллелится
10:26
в принципе есть реализации и для хранения в базах вроде кассандры и leveldb
10:26
есть демон - carbon
10:27
у него есть несколько типов коллекторов -- pickle, строчный, udp
10:27
он принимает данные и пишет их в хранилище
10:28
для того, чтобы собрать данные существует куча тулзов вроде diamond и statsd
10:28
они умеют собирать данные и кидать их в карбон
10:28
для того, чтобы достать данные из базы и показать -- есть web-интерфейс, назвается graphite-web
10:29
он обрабатывает запрос к /render и, в зависимости от формата, либо выдает данные, либо рисует график
10:29
у него есть своя база с настройками
10:29
ну и наконец -- есть сторонние тулзы, которые умеют через render тащить данные и показывать их красиво
10:29
graphene, giraffe, graphite
10:30
есть плагин для jQuery, который тянет png и отображает на странице
10:30
то есть вот такая мешанина
10:30
она очень гибкая но ее долго и муторно крутить под свои нужды
10:30
что мы делаем в NOC
10:31
берем готовые и отлаженные storages со всеми их тулзами
10:31
и определяем API для них, с учетом того, что в перспективе мы можем сделать и свои варианты хоть в той же монге
10:32
10:32
вот они
10:32
там сейчас есть обвязка вокруг whisper и ceres
10:32
далее
10:32
есть несколько форков carbon
10:33
в основном вокруг twisted
10:33
тут проще было сделать свой совместимый демон
10:33
10:33
наш noc-pmwriter слушает сокеты, понимает форматы карбона
10:34
то есть к нему можно прилепить вообще любой внешний совместимый сборщик данных
10:34
и он понимает наш storage api
10:34
далее
10:35
graphite-web -- django'вское приложение
10:35
со своей базой и даже с extjs3
10:35
честно говоря, нам оно просто не нужно
10:35
нам нужно только сохранение API для взаимодействия с внешними системами
10:36
итого у нас появилось приложение pm.render
10:36
10:36
оно делает ровно то же, что и render graphite-web
10:36
там в каталоге graphite ровно то, что нужно нам от graphite-web
10:37
там, в основном, функции преобразования
10:37
и рендерилка графика
10:37
далее для отображения я сделал компонент для ExtJS
10:38
10:38
он дергает render (не важно, наш или графитовский) и через d3 отрисовывает графики
10:41
10:41
10:41
вот два теста
10:41
которые показывают графики load average
10:42
также подцепил тестового клиента из дистрибутива карбона, который собирает load average и шлет в карбон
10:42
итого - load average собирается, графики красиво едут во времени
10:43
а дальше начинается самое интересное
10:43
демоны noc-pmprobe должны собирать данные и передавать их в noc-pmwriter
10:43
ну или в карбон, если так уж захотелось
10:44
нам нужно сделать, чтобы создание и настройка новых метрик происходила автоматом
10:44
желательно на самом высоком уровне
10:45
например, я хочу в профиле интерфеска сказать, что для сетевых линков нужно мониторить загрузку и ошибки
10:45
а для vip - загрузку
10:47
вот в начальной ссылке и расписан такой механизм автоконфигурации
10:47
MetricType -- это описание типа метрики
10:47
то, что можно собирать
10:47
они объединяются в группы и группы навешиваются уже на конечные объекты
10:48
например, может быть группа -- "Загрузка интерфейса", "Ошибки на интерфейсе"
10:48
в документе пока не описано, как оно разляжется на конкретные настройки для сборщиков
10:49
оно должно максимально оптимальным способом для данной железки действовать
10:50
скажем, метрика noc.interface.load.in для DLink и для ScreenOS может собираться различными методами
10:51
а настроить персонально для mo нельзя?
10:51
Привязка настроек к объектам
10:51
посмотри
10:51
там можно для объекта перебить часть настроек профиля
10:51
например, докинуть свое
10:51
dvolodin: hi
10:52
for example, the metric for noc.interface.load.in DLink and ScreenOS can be collected by various methods
10:52
ага, сразу не разглядел
10:52
it works with multidomain?
10:53
in screenOS
10:53
i have some problem to colect metrics
10:54
in cacti
10:54
screenos uses propiertary mibs for subinterfaces
10:54
yes
10:55
this is one problem
10:55
and i think DLINK too
10:56
aermike, generic IF_MIB in Dlink.
10:56
understand
10:56
in discution i think that
10:56
dvolodin: btw, не могли бы вы закоммитить one-line patch:
NOC-1418
10:56
i work with screen os
10:57
and problem appear when i try to capture all metrics in management interfaces
10:58
evyscr: хорошо, закоммичу
10:58
i mean all metrics for all interfaces, but snmp work on management interfaces
11:00
dvolodin, у тя была хорошая тема с прошлым планом. фигачить слобо blocker для блокирующих.
11:00
тут то чего осталось ?
11:03
откуда взалась тема с тресхолдами на метрики ?
11:04
эта, а с cairo проблем не будет? чо-та у них забавные баги периодически всплывают.
11:06
evyscr, если рисовать будет js поделка то не будет
11:07
а так да... каиро это не очень хорошо
11:09
а про тресхолды это просто большая тема.
11:09
они же могут быть запсимыми от других параметров
11:09
с агрегацией бы поподробнее развернуть...
11:11
или даже не с агрегацией, а с, м-м, паттернами хранения
11:12
неоднократно высказывались пожелания "сохранять n предыдущих графиков"
11:20
11:20
вот набросал API для проб
11:20
dvolodin, графит же не ломает существующий функционал, зачем ты его в отдельной ветке пилишь?
11:21
вроде идея правильная
11:21
аналогично скриптам
11:21
говоришь, что вот такая-то функция выдает такие параметры
11:22
и указываешь ограничения
11:22
а NOC когда готовит выкладку сам разбирается, что лучше использовать
11:23
тогда, например, можно будет использвовать приватные мибы вендоров
11:23
для отдельных случаев
11:23
а потом скатываться на тот же IF-MIB
11:23
а привязка как раз по metric type
11:24
и надо в пробы часть функционала скриптов дернуть
11:24
тот же telnet/ssh и snmp
11:24
snmpbulk* не забудется?
11:25
getnext?
11:25
он есть в скриптах
11:27
тут вопрос, возможно, об объединении проб с одного mo в один запрос
11:29
в одном handler'е
11:29
они возвращают вектор
11:29
точнее -- dict
11:29
то есть если ты выполняешь cli-команду
11:29
и из нее можешь выдрать 5 значений
11:30
то ты делаешь одну функцию
11:30
и присваиваешь ей 5 метрик
11:32
по этому я и не понитмаю с чего вдруго интерфейсы не вектор
11:32
я для себя так решил
11:33
скалярному объекту строго соответсвует объект в базе
11:33
для вектора -- колическо выходных параметров определяется пробой
11:34
но, наверное, нужно как-то уметь группировать
11:34
и все равно не понимаю все параметры которые есть у интерфейса в IF_MIB это вектор для интерфейса
11:34
скажем -- сначала прогнать show interfaces и распарсить его
11:34
а затем уже отдать все интерсующий интерфейсы оттуда
11:36
вот смотри
11:36
у тебя свич
11:36
24 порта медных ты не мониторишь
11:36
нужно тебе 2 оптических
11:37
а snmp на нем нет, только get_interfaces
11:37
show interface
11:37
вот тут надо как-то извернуться, запустить сначала сбор данных
11:38
а по его завершению вызвать два раза handler
11:39
и еще как-то в фильтрах нужно указать, требуется ли для метода SNMP или CLI
11:42
и еще как-то желательно указывать, SNMP или CLI предпочтительнее
11:42
снмп рулит
11:42
нок будет первой системой который будет собирать данные консолью
11:43
вызывайте дурку
11:43
zi_rus, у меня есть значения который собрать по snmp не возможно
11:44
freeseacher, ты представляешь если нок начнет дергать get_interfaces каждые пять минут только для сбора счетчиков
11:44
zi_rus, не надо 5 минут
11:44
даже примерно не надо
11:44
а другим надо
11:45
иногда даже 1 минута нужна
11:45
не get_interfaces так другое
11:45
гет интерфейсов надо сделать разово для сопоставления данных в базе с ifindex
11:45
get_interface_counters нужен
11:46
это будет не через активатор.
11:46
это другая подсистема
11:46
кстати. dvolodin
11:46
проба будет делать сама ?
11:46
interface_discovery это делает
11:46
нет, я таки сижу :)
11:47
интерфейс дискавери узнал про интерфейсы. и их ифиндексы
11:47
админ задал роль порта в мордочке
11:47
для некоторых ролей портов есть возможность собирать данные
11:49
проба пришла за конфигом и узнала что ей надо собирать значения для этого порта
11:49
а еще бывают не только порты. а очереди на плате.
11:50
и тут логика пасует
11:50
где-то горит поле конопли, но дует в другую сторону. я ничего не понимаю
11:50
или ресурсы на acl-и
11:50
как подцепить пробу к ним ?
11:51
видимо такие проверки надо подцеплять в object profile
11:53
или такие проверки должны быть привязаны к инвентори
11:53
freeseacher: почему это логика пасует?
11:54
у тебя пробы могут быть привязаны к объектам в inventory
11:54
я ее перезапустил и получилось все
11:54
вот вот
11:54
ну а что тебя смущает?
11:54
ничего не смущает
11:54
мы к одной идее пришли
11:55
11:55
вот что получит pmprobe
11:57
для объектов в inventory явно понадобятся какие-то фильтры для настройки
11:58
скажем, если тебе нужно мониторить сервисные карты, то можно указать, скажем, модель, потребовать, чтобы карта не просто валялась на складе, а была установлена, ну и навесить metric set
11:58
и будет у тебя полная автоматика
11:59
воткнул новую карту в железку, дернулся asset discovery
11:59
и в следующую выкладку для noc-pmprobe попадет и твоя карта
11:59
dvolodin, а есть dymmy объект в inv ?
12:01
просто адово сложно получается впилить график ошибок
12:01
а мониторинг скорости вращения вентилятора превращается в просто пиздец какую сложную задачу
12:01
предполодим что железяка у нас новая
12:02
Свитч LG W2243T
12:02
нам надо сделать для этой железяки
12:02
новый профиль
12:02
со сбором конфига и версии
12:03
потом надо сделать скрипт сбора инвентаризации
12:03
и потом поверх этого сделать скрипт сбора скорости вентилятора на этом свитче
12:03
я соглашусь с тем что потом я этих свитчей понаставлю 100500
12:03
но начальная разработка превращается в довольно утомительный процесс
12:04
по этому dummy объект нужен
12:04
в том случае если драйвером внедрения нока будет IPAM, VC и PM
12:04
12:05
посмотри там ObjectConfig
12:05
добавил еще model
12:06
так можно будет добавлять мониторинг различных карт
12:06
что касается твоей проблемы -- я думаю нужен просто wizard
12:07
ты ему говоришь, что у тебя новая железка
12:07
при чем желательно с бородой и в шляпе
12:07
в ней столько-то портов или вообще выбираешь шаблон
12:07
типа -- 24 портовый свич 10/100 с 4 sfp
12:07
дим, порты какнить у всех уже мониторятся
12:08
с другой стороны
12:08
у нас активно используется десятка полтора моделей свичей доступа
12:08
всего
12:08
долго ли моделей накропать
12:09
особенно учитывая то, что они есть и у вас
12:09
:)
12:09
те же ежики, зухухоли и немного длинков
12:10
можно вообще сделать проще
12:10
модели Generic XXX switch
12:10
сделать их десяток
12:10
24/48 портов, 2/4 SFP
12:10
с комбо или без
12:11
и бери их за основу
12:11
давайте все-таки про PM
12:11
я согласен с zi_rus -- у них горят конопляные поля, но ветер дует не в его сторону
12:11
а в мою
12:11
:)
12:11
если мне надо мониторинг вентиляторы
12:12
как ?
12:12
встроенные или отдельные?
12:12
встроенный
12:12
не
12:12
там явно вектор будет
12:12
определяем тип
12:12
noc.fan.xxxxxxxx
12:13
ты просто говоришь в metric set -- и вентиляторы мне тоже надо
12:13
S9312's Device status:
12:13
Slot Sub Type Online Power Register Alarm Primary
12:13
...
12:13
FAN2 - - Present PowerOn Registered Normal NA
12:13
FAN3 - - Present PowerOn Registered Normal NA
12:13
FAN4 - - Present PowerOn Registered Normal NA
12:13
вот эти
12:13
метрику я куда привязываю ?
12:13
ну или на тушку в inventory
12:14
ну и привяжи, я не против
12:14
все, что можно привязать к объекту, можно привязать и к профилю
12:14
почитай там
12:14
то есть ты декларируешь, что вентиляторы тебя очень даже интересуют
12:14
ибо mo profile для меня роль устройства с его типом
12:15
а дальше будет зависеть от того, есть ли у тебя пробы
12:15
если есть -- выдернет параметры
12:15
я привязал к роли устройства - надо мониторить вентиляторы.
12:15
а для конкретной модели устройства написал пробу
12:15
которая отдает сколькото вентиляторов
12:16
они у тебя срастутся
12:16
как раз по MetricType
12:16
допустим он у тебя вообще векторный
12:16
да
12:17
тем не менее спустя полгода я таки напищу assert_discovery котороая будет обнаруживать для хуавея сколькко у него фентиляторов
12:17
что мне надо будет сделать ?
12:17
сделать функцию
12:18
которая вернет
12:18
{ "noc.fan"."xxxxx": {"1": value1, "2": value2, "3": "value3"}
12:20
и оно у тебя разляжется куда-то в <город>.net.access.<район>.<сегмент>.<железка>.fan.1.rotation
12:20
.2. и так далее
12:21
ок
12:21
следующая грядка пошла
12:21
тресхолды генерят евенты ?
12:23
да, они и так их генерят уже
12:23
PM OK | PM WARN | PM FAILURE
12:25
и еще момент таки проба по телнету сама пойдет ? или активатор заставит ?
12:25
сама пойдет
12:25
зачем грузить активатор
12:26
активатор все-таки больше на скрипты расчитан
12:26
тоесть проба будет импортить в себя весь код активатора почти
12:26
а тут явно нужно грабить команды
12:26
да не, там отдельные классы для cli_provider
12:26
у меня сейчас уже есть на базе активтаора несколько собиралок метрик
12:27
одно другому не мешает, наверное
12:27
мешает
12:27
max_sripts
12:27
надо что бы проба его уважала
12:28
1 для железки
12:28
и хватит
12:29
:)
12:50
dvolodin:
http://pastie.org/9491498 - у меня тут локальные патчики накопились, они наверное неправильные, но может понадобятся ...
12:52
кинь тушенку для get_bfd session
12:53
там вместо запятых пробелы бывают?
12:56
патчики применю, да
12:59
да, бывают
12:59
все время забываю как делать тушенку
13:00
./noc debug-script get_bfd_sessions <железка> -o <файл тушенки>
13:05
Камрады, а подскажите еще пожалуйста, как снипетту скормить параметр. Т.е. я объявляю {% var port str %}. Задаю эту переменную перед выполнением сниппета.
13:05
А он мне говорит что port undefined =(
13:22
по pm еще соображения будут?
13:29
Hi, I gave noc 2 cores and 2GB RAM. RAM is used about 50% so that is OK but both cores are constantly at 100%. The psocesses using the CPU most are mongodb, noc-discovery, noc-scheduler and noc-correlator. I already had to set logging of correlator and discovery to loglevel error because each had a 4GB log file... Do I have a config issue or are those processes running wild?
13:30
top
13:51
hsychla_, set
13:51
logsize = 50000000
13:51
logfiles = 5
13:51
for log rotation
13:52
in noc daemons configs
13:57
zi_rus, thanks. I was about to configure logrotate but will use the internal rotation
13:57
my main problem however is the high load
14:50
mhh... nobody? looking at the logs, it seems like noc-scheduler for example does the same things every second. Is this the intended behavior?
15:36
hsychla_, i am talking about internal solution
15:37
hsychla_, check sa > reports > failed scripts. may be you have many fails
Share this page
Share this page: