nocproject.org
06:05
влил изменения из основной ветки в noc-ui
06:06
сначала прочитал наоборот
06:07
чуть не побег обновлятсо
06:10
уж лучше наоборот
06:21
все никак не могу понять почему когда натравиливаю скрипт на большое кол-во железок, всегда находится несколько, где он залипает, причем железки разные
06:24
в логах status=ERR_TIMEOUT, reason=Cancelled
06:25
это у шедулера
06:25
в логах активатора для той же железки и того же задания
06:25
Cancelling stale script Cisco.IOS.get_config
06:34
за следующий заход проходится по железке?
06:38
как сказать следующий. вот сегодня ночью он прошелся и забрал конфиг, а сейчас с утра я запустил для проверки и он не смог этого сделать
06:39
но зато забрал с других у кого не смог
06:41
это нормальная ситуация
06:41
смотреть надо, иногда действительно железки залипают
06:43
06:43
это связано только со встроенными скриптами? не хочется чтобы такое произошло для более важных задач
06:44
иконка у меню navigation не полностью уместилась
06:45
да, я вижу, немного срезана снизу
06:45
можно попробовать другую подложить
06:46
но в целом, look&feel уже приятный
06:47
на экране когда все табы закрыты, можно повесить большое красивое лого
06:49
dvolodin, про залипание скриптов. но это не нормально, по факту - поставленная задача не была выполнена
06:53
#2.18 с лого
06:55
zi_rus: если железка не отвечает, то лучше тупо прибить скрипт и запустить заново
06:55
что noc и делает
06:55
у железки банально VTY могут закончиться
06:55
или лимиты сработать
06:56
ок, но оно не запускает заново, оно отменяет и идет дальше
06:56
для конфига - да
06:57
в следующий раз заберет
06:57
для MRT указывается в качестве параметра количество попыток для map задач
07:03
dvolodin, нет смотрите, я поставил задачу, нок должен раз в сутки собирать конфиги со всех железок, результате я получаю, что из 260 цисок конфиги не получены с 4, почти 2% - при чем абсолютно случайные железки (что еще больше удручает). и это относится не тольк
07:03
о к сбору конфигов, запуск версион_инвентори на тех же объектах приводит к тому же результату около 2% не обработано как надо
07:04
погоди
07:04
сбор конфигов запусти каждые 300 секунд
07:04
у него отдельное расписание для сбора конфигов
07:05
логику работы это у него изменит
07:05
это штатный режим работы
07:05
cm.pull_config запускается часто
07:05
и смотрит свое расписание
07:06
активаторов в пуле у тебя сколько?
07:10
значит система не справляется, 260 ssh'ей махом, это жестоко
07:10
сделай 4 активатора в пуле и поставь cm.pull_config раз в 300 секунд
07:11
и ограничь каждый для начала в 50 сессий
07:11
не понимаю как это повлияет на остальные скрипты
07:13
положительно повлияет
07:14
как минимум, будешь использовать все ядра сервера для парсинга регулярных выражений
07:14
да
07:14
у python - green threads
07:14
да еще и GIL
07:15
каждый скрипт - отдельный thread в активаторе
07:15
и еще есть отдельный thread в котором весь I/O крутится
07:16
видимо у тебя при максимальной нагрузке лезут какие-то артефакты
07:16
активатор достаточно умный и часть проблем минимизирует внутренними механизмами
07:17
например, пытается отстрелить мертвые thread'ы
07:17
причем делается это еще тем хаком
07:17
надеюсь это не связано что сервер включен 100-мегабитным портом))
07:17
не связано
07:18
там все-таки TCP под SSH
07:19
можешь помониторить загрузку, я сомневаюсь, что он 100 мегабит ssh'а прокачает
07:20
так вот, если ты сделаешь пул - ты запустишь несколько процессов и в каждом из них будет меньше thread'ов
07:20
Добрый день :)
07:21
Как импортировать все мибы из local/share/mibs? sync-mibs не грузит
07:21
он их уже импортировал, если они там лежат
07:21
а так
07:21
./noc import-mib <path>
07:25
dvolodin, тогда можно маленький ликбез? а как создать 4 активатора на одоном сервере? у них будет одно имя? что указывать в свойствах managed object?
07:28
в noc-launcher'е в разделе активатор
07:29
config.0 = etc/noc-activator.conf
07:29
config.1 = etc/noc-activator.conf
07:29
ну и .2 и .3
07:29
имя у них одно, конфиг тоже один
07:34
редактирование профиля юзера починил, поиск заработал
07:35
остались какие-нибудь блокирующие факторы?
07:35
07:36
если только #5.1
07:38
dvolodin: Верхняя менюшка с именем профиля и название компании - не всегда показывается.
07:39
В iframe старые приложения не влязят. Режутся сверху.
07:41
dvolodin_: #2.13. Приложения режутся сверху. Даже при первом запуске.
07:42
#2.17 В хроме - пропадают все иконки, а не только у юзера
07:42
появляются только при релоаде
07:44
при закрытии таба - активным становиться самы первый таб. А не предыдущий активный.
07:48
по #2.13 в каких приложениях режется?
07:49
fm/events
07:49
kb/kb
07:50
asm/assigned Addresses (если пойти внутрь по префиксам
07:52
есть поправка в профиль небольшая
07:52
в профиль /sa/profiles/Huawei/VRP/get_mac_address_table.py
07:52
добавляет дергание маков с S23[[
07:52
добавляет дергание маков с S23ХХ
07:54
только в скрипте дебагом все отрабатывает норамльно а на жифой железке нет
07:54
точнее в вебморде
07:55
вот я сам хочу понять
07:55
может лог дать*
07:58
08:00
08:02
dvolodin_, я так понимаю он пытается по снмп версию получить и ем что то от этого ненравится
08:03
нет, это регулярное выражение не попало
08:04
начни с отладки get_version под эту платформу
08:05
dvolodin_: обновился - все хорошо :) Может не убирать breadcrumbs. Еще и туда-сюда можно ходить - удобно :)
08:06
KTO-TO_: да, я пока их вернул
08:07
и welcome немного отформатировал
08:07
на время хватит
08:07
dvolodin_, создал 4 активатора в конфиге лаунчера, теперь 9 железок оказались в пролете когда запустил версион_инвентори
08:07
посмотри в логах - сессий им хватало?
08:07
и SNMP настроен на них?
08:07
16 script threads (10000 max)
08:07
dvolodin_: Что значит - invalid префикс в ASM? Возникает, когда нажимаю на конкретный IPшник
08:08
в максимуме было 73 script threads (10000 max)
08:08
потом начало снижаться
08:10
dvolodin_,снмп не прописан в ноке, хотя на железках он есть, но это опять же не решит проблему со скриптами которые не могут по снмп получить данные
08:11
dvolodin_: А отчеты из-за breadcrumbs могли сломаться?
08:13
dvolodin_, 50 max scripts?
08:14
пробую
08:14
кстати перед слиянием неплохо бы 4,1 исправить
08:16
2011-09-28 12:08:56,483 SCRIPT RESULT: script-10.21.133.5-Huawei.VRP.get_version
08:16
<ss_> {'platform': 'S2326TP-EI', 'vendor': 'Huawei', 'version': '5.70'}
08:16
вывод ./noc debug-script get_version 33-machin1p1
08:16
что непойму что не нравится то
08:16
dvolodin_, при 50 каждая третья оказалась в пролете
08:16
sa/profiles/Huawei/VRP/supported.csv имеет какое либо значение?
08:17
ss_: ./noc debug-script -c- get_version 33-machin1p1
08:17
zi_rus: поставь 100
08:18
dvolodin_, это дебаг с snmp?
08:20
dvolodin_, так 3 пролетело
08:23
SNMPv2-MIB::sysDescr.0 = STRING: S2326TP-EI
08:23
Huawei Versatile Routing Platform Software
08:23
VRP (R) software,Version 5.70 (S2300 V100R005C01)
08:23
Copyright (C) 2003-2010 Huawei Technologies Co., Ltd.
08:23
это парсер
08:23
rx_ver_snmp=re.compile(r"Versatile Routing Platform Software.*?Version (?P<version>[^ ,]+),?
08:23
.*?Quidway (?P<platform>(?:NetEngine\s+)?[^ \t\n\r\f\v\-]+)[^\n]+",re.MULTILINE|re.DOTALL|re.IGNORECASE)
08:29
как то не пойму как сделать так чтобы проверялась новая строка и не сломать старую проверку, новый профиль городить не хочу
08:29
можно сделать два разных регулярных выражения
08:30
просто добавит ниже x_ver_snmp=re.compile(r"blablabla
08:30
?
08:30
rx_ver_snmp2 =
08:30
а дальше так
08:32
match = self.find_re([rx_ver_snmp1, rx_ver_snmp2], s).search(s)
08:32
ога понял логику
08:32
спасибо шаз парсер тока нарисую и можно уже частично будет добавит еще одну серию коммутаров
08:33
да оно там и есть уже в этом скрипте
08:33
rx=self.find_re([rx_ver, rx_ver_snmp],v)
08:33
?
08:34
где есть то?
08:35
Так вот правильно будет? rx=self.find_re([rx_ver, rx_ver_snmp1, rx_ver_snmp2],v)
09:01
dvolodin_: в IPAM не работает change_address.. Почему то выполнятся начинает view_vrf_index и выдает "Invalid prefix"
09:27
Кто-нибудь на Фре еще сталкивался с проблемой чтобы скрипты залипали на некоторых железках при запуске на большом кол-ве объектов ~300???
09:34
а то как-то непонятно, лезть ди мне в дебри тонкого тюнинга FreeBSD или надо вносить изменения в NOC
09:37
FD_SIZE для select() на фре какой?
09:38
polling_method = poll попробуй поставить в etc/noc.conf
09:38
а совсем в идеале, попробуй заставить работать kevent
09:38
он есть, но под макосом глючит неимоверно
09:51
запланируем на завтра слияние веток
09:51
если не будет обнаружено критичных багов
09:55
dvolodin_, polling_method = poll не помог. с polling_method = kevent тот же результат. что есть FD_SIZE и как его посмотреть (я не настолько хорошо знаю эту систему)?
09:58
оставь тогда poll
09:58
у активатора в логах есть что-нибудь?
10:00
у активатора как всегда Cancelling stale script Cisco.IOS.get_version
10:04
даже вот как
10:05
число 73 script threads (100 max) растет до 73
10:05
потом снижается, доходит до 4, висит 2 минуты и начинает Cancelling stale script
10:11
ну да
10:11
что в это время на железках происходит?
10:11
и dmesg посмотри
10:22
dvolodin_, как я посмотрю что на железках происходит?
10:22
в логах
10:23
и еще, у тебя там каких-нибудь firewall'ов по пути нет?
10:23
за syn-flood нас не держат?
10:25
dvolodin_, нету, голой пятой точкой с белым ip в сеть смотрит
10:31
dmesg на фре еще посмотри
10:32
там пусто
10:36
dvolodin_,можно ли какой нибудь дебаг включить чтобы активатор свою работу в файлик писал, чтобы посмотреть что происходит при залипании?
10:37
если только полный дебаг на нем
10:39
хоть так, как это сделать?
10:42
dvolodin_, log_cli_sessions = true - и в логах валится трейсбек
11:00
dvolodin_, кажись нашел
11:00
2011-09-28 14:50:33,863 [SSH: 1.1.1.1] on_read: '\r\n% Error in authentication.\r\n\r\ncatalyst>'
11:01
не смог получить enable
11:02
хм)
11:02
может у тебя что то теряется по пути
11:03
или без таймаутов иногда пролетает мимо
11:03
и железка не успевает словить enable pass
11:04
больше верю в таймауты
11:05
dvolodin_: Как починить ipam? :)
11:05
dvolodin_: Может подиагностировать чего?
11:06
а на другой железке даже обычный доступ не смогла взять
11:20
вопрос есть по get_version
11:20
там какие переменные есть
11:20
platform version и все?
11:21
и все?
11:21
как серийник пишется?
11:23
vendor platform version attributes
11:23
то что по крайней мере имеется в профиле cisco.ios
11:27
# Object Vendor Plaform Version HW version Serial Number Boot PROM - вот так для длинков
11:27
жаль, для цисок серийник не пишет
11:28
сейчас распасрсить пытаюсь вывод
11:45
Вопрос как добавить в
11:45
return {
11:45
"vendor" : "Huawei",
11:45
"platform" : platform,
11:45
"version" : match.group("version"),
11:45
}
11:45
еще одну переменную с условием того что она может и отсутввовать
11:45
HW version
11:45
например
11:48
пилин, опять маков нет
12:03
Канаш FTTB
12:03
2 33-machin1p1 Huawei S2326TP-EI 5.70 V100R005C01
12:03
версион инвертори допилил
12:04
маки тоже вроде
12:06
Сделал абсолютно чумовую штуку для peering management
12:06
Client Cone Analisys
12:06
позволяет оценить связность пира
12:07
и его уникальную связность
12:09
как пользоваться? :)
12:11
эх. слить ветки надо уже :)
12:11
А графики строить? :)
12:11
пока не надо - там urlresolver поломан...
12:11
гарфики связности ?
12:11
graphviz ?
12:11
или bgpviz ?
12:11
Например :)
12:11
про последний не знаю
12:12
Это который в реальном времени рисует? :)
12:12
тормозной но для первого раза просто срывает с катушек
12:14
dvolodin_, что скажешь 2011-09-28 14:50:33,863 [SSH: 1.1.1.1] on_read: '\r\n% Error in authentication.\r\n\r\ncatalyst>'
12:15
zi_rus: а что я скажу
12:15
послала наш NOC вредная железка
12:15
ведь нок послал ей неправильный пароль
12:15
надо подумать, как отлавливать это
12:15
zi_rus: есть ли в том вина NOC'а?
12:16
он гонит все подряд и возможно захлебывается
12:16
сам причем
12:16
а может железка не успевает
12:16
1 раз успевает а второй раз нет?
12:16
а почему нет
12:17
никогда не видели как промт у циски тормозит чтоли?)
12:17
это видел, но тут не в этом дело
12:17
нок послал пароль когда его поросили
12:18
но послал что-то не то раз железка этого не приняла
12:18
ну вот когда я руками набираю пароль в консольке - если слишком быстро набираю, оно мне лупит что неверный пасс. Хотя верный)
12:18
а чуть помедленнее - прокатывает
12:18
повторюсь - руками.
12:19
пароль заучен до автоматизма уже)
12:19
у меня тоже, но опечатки имеют место
12:21
все равно, приходим к тому что надо создать исскуственную задержку на неизвестном этопе
12:23
Huawei/VRP/get_mac_address_table.py никто не знает есть тут поиск по маку
12:23
вот кусок кода
12:23
for l in self.cli(cmd).splitlines():
12:23
match=rx_line.match(l.strip())
12:23
if match:
12:23
if vlan is not None and int(match.group("vlan_id"))!=vlan:
12:23
continue
12:23
if interface is not None and match.group("interfaces")!=interface:
12:23
continue
12:23
if mac is not None and match.group("mac")!=mac:
12:23
continue
12:23
r.append({
12:23
"vlan_id" : match.group("vlan_id"),
12:23
"mac" : match.group("mac"),
12:23
"interfaces": [match.group("interfaces")],
12:23
"type" : {"dynamic":"D","static":"S","learned":"D","Config static":"S","security":"security"}[match.group("type").lowe$
12:24
})
12:24
return r
12:24
добавил это if mac is not None and match.group("mac")!=mac:
12:24
continue
12:24
неработате
12:24
как сделать дебаг задав мак?
12:33
./noc debug-script ..... mac="'<mac>'"
12:34
dvolodin_, спасибо
12:37
так понял ошибку
12:38
адресс нужно отдавать как H-H-H MAC address
12:38
а не xx:xx:xx:xx:xx:xx
12:40
Не подскажете где и как конвертировать его?
12:41
from noc.sa.interfaces.base import MACAddressParameter
12:41
MACAddressParameter().clean(mac)
12:41
это для нормализации
12:41
а так s = mac.replace(":", "-")
12:41
мне наоборот надо отдавать адрес как h-h-h
12:42
2011-09-28 16:39:59,187 [script-10.21.133.5-Huawei.VRP.get_mac_address_table] cli(display mac-address 00:08:DC:E2:2E:61) returns:
12:42
---------
12:42
" ^\nError: Wrong parameter found at '^' position.\n"
12:42
s = "%s-%s-%s" % (s[:4], s[4:8], s[8:])
12:43
<dvolodin_> не совсем понял
12:43
еще надо не все тупо менять адреса а только если есть ошибка Error: Wrong parameter found
12:43
как в сиське
12:44
у нока же функция нормализации маков есть, чтобы с разных железок был единый вид в итоге
12:44
есть
12:44
яж говорю собираемые маки нормализуются
12:45
а вот чтобы сделать поиск по маку надо мак конвертнуть в h-h-h
12:45
но не во всем профиле а только если первый вариант не прошел
12:45
ибо изменения вносятся в рабочий профиль хуявей vpr
12:46
чтобы просто добавить еще одну поддердживаемую железку
12:46
даже не ону а серию из S2300 S3300 S5300
12:47
я слабы программер, мне проще новый профиль нарисовать чем менять существующий, но не хочется делать их сотни
12:47
в обратную сторону надо
12:49
>>> s = "12:34:56:78:9a:bc"
12:49
>>> s.replace(":", "")
12:49
'123456789abc'
12:49
>>> s = "12:34:56:78:9a:bc"
12:49
>>> s = s.replace(":", "")
12:49
>>> s
12:49
'123456789abc'
12:49
>>> s = "%s-%s-%s" % (s[:4], s[4:8], s[8:])
12:49
>>> s
12:49
'1234-5678-9abc'
12:49
>>>
12:52
dvolodin_, я не понял в какой части кода профиля Huawei/VRP/get_mac_address_table.py это написать
12:53
if mac is not None:
12:53
cmd+=" %s"%self.profile.convert_mac(mac)
12:53
вот есть строка
12:55
вот как то в ней надо сделать
12:58
ну да
12:59
там mac и покоцай
12:59
там надо как у циски если ошибка то коцать если нет то так как есть
12:59
лучше сразу покоцать
12:59
except self.CLISyntaxError:
12:59
cmd=cmd.replace("mac address-table","mac-address-table")
12:59
типа того
12:59
у киски это с другим связано
12:59
show mac address table
13:00
show mac address-table vs show mac-address-table
13:00
тут если я щаз покоцаю то не будет работаь профил vrp
13:00
т.е. совместимость пропадет
13:00
на хуавее надо сразу сконвертить мак из общепринятого до хуавеевского
13:00
хм а профиль что такой?
13:01
тогда как красиво порезать*
13:03
я же сказал
13:03
mac = mac.replace(":", "")
13:03
mac = "%s-%s-%s" % (mac[:4], mac[4:8], mac[8:])
13:04
if mac is not None:
13:04
cmd+=" %s"%self.profile.convert_mac(mac)
13:04
except self.CLISyntaxError:
13:04
mac = mac.replace(":", "")
13:04
mac = "%s-%s-%s" % (mac[:4], mac[4:8], mac[8:])
13:04
cmd+=" %s"%mac
13:04
так?
13:04
нееее
13:05
if mac is noc None:
13:05
mac = mac.replace(":", "")
13:05
mac = "%s-%s-%s" % (mac[:4], mac[4:8], mac[8:])
13:05
cmd += " %s" % mac
13:05
чем except не нравится?
13:06
профиль же совместимость потеряет
13:06
vpr
13:06
не потеряет
13:06
а, юблин
13:07
2011-09-28 17:06:14,412 SCRIPT RESULT: script-10.21.133.5-Huawei.VRP.get_mac_address_table
13:07
[{'interfaces': ['Eth0/0/24'],
13:07
'mac': '00:08:DC:E2:2E:61',
13:07
'type': 'security',
13:07
'vlan_id': 102}]
13:07
отработал но надо совместимость
13:08
лучше в профиль добавить convert_mac
13:08
except self.CLISyntaxError: это я как то не прально сделал
13:08
эээ это как?
13:08
сейчас
13:11
13:11
вот патчик для профиля
13:11
и потом
13:11
if mac is not None:
13:11
cmd += self.profile.convert_mac(mac)
13:11
тьфу
13:11
cmd += " %s" % self.profile.convert_mac(mac)
13:14
r4828:86699b3bf726 в noc-ui
13:14
Client Cone Analysis для peer management
13:14
давай сливай ветки))
13:15
dvolodin_, работает
13:16
я тоже хочу посмотреть(
13:16
теперь впорос а как это отразится на другом железе huawei с профилем VPR
13:17
т.е. если мак должен передаватся железке как hh:gg:jj:kk:ll;aa
13:17
а не H-H-H
13:17
?
13:18
в веб морде все отлично!
13:18
)
13:18
но вопрос по совместимости остался
13:24
нормально оно схавает
13:25
ладно тогда оставлю
13:25
завтра проверю отсальные скрипты
13:52
remote: added 177 changesets with 2504 changes to 2342 files
13:52
неслабо так веточки разошлись
13:52
все, слил
13:53
смержил noc-ui и noc
13:53
и залил все в noc
13:56
сейчас, потестирую сначала
13:56
ага я пока пошел снапшот виртуалки сделаю
13:57
прежний то интерфейс все ?
13:57
ну в ифрейме то старые аппликейшены то есть
13:57
или как то к нему вернуться можно ?
13:59
преждний - все
13:59
только огрызки в iframe
13:59
ага.
13:59
тогда таки придется плавно
14:04
dvolodin_, извиняюсь за выражение, но все ифреймы перекоебило
14:05
все сместилось примерно на ширину бокового меню
14:05
а еще Cone Analisys вываливается с трейсбеком
14:06
14:07
и так и не починилось, что приходится делать рефреш когда логинишься под другим юзером
14:16
я вроде обновился
14:16
хоть и с проблемками
14:17
пропатчил их
14:23
zi_rus: проверть, что prefix_list_optimization есть в etc/noc.defaults
14:27
вроде взлетели в двух местах
14:27
можно сосредоточиться на отлове багов
14:28
и на том, для чего все затевалось - красивой и удобной морде для FM
Share this page
Share this page: