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: 21.08.2014
asdx #
01:04
а понял. он не добавляет, если один мак в разных вланах. и что делать?
TSergey #
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 вводите команду, нет никаких странностей? у меня после ввода одной буквы уходит фокус, и нужно ставить мышой обратно в строчку
freeseacher #
03:51
TSergey, у меня ок
TSergey #
03:51
ща перезайду
03:53
хм, значит не каждый раз
03:53
клево
03:53
freeseacher: расскажи про бэкапы, плс
freeseacher #
03:53
кража фокуса это скорее развлечение операционки
03:53
на кб есть.
TSergey #
03:53
freeseacher: не, попробуй вторую команду ввести
freeseacher #
03:54
/usr/local/bin/pg_dump ?
TSergey #
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
как будет бэкапить?
freeseacher #
03:55
бекапить будет раз в шедулертайм
03:56
сохранять старые бекапы по этому графику
TSergey #
03:56
а блок в конфиге?
03:56
а, это ротация?
freeseacher #
03:57
да
TSergey #
03:58
ок, а попробуй еще раз в консоли ввести команду
03:59
первый раз у меня набирается нормально, энтер, отработала, второй раз ввожу букву --- фокус слетает
04:01
и в фаерфоксе, при входе, если в name вводишь и жахаешь таб, то переходит не на пассворд, а в строку адреса
04:01
даже в строку адреса, а на имя вкладки
04:03
не в строку адреса, а на имя вкладки
04:05
фокус так же слетает и в Inventory\Inventory\ объект\managed Object\Console
04:07
dvolodin: привет
04:07
кастом поле пока добавить не получится?
dvolodin #
04:10
почему
04:10
останови SAE и добавляй
TSergey #
04:11
как остановить?
aleksandrb #
04:11
Добрый день. Подскажите что надо указать в свойствах Notification Group - Other - Params? Уже указал Time pattern - any, Method -mail
dvolodin #
04:13
руками
TSergey #
04:13
dvolodin: http://pastebin.com/nD5LJhbX
04:13
так?
dvolodin #
04:13
хотя бы
TSergey #
04:13
там ошибки
04:13
неважно это?
04:15
не добавилось поле
04:15
"Error! Failed to fetch data!"
04:26
комрады, чео у вас происходит, если набрать в поиске, тот что в правом верхнем углу, ввести с пяток букв?
04:26
только неспеша
dvolodin #
04:50
misak: закоммитил пачку фиксов для dns
TSergey #
04:54
dvolodin: понимаю, что вопрос пустяковый, но все же, как добавить кастом-поле?
dvolodin #
04:56
оставь в ланчере только noc-web и добавь
TSergey #
04:59
а как?
05:00
все стопануть и запустить только noc-web, так не пойдет?
dvolodin #
05:04
хотя бы и так
TSergey #
05:07
в трэйсбэк падает
05:09
Peer authenticateion failed for user "noc"
freeseacher #
05:24
TSergey, su - noc
05:24
а потом уже запускать ноквеб
TSergey #
05:25
freeseacher: спасиб
05:26
трэйса пока нет
freeseacher #
05:26
этот трейс про то что у тя постгрес ругается
Night_snake #
05:26
Утра вам. Коллеги, а подскажите, как добраться до атрибутов MO из сниппета?
05:26
это же отдельная табличка
TSergey #
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","")
Night_snake #
05:33
TSergey, О, спасибо
TSergey #
05:34
а чего делаешь сниппетом
Night_snake #
05:34
тока platform находится в sa_managedobject, и цепляется просто
05:34
context['object'].platform
TSergey #
05:34
run_hw_version = m.get_attr("HW version","")
05:34
run_version = m.get_attr("version","")
Night_snake #
05:34
А у меня 3200 А1 и С1, у них конфиги отличаются
TSergey #
05:35
так и чего делаешь сниппетом?
Night_snake #
05:35
незначительно, поэтому obj,profile один, а сниппетов два.
05:35
дефолт-конфиг заливаю
TSergey #
05:36
:)
05:36
if 'DES-3200' in run_platform and 'C1' not in run_hw_version:
Night_snake #
05:36
ну вот да
TSergey #
05:37
но правда это у меня не в сниппете
misak #
05:42
доброе утро
TSergey #
05:42
привет
misak #
05:42
мне сегодня с утра на почту такая хрень стала приходить - http://pastie.org/9490663
05:43
ни у кого такого нет ?
05:45
ребутну ка я НОК ...
TSergey #
05:54
misak: у меня не было
misak #
05:59
мля
05:59
у меня база монги 300 Гиг
TSergey #
05:59
неслабо
zi_rus #
05:59
хохохо
misak #
05:59
как ее почистить? алармы и ивенты я регулярно чищу
06:00
у меня инсталляция НОКА 4 года уже
06:00
и логов на 300 гиг
TSergey #
06:00
а как чистишь алармы и ивенты?
06:01
а логи это те, что в /var/log/mongodb ?
misak #
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()
zi_rus #
06:01
misak, разберись с этими настройками http://pastebin.com/rZKX5Hnv
misak #
06:01
db.noc.alarms.archive.remove()
06:01
не, логи /var/log/noc/
06:02
zi_rus: пасиба
06:02
и хреново, что нок свои логи не ротирует
zi_rus #
06:02
ротирует
06:02
настраивать надо
06:02
в настройках каждого демона это есть
misak #
06:03
мдя
TSergey #
06:03
misak: посмотри в /var/log/mongodb у меня недавно там сильно прибалвлялось, логировались медленные запросы
06:03
на три гига логов за день
misak #
06:04
настройки по умолчанию ротейшен отключен
06:04
нехорошо
zi_rus #
06:05
где монга пид файл держит?
06:05
на фряхе
misak #
06:05
это от дистрибутива наверное сильно зависит
06:06
у меня федора
TSergey #
06:07
не оно?
06:07
"/var/lib/mongodb/mongod.lock"
zi_rus #
06:07
похоже
TSergey #
06:07
за пути не уверен
misak #
06:10
а кто знает в чем меряется logsize?
TSergey_ #
06:12
misak:
06:12
http://static.nocproject.org/irclog/2011.12.06.html
06:12
dvolodin # 08:26 в байтах
misak #
06:14
TSergey_: спасибо. Посмотрел логи монги, пишет медленные запросы, что делать? апгрейдить машину?
TSergey_ #
06:14
misak: вот не того ты чела спросил :)
06:14
я убрал логирование медленных запросов
misak #
06:15
нормальный ответ, я тоже так сделаю :)
06:15
пока
TSergey_ #
06:16
там профиль настраивается, нужно не забыть войти в базу
06:16
иначе непонятно для чего запоминает настройки
misak #
06:21
zi_rus: а где эти настройки вообще?
zi_rus #
06:21
какие
misak #
06:22
пастебин ты дал чуть выше
zi_rus #
06:22
noc.conf хаьъ
06:22
*[fm]
misak #
06:22
ок
TSergey_ #
06:24
а как включить ротацию для noc-scheduler.log?
06:26
zi_rus: не подскажешь?
06:26
heartbeat --- не оно?
zi_rus #
06:26
как и для всего остального
TSergey_ #
06:27
и как?
misak #
06:27
там два параметра
06:27
логсайз
TSergey_ #
06:27
ага
misak #
06:27
и сколько файлов
06:27
я поставил 100000000 и 3
TSergey_ #
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 напрочь
dvolodin #
06:33
смотри почему
06:33
не может удалить железку
TSergey_ #
06:33
я думал это у всех так
zi_rus #
06:34
графики???
TSergey_ #
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, который его аккуратненько выпиливает из базы
ecilop #
06:46
Вопрос. Активатор обязательно от рута должен быть? Смущает наличие "[<Ping4Socket(0x2a71410, )>] Failed to create ping socket. Check process permissions"
HaLVeR #
06:46
угу
zi_rus #
06:47
TSergey_, так ты из морды удалял? это неправильно, удаление из морды не работает
evyscr #
06:47
TSergey_: мож тебе в монге джоб дропнуть?
zi_rus #
06:47
и не работало никогда
HaLVeR #
06:47
либо в системе разрешить открывать порты не от рута
TSergey_ #
06:47
а джоп это монга?
HaLVeR #
06:47
(что еще хуже)
evyscr #
06:47
а фиг его знает
06:47
про конкретно этот
06:47
но джобы там есть
ecilop #
06:48
Версия "NOC 0.8dev9914" - последняя?
TSergey_ #
06:49
zi_rus: я из морды удалял, но это было очень давно
misak #
06:49
zi_rus: да вроде бы работает давно
TSergey_ #
06:49
а потом грохнул из консоли
evyscr #
06:49
ecilop: вроде да
TSergey_ #
06:49
вот как теперь джобы эти снять
zi_rus #
06:49
никогда не работало начиная с самого появления этой фичи
ecilop #
06:49
evyscr: спасибо
zi_rus #
06:49
были репорты, но никто доделаывть не стал
misak #
06:49
редко когда появляются объекты wiping10, эти уже вручную
zi_rus #
06:50
удалять надо из консоли, это единственный работающий вариант
TSergey_ #
06:50
так как джобы грохнуть?
evyscr #
06:50
у меня парочка удалилась из морды
06:50
я аж удивился
06:51
TSergey_: ну поищи в разных noc.schedules.*
06:51
вдруг найдёшь
zi_rus #
06:52
народ, а можете проверить такую багу. открываете МО, там консоль. вводите любую простую команду типа show ver
06:52
нок отрабатывает
evyscr #
06:52
db.noc.schedules.main.jobs.find()
zi_rus #
06:52
а потом пытаетесь ввести вторую команду
TSergey_ #
06:52
ага
zi_rus #
06:52
у меня нок после каждой буквы теряет фокус
TSergey_ #
06:52
а фокус терятеся?
06:53
да, подтверждаю
zi_rus #
06:53
это же жопа
06:53
у меня еще с выбором врф для мо такая же херня
06:53
первому МО меняет
06:53
вернее дает выбрать
06:53
если открываю второй
06:53
то уже не выбирает
evyscr #
06:54
выбери другой врф
06:54
а потом вернись на нужный
TSergey_ #
06:54
а попробуй в строке поиска ввести симсолы, в правом верхнем углу
zi_rus #
06:54
приходится руками вбивать имя и делать энтер
TSergey_ #
06:54
evyscr: да, есть они там
zi_rus #
06:54
в vc.vc STATE также себя ведет
06:54
dvolodin, чтоэто за жопа с новым интерфейсом?
evyscr #
06:54
zi_rus: я считаю, что это LookupField поломался
06:55
он нигде не даёт выбрать повторно то же значение
TSergey_ #
06:55
evyscr: с 21 февраля крутятся :)
zi_rus #
06:55
evyscr, это же жесть
ecilop #
06:57
Пробовал оформления. В настройках профиля админа поменял тип на "Access".. Как сейчас вернуть на работоспособное?
evyscr #
07:02
zi_rus: жесть. я про неё уже дня три ною.
07:03
или больше...
ecilop #
07:03
Народ, как поменять оформление? Где в БД эта запись, а то вебморда потеряна по сути
TSergey_ #
07:03
evyscr: спасибо преогромное, джобы убиты
07:03
ecilop: сочуствую, я тоже так попадал
07:04
режил только вслепую выбирая новый стиль
ecilop #
07:04
TSergey_: я вообще не могу стиля менять сейчас
07:04
TSergey_: неработоспособная морда вышла для этого юзеря
TSergey_ #
07:04
табом можешь перемещаться?
ecilop #
07:04
нет
TSergey_ #
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()
evyscr #
07:07
эм
07:07
db.noc.schedules.main.jobs.find({"jcls" : "sa.wipe_managedobject"})
B_M #
07:08
ecilop: noc.conf [customization]
07:08
туда глянь
evyscr #
07:08
не
07:08
./noc dbshell
TSergey_ #
07:08
evyscr: да, так правильнее db.noc.schedules.main.jobs.find({"jcls" : "sa.wipe_managedobject"})
07:09
в моем случае это тот же список
evyscr #
07:09
select * from main_userprofile;
07:09
ecilop: ^
ecilop #
07:10
evyscr: пнял, поменял на gray
evyscr #
07:13
посоны, а в алярмах у всех внизу полоска со страницами осталась?
ecilop #
07:14
fm -> alarms?
evyscr #
07:14
йеп
ecilop #
07:15
у меня пока там пусто, ничего непотребного
07:15
полосок лишних не наблюдается
07:16
брузлер - опера 12-ая
misak #
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
пустого
ecilop #
07:31
Напиши строки "ДО" и "ПОСЛЕ". Может соображу что надо.
misak #
07:40
ecilop: http://pastie.org/9490921
ecilop #
07:41
не. я в питоне бревно. Мне опиши что требуется из каких строк получить. Какая была до обработки, что требуется после. Регулярку может соображу тогда
misak #
07:45
TSergey_: у меня тоже логи забиты джобами ...
07:46
ты что-то сделал?
evyscr #
07:46
он сделал
07:47
misak: тебе, похоже, не регулярку надо править
misak #
07:48
ecilop: а что
ecilop #
07:49
misak: ты не мне адресовал наверное :) Мне давай что было "ДО" и что требуется "ПОСЛЕ". Тогда над регуляркой смогу подумать
07:50
набор питоновских команд мне не нужен
misak #
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
дефолт таг пустой
ecilop #
07:57
"ABB 206 5/5 default" - эта строка?
misak #
07:57
2014-08-21 11:59:35,551 [main.jobs] Changing sa.wipe_managedobject(189) status to F - объекта с ид 189 у меня уже нет, а он все хочет его удалить
evyscr #
07:57
db.noc.schedules.main.jobs.find({"jcls" : "sa.wipe_managedobject"})
07:58
читайте логи канала, они делают ваши волосы мягкими и шелковистыми-)
ecilop #
07:59
evyscr: "Раньше мои волосы были сухими и безжизненными. А теперь они шевелятся!"
misak #
07:59
http://pastie.org/9490976
evyscr #
07:59
а про default - его лучше убрать из результата выполнения данной команды в каком-то из скриптов
08:00
или чекать наличие default и пустоты с заменой на 1.
misak #
08:00
ecilop: default - это уже следующая
08:00
да, пустота заменяется на 0, а потом все вылетает потому как 0 невалдный таг
TSergey_ #
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()
ecilop #
08:02
Разве есть возможность появления слова default в ином контексте?
08:02
Если нет, то можно элементарно /\sdefault/ 1/
evyscr #
08:02
не надо так, наверное
08:03
там вообще, скорее s/^default\s*$/default 1/
ecilop #
08:05
а не так: s/\sdefault/ 1/m ?
08:05
" default" => " 1"
08:06
даже \s лишняя
misak #
08:06
TSergey_: спасибо!
ecilop #
08:06
раз там в 1 строке..
TSergey_ #
08:07
misak это все он evyscr :)
misak #
08:08
evyscr: пасиба
evyscr #
08:18
misak: http://dpaste.com/1KSMJYB
08:18
папробуй
08:19
если захочешь "default 1", то типа вписать его вместо ""
misak #
08:19
сейчас
08:19
да не, не нужен он вообще
freeseacher #
08:22
evyscr, та же фигня.
misak #
08:22
да
08:23
<type 'exceptions.NameError'>
08:23
global name 'rx_default_vlan' is not defined
evyscr #
08:23
a = self.rx_default_vlan.sub("", a)
misak #
08:24
<type 'exceptions.TypeError'>
08:25
expected string or buffer
evyscr #
08:25
хм
08:25
тады ой
misak #
08:26
а кстати, там дефолта уже нет в а
evyscr #
08:28
логично, он под первый регэксп не попал
08:29
странно тогда, что где-то он проявляется
misak #
08:32
я просто твою строчку a = self.rx_default_vlan.sub("", a) закомментил и заработало
08:34
чудеса
08:35
теперь и дефолтный скрипт работает
08:35
скорее всего мои дурни инженеры создали ВЛАНЫ без тагов
08:35
они и мешали
08:36
я их почистил в конфиге железки заработал скрипт
dvolodin #
09:57
https://www.evernote.com/shard/s57/sh/d8ab1f6e-646d-46f0-9706-d97494819cde/00816532089b33ef67fe7a35ca4b3156
09:57
все, кто хочет графики -- курите и давайте обсуждать замечания
zi_rus #
09:58
dvolodin, aggregation_method - метод агрегации: average
09:58
как это понимать
dvolodin #
09:58
так же как и в rrd
zi_rus #
09:58
если он для годового графика с агрегирует точки посуточно
09:59
покажет среднюю за сутки?
dvolodin #
09:59
возьмет среднее
09:59
да
zi_rus #
09:59
нахер не надо
09:59
нужен суточный максимум
dvolodin #
09:59
там есть
zi_rus #
09:59
(с практической точки зрения)
dvolodin #
10:00
Available aggregation methods are: * average * sum * last * max * min
10:00
дописал
zi_rus #
10:01
остальное многа букав
dvolodin #
10:01
осиливай их
zi_rus #
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
или падение
evyscr #
10:08
95% дайте
zi_rus #
10:08
evyscr, а можешь объяснить что это
10:08
dvolodin, короче открываешь какти и переписываешь :D
evyscr #
10:09
из всех выборок за период (напр. месяц) отбрасываются 5% максимальных
10:09
Максимальное из оставшихся и будет этим
zi_rus #
10:09
evyscr, для агрегации годная вещь, чтобы он не максимум брал, а вот так вот
10:10
а то авария случится, из-за петли канал забьет
10:10
и на агрегированном графике будет пик
10:10
а по сути он там не нужен
evyscr #
10:10
95% обычно для пира нужен
zi_rus #
10:11
еще не вижу возможность прогнозирования
10:11
ну типа есть график, добавить линию тренда, чтобы посмотреть когда параметр выйдет за пределы
10:12
я думаю с bgp в последнее время людям бы пригодилось
10:12
dvolodin, что скажешь? а то мы тут в воздух говорим. или ты сидишь записываешь? Ж)
freeseacher #
10:15
zi_rus, прогнозирование - жопка.
zi_rus #
10:16
freeseacher, а что такое?
10:16
линейная интерполяция
10:16
более солжные функции конечно более сложны
TSergey_ #
10:17
а где это работать-то будет? графики в FM?
dvolodin #
10:17
про 95-процентный персентиль я в курсе
10:18
только он считается не за период аггрегации, а за расчетный период при оплате по burst'у
10:18
и к методам агрегации отношения особого не имеет
10:18
metrics -- это просто число
10:18
скажем, вход на интерфейсе
10:19
тренды и определение аномалий - это уже постобработка
zi_rus #
10:19
dvolodin, ну ты же можешь его применить и к агрегации, у тебя есть период с данными которые ты агрегируешь в число
dvolodin #
10:20
если у тебя есть сырые данные за месяц - можешь посчитать и выгрузить в биллинг
zi_rus #
10:20
dvolodin, но ты еще не забывай, а то сделаешь графики потом тебя не допросишься
10:21
какие возможны источники данных?
10:21
по netflow сможет график или диаграмму набросать?
dvolodin #
10:21
zi_rus: источники - любые
zi_rus #
10:21
с помощью пинговалки задержку до ресурсов отсчитать?
dvolodin #
10:21
нативно понимает протокол графита
10:22
который карбон
zi_rus #
10:22
dvolodin, но мы его не понимаем. давай то что из нока можно сделать
dvolodin #
10:22
но можно сделать и загрузку из файлов и из любого коллектора
zi_rus #
10:22
как на счет экспорта графиков в png?
dvolodin #
10:23
легко
TSergey_ #
10:23
так это что-то отдельное? не к существующему модулю в ноке?
dvolodin #
10:23
он и сейчас умеет рендерить в png
zi_rus #
10:23
у меня есть use case когда график надо периодически отправлять на почту ддля вставки в отчет
dvolodin #
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
они умеют собирать данные и кидать их в карбон
TSergey_ #
10:28
pm storages?
dvolodin #
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
https://bitbucket.org/nocproject/noc/src/2e23ea0c506f865ac9f09c858535ef64ed8b3999/pm/storage/?at=feature/graphite
10:32
вот они
10:32
там сейчас есть обвязка вокруг whisper и ceres
10:32
далее
10:32
есть несколько форков carbon
10:33
в основном вокруг twisted
10:33
тут проще было сделать свой совместимый демон
10:33
https://bitbucket.org/nocproject/noc/src/2e23ea0c506f865ac9f09c858535ef64ed8b3999/pm/pmwriter/?at=feature/graphite
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
https://bitbucket.org/nocproject/noc/src/2e23ea0c506f865ac9f09c858535ef64ed8b3999/pm/apps/render/?at=feature/graphite
10:36
оно делает ровно то же, что и render graphite-web
10:36
там в каталоге graphite ровно то, что нужно нам от graphite-web
10:37
там, в основном, функции преобразования
10:37
и рендерилка графика
10:37
далее для отображения я сделал компонент для ExtJS
10:38
https://bitbucket.org/nocproject/noc/src/2e23ea0c506f865ac9f09c858535ef64ed8b3999/static/js/noc/core/Graph.js?at=feature/graphite
10:38
он дергает render (не важно, наш или графитовский) и через d3 отрисовывает графики
10:41
http://pastebin.com/9KVPynRf
10:41
http://pastebin.com/2hb2CZRG
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 может собираться различными методами
evyscr #
10:51
а настроить персонально для mo нельзя?
dvolodin #
10:51
можно
evyscr #
10:51
ок
dvolodin #
10:51
Привязка настроек к объектам
10:51
посмотри
10:51
там можно для объекта перебить часть настроек профиля
10:51
например, докинуть свое
aermike #
10:51
dvolodin: hi
10:52
for example, the metric for noc.interface.load.in DLink and ScreenOS can be collected by various methods
evyscr #
10:52
ага, сразу не разглядел
aermike #
10:52
it works with multidomain?
dvolodin #
10:52
aermike: why not?
aermike #
10:53
in screenOS
10:53
i have some problem to colect metrics
10:54
in cacti
dvolodin #
10:54
screenos uses propiertary mibs for subinterfaces
aermike #
10:54
yes
10:55
this is one problem
10:55
and i think DLINK too
freeseacher #
10:56
aermike, generic IF_MIB in Dlink.
aermike #
10:56
understand
10:56
in discution i think that
evyscr #
10:56
dvolodin: btw, не могли бы вы закоммитить one-line patch: NOC-1418
aermike #
10:56
i work with screen os
10:57
and problem appear when i try to capture all metrics in management interfaces
dvolodin #
10:58
evyscr: хорошо, закоммичу
aermike #
10:58
i mean all metrics for all interfaces, but snmp work on management interfaces
freeseacher #
11:00
dvolodin, у тя была хорошая тема с прошлым планом. фигачить слобо blocker для блокирующих.
11:00
тут то чего осталось ?
11:03
откуда взалась тема с тресхолдами на метрики ?
evyscr #
11:04
эта, а с cairo проблем не будет? чо-та у них забавные баги периодически всплывают.
freeseacher #
11:06
evyscr, если рисовать будет js поделка то не будет
11:07
а так да... каиро это не очень хорошо
11:09
а про тресхолды это просто большая тема.
11:09
они же могут быть запсимыми от других параметров
evyscr #
11:09
с агрегацией бы поподробнее развернуть...
11:11
или даже не с агрегацией, а с, м-м, паттернами хранения
11:12
неоднократно высказывались пожелания "сохранять n предыдущих графиков"
dvolodin #
11:20
https://www.evernote.com/shard/s57/sh/d8ab1f6e-646d-46f0-9706-d97494819cde/00816532089b33ef67fe7a35ca4b3156
11:20
вот набросал API для проб
zi_rus #
11:20
dvolodin, графит же не ломает существующий функционал, зачем ты его в отдельной ветке пилишь?
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
evyscr #
11:24
snmpbulk* не забудется?
dvolodin #
11:25
getnext?
11:25
он есть в скриптах
evyscr #
11:27
тут вопрос, возможно, об объединении проб с одного mo в один запрос
dvolodin #
11:29
в одном handler'е
11:29
они возвращают вектор
11:29
точнее -- dict
11:29
то есть если ты выполняешь cli-команду
11:29
и из нее можешь выдрать 5 значений
11:30
то ты делаешь одну функцию
11:30
и присваиваешь ей 5 метрик
freeseacher #
11:32
по этому я и не понитмаю с чего вдруго интерфейсы не вектор
dvolodin #
11:32
я для себя так решил
11:33
скалярному объекту строго соответсвует объект в базе
11:33
для вектора -- колическо выходных параметров определяется пробой
11:34
но, наверное, нужно как-то уметь группировать
freeseacher #
11:34
и все равно не понимаю все параметры которые есть у интерфейса в IF_MIB это вектор для интерфейса
dvolodin #
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 предпочтительнее
zi_rus #
11:42
снмп рулит
11:42
нок будет первой системой который будет собирать данные консолью
11:43
вызывайте дурку
freeseacher #
11:43
zi_rus, у меня есть значения который собрать по snmp не возможно
zi_rus #
11:44
freeseacher, ты представляешь если нок начнет дергать get_interfaces каждые пять минут только для сбора счетчиков
freeseacher #
11:44
zi_rus, не надо 5 минут
11:44
даже примерно не надо
zi_rus #
11:44
а другим надо
11:45
иногда даже 1 минута нужна
11:45
не get_interfaces так другое
freeseacher #
11:45
гет интерфейсов надо сделать разово для сопоставления данных в базе с ifindex
zi_rus #
11:45
get_interface_counters нужен
freeseacher #
11:46
это будет не через активатор.
11:46
это другая подсистема
11:46
кстати. dvolodin
dvolodin #
11:46
эээ
11:46
стоп
freeseacher #
11:46
проба будет делать сама ?
dvolodin #
11:46
interface_discovery это делает
zi_rus #
11:46
стоим
freeseacher #
11:46
нет, я таки сижу :)
11:47
интерфейс дискавери узнал про интерфейсы. и их ифиндексы
11:47
админ задал роль порта в мордочке
11:47
для некоторых ролей портов есть возможность собирать данные
11:49
проба пришла за конфигом и узнала что ей надо собирать значения для этого порта
11:49
а еще бывают не только порты. а очереди на плате.
11:50
и тут логика пасует
zi_rus #
11:50
где-то горит поле конопли, но дует в другую сторону. я ничего не понимаю
freeseacher #
11:50
или ресурсы на acl-и
11:50
как подцепить пробу к ним ?
11:51
видимо такие проверки надо подцеплять в object profile
11:53
или такие проверки должны быть привязаны к инвентори
dvolodin #
11:53
freeseacher: почему это логика пасует?
freeseacher #
11:54
нее
dvolodin #
11:54
у тебя пробы могут быть привязаны к объектам в inventory
freeseacher #
11:54
я ее перезапустил и получилось все
11:54
вот вот
dvolodin #
11:54
ну а что тебя смущает?
freeseacher #
11:54
ничего не смущает
11:54
мы к одной идее пришли
dvolodin #
11:55
https://www.evernote.com/shard/s57/sh/d8ab1f6e-646d-46f0-9706-d97494819cde/00816532089b33ef67fe7a35ca4b3156
11:55
вот что получит pmprobe
11:57
для объектов в inventory явно понадобятся какие-то фильтры для настройки
11:58
скажем, если тебе нужно мониторить сервисные карты, то можно указать, скажем, модель, потребовать, чтобы карта не просто валялась на складе, а была установлена, ну и навесить metric set
11:58
и будет у тебя полная автоматика
11:59
воткнул новую карту в железку, дернулся asset discovery
11:59
и в следующую выкладку для noc-pmprobe попадет и твоя карта
freeseacher #
11:59
dvolodin, а есть dymmy объект в inv ?
dvolodin #
12:00
?
freeseacher #
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
dvolodin #
12:04
https://www.evernote.com/shard/s57/sh/d8ab1f6e-646d-46f0-9706-d97494819cde/00816532089b33ef67fe7a35ca4b3156
12:05
посмотри там ObjectConfig
freeseacher #
12:05
ye
dvolodin #
12:05
поправил
freeseacher #
12:05
ну
dvolodin #
12:05
добавил еще model
12:06
так можно будет добавлять мониторинг различных карт
12:06
что касается твоей проблемы -- я думаю нужен просто wizard
freeseacher #
12:07
да
dvolodin #
12:07
ты ему говоришь, что у тебя новая железка
freeseacher #
12:07
при чем желательно с бородой и в шляпе
dvolodin #
12:07
в ней столько-то портов или вообще выбираешь шаблон
12:07
типа -- 24 портовый свич 10/100 с 4 sfp
freeseacher #
12:07
дим, порты какнить у всех уже мониторятся
dvolodin #
12:08
с другой стороны
12:08
у нас активно используется десятка полтора моделей свичей доступа
12:08
всего
freeseacher #
12:08
согласен.
dvolodin #
12:08
долго ли моделей накропать
12:09
особенно учитывая то, что они есть и у вас
12:09
:)
freeseacher #
12:09
:)
dvolodin #
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
freeseacher #
12:11
дык я про pm
dvolodin #
12:11
я согласен с zi_rus -- у них горят конопляные поля, но ветер дует не в его сторону
12:11
а в мою
12:11
:)
freeseacher #
12:11
если мне надо мониторинг вентиляторы
12:12
как ?
dvolodin #
12:12
встроенные или отдельные?
freeseacher #
12:12
встроенный
12:12
не
dvolodin #
12:12
там явно вектор будет
12:12
определяем тип
12:12
noc.fan.xxxxxxxx
12:13
ты просто говоришь в metric set -- и вентиляторы мне тоже надо
freeseacher #
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
вот эти
dvolodin #
12:13
ну и чудно
freeseacher #
12:13
метрику я куда привязываю ?
dvolodin #
12:13
на managed object
freeseacher #
12:13
нихачу.
dvolodin #
12:13
ну или на тушку в inventory
freeseacher #
12:14
хочу на mo profile
dvolodin #
12:14
ну и привяжи, я не против
12:14
все, что можно привязать к объекту, можно привязать и к профилю
12:14
почитай там
12:14
то есть ты декларируешь, что вентиляторы тебя очень даже интересуют
freeseacher #
12:14
ибо mo profile для меня роль устройства с его типом
dvolodin #
12:15
а дальше будет зависеть от того, есть ли у тебя пробы
freeseacher #
12:15
вот вот
dvolodin #
12:15
если есть -- выдернет параметры
freeseacher #
12:15
я привязал к роли устройства - надо мониторить вентиляторы.
12:15
а для конкретной модели устройства написал пробу
dvolodin #
12:15
ну и чудно
freeseacher #
12:15
которая отдает сколькото вентиляторов
dvolodin #
12:16
они у тебя срастутся
12:16
как раз по MetricType
12:16
допустим он у тебя вообще векторный
freeseacher #
12:16
да
12:17
тем не менее спустя полгода я таки напищу assert_discovery котороая будет обнаруживать для хуавея сколькко у него фентиляторов
12:17
что мне надо будет сделать ?
dvolodin #
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. и так далее
freeseacher #
12:21
ок
12:21
следующая грядка пошла
12:21
тресхолды генерят евенты ?
dvolodin #
12:23
да, они и так их генерят уже
12:23
PM OK | PM WARN | PM FAILURE
freeseacher #
12:25
и еще момент таки проба по телнету сама пойдет ? или активатор заставит ?
dvolodin #
12:25
сама пойдет
12:25
зачем грузить активатор
12:26
активатор все-таки больше на скрипты расчитан
freeseacher #
12:26
тоесть проба будет импортить в себя весь код активатора почти
dvolodin #
12:26
а тут явно нужно грабить команды
12:26
да не, там отдельные классы для cli_provider
freeseacher #
12:26
у меня сейчас уже есть на базе активтаора несколько собиралок метрик
dvolodin #
12:27
одно другому не мешает, наверное
freeseacher #
12:27
мешает
12:27
max_sripts
12:27
надо что бы проба его уважала
dvolodin #
12:28
1 для железки
12:28
и хватит
12:29
:)
misak #
12:50
dvolodin: http://pastie.org/9491498 - у меня тут локальные патчики накопились, они наверное неправильные, но может понадобятся ...
dvolodin #
12:52
кинь тушенку для get_bfd session
12:53
там вместо запятых пробелы бывают?
12:56
патчики применю, да
misak #
12:59
да, бывают
12:59
все время забываю как делать тушенку
dvolodin #
13:00
./noc debug-script get_bfd_sessions <железка> -o <файл тушенки>
Night_Snake #
13:05
Камрады, а подскажите еще пожалуйста, как снипетту скормить параметр. Т.е. я объявляю {% var port str %}. Задаю эту переменную перед выполнением сниппета.
13:05
А он мне говорит что port undefined =(
misak #
13:08
послал
dvolodin #
13:22
по pm еще соображения будут?
hsychla_ #
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
zi_rus #
13:51
hsychla_, set
13:51
logsize = 50000000
13:51
logfiles = 5
13:51
for log rotation
13:52
in noc daemons configs
hsychla_ #
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?
zi_home #
15:36
hsychla_, i am talking about internal solution
15:37
hsychla_, check sa > reports > failed scripts. may be you have many fails
Tweet
Share this page
Share this page: Tweet