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: 18.03.2014
freeseacher #
03:52
Ребята а как сделать массовую реклассификацию ?
lexus-omsk #
03:58
глянь в ./noc help events
03:59
там по различным параметрам можно задать
TSergey #
04:02
lexus-omsk: скажи, плс, шелл должен видеть, например MySQLdb? думаю как ловчее поотлаживать код
freeseacher #
04:02
lexus-omsk, спасибо
04:03
TSergey, ты его в систему поставил или в виртуаленв нока ?
lexus-omsk #
04:03
TSergey: откуда там Mysql? хотя если импортируешь - почему нет
04:04
а и да, надо в virtualenv запихнуть, наступал на тамкие грабли, когда networkx подключал
TSergey #
04:04
нет, ничего я еще не ставил, ищу примеры и смотрю как отлаживаться
freeseacher #
04:05
добавь в
04:05
# cat etc/requirements/local.txt
04:05
ipython==0.13.2
04:06
с айпитоном повеселее код писать под консолью
04:06
потом типа ./bin/pip install -r etc/requirements/local.txt
04:06
что бы он поставился
TSergey #
04:09
спасиб
freeseacher #
04:14
lexus-omsk, а у тя FM в бою ?
lexus-omsk #
04:15
да
TSergey #
04:22
хорошо, а шелом можно дернуть данные из постгресс-базы на другом серваке?
freeseacher #
04:27
TSergey, можно
04:27
если там так можно
04:34
TSergey, например вот так http://wiki.postgresql.org/wiki/Psycopg2_Tutorial
TSergey #
04:35
спасиб, я думал можно какие-то ноковские библиотеки пользовать
04:36
но "import psycopg2" шелл тоже съел
freeseacher #
04:39
"однострочники" случше писать на самом хосте нока
04:39
и откуда вдруг у тя удаленная база ?
04:39
нок и постгрес на разных хостах ?
TSergey #
04:39
так биллинг же, лезу за данными
freeseacher #
04:53
lexus-omsk, а можно ка кто отключить отображение ping ok в event-ах ?
dvolodin #
04:56
TSergey: по секрету скажу, если в биллинге тебе нужны несколько таблиц, ты можешь сделать на них модели
04:57
и NOC умеет держать несколько коннектов к разным базам
04:57
посмотри в settings.py
TSergey #
04:58
dvolodin: да, мне именно несколько таблиц и нужно
dvolodin #
04:59
почитай доку по django'вски моделям
04:59
там описан случай, когда модель создается по имеющейся таблице
05:00
то есть ты можешь вполне сделать интерфейс для получения данных по юзерам в ORM
lexus-omsk #
05:00
freeseacher: лучше спроси у более авторитетного источника, пока он доступен :) у меня они как-то странно отображаются, когда как
freeseacher #
05:02
нее
05:02
сначала я спрошу у неавторитативного днса
05:03
потом если не получу ответа уже у авторитативного :)
05:03
я в FM новичок :)
05:13
не смотря на то что тест проходит после реклассификации события не определются
05:13
так и должно быть ?
05:13
регулярка точно матчится
05:14
надо перезапускать нок да ?
05:16
во !
05:16
зи точно знает
05:16
zi_home, я тут начал смотреть в сторону FM-а поможешь новичку ?
zi_home #
05:17
pflfdfq djghjc
05:17
задавай вопрос
freeseacher #
05:17
после добавления нового правила чего надо сделать что бы оно применилось ?
05:17
рестарт нока ?
zi_home #
05:18
да, оно при рестарте в классификатор попадает, кажется достаточно только его рестартануть
freeseacher #
05:19
ага
05:20
как убрать с экрана события Ping Ok
zi_home #
05:21
с экрана?
05:21
никак, это же ивент
05:22
или игнорить их хочешь?
05:22
тогда их просто не будет
05:22
ни на экране ни в базе
freeseacher #
05:22
тоже не вариант
05:23
ладно преодалею это :)
05:23
как принято поступать с имеющимися правилами ?
05:23
я тут хуавей слегка копнул
05:23
у меня не бъется дофига регулярок
05:23
в основном изза пробелов в левых местах.
zi_home #
05:24
не замечал проблем с пинг ок, их только много когда нок рестартанешь (точнее активатор) он начальное состояние показывает и больше эти ивенты не высовываются
freeseacher #
05:24
мне править текущие и отправлять их в апстрим или дублировать ?
zi_home #
05:25
freeseacher, наш второй Дмитрий любил подкручивать regexp чтобы оба сообщения одним правилом обрабатывались, мне кажется что если сообщения сильно различаются то лучше пару правил иметь, так что это индивидуально
freeseacher #
05:26
нет сообщения одинаковые. но разница в двойном пробеле
05:26
думаю что это бага на стороне конкретной прошивки
zi_home #
05:27
тогда конечно существующее правло лучше исправить
freeseacher #
05:28
а кто хуавеевские правила комитит ?
05:28
лучше с ними или самому ?
zi_home #
05:28
тут вообще всеми правилами занимался один человек, сам знаешь кто, но как видишь его нет
TSergey #
05:54
Huko: ты про антаги на портах вчера спрашивал?
Huko #
05:54
TSergey: да, я
TSergey #
05:55
http://kb.nocproject.org/pages/viewpage.action?pageId=12746794
Huko #
05:55
таки вымучил свой первый пируль, кривой новаерное, но работает как мне надо
TSergey #
05:55
ну и поздравляю :)
Huko #
05:56
да я 2 часа тупил куда этот пируль добавлять надо :)
TSergey #
05:57
Huko: рассказывай чего делаешь в пируле
Huko #
05:58
твой пируль мне бы вчера жизнь облегчил :) как раз сейчас задача поменять профайлы на клиенских портах, подсмотрю у тебя
05:59
TSergey: заходит на железку, ищет порты с заданым untagged vlan'ом и прописывает ему заданный дескрипшн
06:00
http://pastebin.com/aLatR66x вот и вся магия
TSergey #
06:00
зачем правишь дескрипшн? чтобы проще смотреть на железке?
Huko #
06:01
да, есть железки на которых под 400 портов, с описванием гораздо веселей
zi_home #
06:01
это не пируль а сниппет
TSergey #
06:01
ага, я тоже хотел это уточнить
Huko #
06:01
плюс в FM приходит аларм с описанием человеческим
06:01
да, да, snippet конечно
zi_home #
06:02
на самом деле по-моему лучше чтобы работал дискавери, а пирулем/сниппетом прописывать в дескрипшен соседнюю железку
06:02
я по крайней мере хотел так себе сделать
Huko #
06:03
чертовски полезная штука, как выясняется
zi_home #
06:03
у меня изначально все дескрипшены руками правильно указаны, я не заморачивался
Huko #
06:03
zi_home: соседние железки у меня уже давно прописаны
TSergey #
06:03
zi_home: что ты пишешь в дескрипшены?
zi_home #
06:04
а какой же дескрипшен ты еще туда прописываешь? или это не сетевые линки, а тогда зачем фм для них
Huko #
06:04
zi_home: тут в сети около 5000 портов, при постороении никто никакими дискрипшинами не заморачивался
TSergey #
06:04
у меня по разному, как правило на линк на клиента его эккаунт в билинге, на аплинках девайс-порт соседа
zi_home #
06:04
TSergey, я хостнейм соседа пишу и все, сразу ясно куда этот порт смотрит
Huko #
06:05
zi_home: плюс соседние железки у меня теперь по дискавери lldp показывает
TSergey #
06:05
zi_home: а на доступе?
Huko #
06:05
я таки его тоже вчера осилил
zi_home #
06:05
TSergey, клиентские порты? инфу о клиенте
06:06
Huko, то есть ты просто на любые порты решил прописывать
Huko #
06:07
я задаю номер влана и какой дискрипшн хочу на нем получить
TSergey #
06:07
zi_home: ок, а какую, если не секрет
06:08
я вот думаю что-то вроде ID:##### попробовать внедрить
zi_home #
06:08
название клиента естественно, плюс доп инфу проект, идентификатор канала, идентификатор в биллинге иногда
TSergey #
06:08
с ID из билинга
06:09
ага, спасиб
Huko #
06:09
TSergey: а твой пируль по какому событию запускается ? По расписанию ?
TSergey #
06:11
да, и еще в лог пишет, если профиль порта меняет
zi_home #
06:11
Huko, можно сделать красивее, периодический пируль, пусль запускается раз в день и смотрит на дескрипшены, если неправильный или пустой, то заходит на железку и прописывает нужный, после сохраняет новые данные в базу
06:12
он будет сам следить, не придется сниппет руками запускать постоянно
Huko #
06:13
ну возможно в будущем так и сделаю
zi_home #
06:23
народ, кто-нибудь тестировал работу нока в консоли через портсервер? есть проблемы?
Huko #
06:23
добавил свой класс, рестартонул noc, при тесет на event все ок, но при рекласификации не отрабатывается. куда смотреть ?
zi_home #
06:25
если и тест ок и рестартанул, то присоединяться с армии пинающих dvolodin чтобы починил баг, третьим будешь
Huko #
06:27
хмм, притом что 1 класс up/down snmp каким-то чудным образом подхватился, но пинал я нок очень долго всякими рестартами и синками, но теперь не выходит :(
06:27
или я это на 0.8 сделал, а теперь переехал на dev и нифига :(
dvolodin #
06:29
Huko: MacDB + биллинг позволяют достаточно быстро привязать абонентов к портам
06:29
что касается периодических pyrule, скоро сделаю нормальные job'ы в solutionы
Huko #
06:30
dvolodin: у меня нет абонентов и биллинга, это просто большая сетка
06:32
dvolodin: у меня тут странность небольшяа get_interface_status 'interface=2/2' kwargs {
06:32
key: "interface"
06:32
value: "I1\n."
06:32
это баг или фича ? или я чего-то недогоняю
zi_home #
06:34
dvolodin, зачем? пирули есть и отлично работают
buggy-funhouse #
06:34
всем привет
Huko #
06:34
re
lexus-omsk #
06:36
Huko: попробуй "interface='2/2'"
Huko #
06:37
lexus-omsk: пробывал, отрабатывает. а noc как запускает, с экраном ?
buggy-funhouse #
06:38
dvolodin: http://take.ms/JLAIr порядок интерфейсов на карте от чего зависит?
Huko #
06:38
подскажите, кто и когда запускает get_interface_status ?
lexus-omsk #
06:39
есть job, который при алармах link down периодически проверяет, не поднялся ли линк (на случай, если потерялся трап)
Huko #
06:40
lexus-omsk: и если в апе, то аларм закрывает ? понятно. как бы теперь проверить, что он отрабатывается, а то на одной железки начали сыпаться фэйли на его работу, пришлось временно убрать его
lexus-omsk #
06:42
через debug-script. тонкость в том, что если у тебя прописано в профиле snmp_ro, то и дебажить надо с ключиком -c-
06:42
если профиль умеет snmp, конечно
Huko #
06:44
lexus-omsk: snmp умеет, но у меня этот скрипт по cli ходит. через debug-script отрабатывает нормально если запускать с "interface='2/2'", теперь хочется понять как он запускается ноком
lexus-omsk #
06:45
а, и ещё, чтобы job нормально отрабатывал, нужно, чтобы скрипт обрабатывал параметр interface, т.е. возвращал в этом случае статус конкретного порта
06:45
а не список всех
Huko #
06:46
lexus-omsk: это все учтено и из debug-script все работает как надо
06:47
но когда запускаю с ноком вижу много фэйлов Avaya.ERS.get_interface_status 19
lexus-omsk #
06:47
если у тебя в объекте пописано snmp ro community, то нок ходит по snmp
Huko #
06:48
lexus-omsk: даже при том, что в скрипте get_interface_status нет никаких snmp ?!
lexus-omsk #
06:48
а, ну тогда вряд ли
dvolodin #
06:49
Huko: проверяй convert_interface_name в профиле
06:49
Дима пока боролся с lldp мог в нем обрезание сделать
Huko #
06:49
угу, просто я думаю, что нок запускает это т скрипт с параметром 'interface=2/2' , это все делится и запускается с единичкой
lexus-omsk #
06:49
в noc-sae.log видно, в каком виде интерфейс передаёт, может там что не так
Huko #
06:50
dvolodin: я профайл с нуля пишу
06:52
2014-03-15 22:29:48,692 MRT task=11881/11958 object=ood-acc-pri-2-1-1(10.19.2.25) script=Avaya.ERS.get_interface_status status=running args={'interface': u'4/5'}
06:52
2014-03-15 22:29:48,692 script Avaya.ERS.get_interface_status(ood-acc-pri-2-1-1)
06:52
2014-03-15 22:29:48,860 script(Avaya.ERS.get_interface_status,ood-acc-pri-2-1-1,**{'interface': u'4/5'}) failed:
06:52
2014-03-15 22:29:48,864 MRT task=11881/11958 object=ood-acc-pri-2-1-1(10.19.2.25) script=Avaya.ERS.get_interface_status status=failed code=19 error=
06:53
притом, что есть и успешные попытки, не пойму в чем проблема
06:54
а если портов было много и он запустил 10 проверок, при том, что макисальное кол-во сессий на желехке скажем 5, я увижу такую ошибку ?
06:55
запуск одновременных get_interface_status можно как-то лимитировать ?
ovg #
06:55
Huko в свойствах mo
06:55
max scripts
Huko #
06:57
ovg: ок, надо попробую
lexus-omsk #
06:59
а трейсов нигде не видно в логах?
Huko #
06:59
наверное косяк в этом и был, на железке одновременно 4 сессии держит, дальше Sorry, session limit reached
07:05
Напомните, как подчистить Failed Scripts ?
TSergey #
07:11
http://forum.nocproject.org/index.php?topic=295.0
_4ePTeHok #
07:19
dvolodin, class InterfaceAppplication(ExtApplication):
07:20
inv\apps\interface\views.py
07:20
line 21
dvolodin #
07:26
и?
Huko #
07:34
а max scripts в MO ограничивает проверку по snmp или ему все равно, что там внутри скрипта snmp или cli ?
buggy-funhouse #
07:34
вообще кол-во инстанций.
07:34
количество скриптов, а что внутри он не смотрит
Huko #
07:35
ok
dvolodin #
07:43
наверное, платформу, вендора и версию софта имеет смысл сделать полями в managed object
07:43
max scripts и кодировки - тоже
zi_home #
07:50
а никто не думал об автоматическом определении профиля железки?
buggy-funhouse #
07:50
я правильно понимаю, что Script Extreme.XOS.get_version(extreme.sw). Timeout set to 120 этот таймаут в коде скрипта зашит?
Huko #
07:50
get_interface_status по snmp отдает зразу все интерфейсы в одном проходе, только не пойму сам интерфейс отдается как номер ifindex ? А если у меня аларм на интервейсе 1/1 - это будет работать ?
buggy-funhouse #
07:50
zi_home: было бы здорово. по vendor oid?
_4ePTeHok #
07:51
zi_home, это в дискавери МО
07:51
я как раз думал
buggy-funhouse #
07:51
Huko: get_interfaces должен собрать и интерфейсы и их snmp_id
zi_home #
07:51
и на чем все встало?
buggy-funhouse #
07:51
имхо
_4ePTeHok #
07:51
я предложил схему, Дима обдумывает
zi_home #
07:52
автодискавери было бы круто
07:53
только не все можно автоматом привязать
07:53
admin domain
07:53
mo profile
07:53
нужен отстойник куда все найденное складывать
Huko #
07:54
buggy-funhouse: у меня так и сделано, и при приходе трапа я проеобразую ifindex в нормальное имя
buggy-funhouse #
07:54
zi_home: отдельный ad и всё
Huko #
07:54
buggy-funhouse: т.е. мне достаоточно в get_interface_status отдать snmp_id и статус ?
buggy-funhouse #
07:55
Huko: я не сварщик совсем, не могу подсказать, извини
Huko #
07:56
buggy-funhouse: ок, попробую так
ovg #
08:01
buggy-funhouse нашел таймаут?
buggy-funhouse #
08:07
ovg: ага
08:08
надо писать в самом скрипте
08:08
class Script(NOCScript):
08:08
name = "DLink.DxS.get_interfaces"
08:08
implements = [IGetInterfaces]
08:08
TIMEOUT = 300
lexius #
08:11
Huko: я для циски делал примерно такой патч https://www.codeo.me/4bj
Huko #
08:13
lexius: т.е. у тебя возвращает имя интерфейса и его статус ?
lexius #
08:14
да, так и должно возвращать
_4ePTeHok #
08:14
zi_home, почитай на сайте в девелопменте-опен дискусион я статейку бахал
08:15
там как раз про отстойник речь шла
zi_home #
08:15
_4ePTeHok, боюсь мое чтение не продвинет процесс обдумывания другого человека
Huko #
08:15
просто по по этому oid'у мне возвращает как ifc1 (Slot: 1 Port: 1) , а в базе храню как 1/1. Т.е. мне перед отдачей надо сконвертить ifc1 (Slot: 1 Port: 1) -> 1/1 и отдать его статус. Верно ?
zi_home #
08:15
да
lexius #
08:16
dvolodin в MO - Scripts есть плагины для красивого отображения результата, как туда что-то своё добавить?
08:17
не могу найти, где задаётся соотвествтие скрипты и js-ки
08:17
потому как js-ки называются не так, как скрипты
dvolodin #
08:29
sa/apps/managedobject/js/scripts/
08:29
в sa/interfaces в интерфейсах есть такое
08:29
preview = "NOC.sa.managedobject.scripts.ShowMPLSVPN"
08:30
собственно нужно сделать и положить js и подложить его в интерфейс
ovg #
08:31
dvolodin не хватает внешней настроки таймаутов для скриптов, например для commands никак не увеличить из веб-морды, а бывает надо. скрипты же не поредактируешь особо, при следующем же обновлении всё вернется в дефолт
buggy-funhouse #
08:35
плюс после редактирования надо нок перезапустить
d8e9c0 #
08:36
утра!
buggy-funhouse #
08:36
d8e9c0: обед уже =)
08:36
привет
_4ePTeHok #
08:37
от часовых поясов зависит
d8e9c0 #
08:37
<buggy-funhouse>, привееет! :)
08:37
<_4ePTeHok>, мск) но я только в оффис приехала)))
lexius #
08:42
dvolodin: а, вон оно где, в интерфейсах... спасибо
buggy-funhouse #
08:43
_4ePTeHok: да, но она со мной в одном поясе, она в мск, я в спб. Только я вот к 10-ти на работу хожу =)
lexius #
08:59
buggy-funhouse: можно с помощью такой штуки разруливать свои правки http://hgbook.red-bean.com/read/managing-change-with-mercurial-queues.html
d8e9c0 #
09:00
<buggy-funhouse>, зачем ты так рано на работу приходишь?))))
_4ePTeHok #
09:04
buggy-funhouse, в питере почти все так)
09:04
я вообще к 11 приползал
09:05
а то и к 12)
buggy-funhouse #
09:05
можно вообще не ходить =) но мне идти 23 минуты
_4ePTeHok #
09:05
lexius, правки в скриптах апдейт не будет затирать, если в репо не было изменений
09:05
в исходном репо на битбакете
09:06
просто пометит что модифицированный и все
09:06
проблема будет только когда файл изменился в битбакете
lexius #
09:07
и вот тогда начнётся веселье, особенно, если давно не обновлялся, а там бахнули что-нибудь массовое
TSergey #
09:13
import urllib
09:13
URL = 'http://maps.googleapis.com/maps/api/geocode/json?address=Томск,Ленина проспект,55&sensor=true'
09:13
result = urllib.urlopen(URL).read()
09:13
print json.loads(result)
09:13
вот так получаю JSON данные
09:14
чем их разбирать? что-то в ноке примеров не нарою
_4ePTeHok #
09:17
ух ты)
09:17
уже адресную базу гугля тащите)
TSergey #
09:18
не, хочу отчетик сваять
freeseacher #
09:18
TSergey, у тя после json.loads(result) полкчается словарь
09:18
работай с ним как с нативным словарем
buggy-funhouse #
09:22
народ, а зачем нужно trap community в MO?
_4ePTeHok #
09:22
чтобы трапы с железки снимать
09:22
ловить всмысле
TSergey #
09:23
freeseacher: спасиб
_4ePTeHok #
09:26
зполнить чтоли по вашей этой идейке адреса в комменты к МО..
TSergey #
10:02
freeseacher: но это выше моего понимания
10:02
import urllib, json
10:02
URL = 'http://maps.googleapis.com/maps/api/geocode/json?address=Томск,Ленина проспект,50&sensor=true'
10:02
questions = urllib.urlopen(URL).read()
10:02
dictionary = json.loads(questions)
10:02
dictionary['results'][0]['geometry']['location']['lat']
10:02
dictionary['results'][0]['geometry']['location']['lng']
Huko #
10:03
а как можно быстро проверить отдал ли self.snmp.get больше чем 1 строку ?
_4ePTeHok #
10:06
TSergey, а чего не так то?
freeseacher #
10:07
Huko, а он вроде должен только дону вернуть
10:07
а потом сказать gget_next
10:07
для следующего
Huko #
10:09
freeseacher: а walk есть ?
freeseacher #
10:10
/opt/noc/sa/script/snmp.py
10:10
вроде несодержит валка
10:10
честно говоря не знаю зачем там должно забираться волком
10:11
с другой стороны net-snmp для get умеет указыать сколько ответов надо уложит ьв один пакет
TSergey #
10:13
_4ePTeHok: да все так, просто словари и списки чёто для меня пока интуитивно не понятны
_4ePTeHok #
10:13
наеборот удобно
TSergey #
10:14
мне говоришь?
_4ePTeHok #
10:14
у списка индекс только цифра
10:14
у словаря - маркер
10:14
это по большому счету все что надо)
TSergey #
10:14
да, я с вложенностью не сразу справился
10:15
особенно что [0] нужен
_4ePTeHok #
10:15
ну на скобки надо смотреть
10:16
где квадрат, цифровой индекс)
TSergey #
10:16
ага, теперь уже кажется очевидным
EK|2 #
10:20
_4ePTeHok: чем trap community от ro по факту отличается?
_4ePTeHok #
10:21
направлением работы
10:21
трапы посылаются в нок
10:21
и на железке может быть отличным от того, что snmp ro
buggy-funhouse #
10:21
а по ro ходит он сам?
_4ePTeHok #
10:21
угу
buggy-funhouse #
10:22
интересно
10:22
спасибо
TSergey #
10:22
эт я себе запишу, с snmp я тоже еще не разбирался
buggy-funhouse #
10:23
у меня просто extreme через cli отдаёт инфу по show vlan detail для 1к вланов порядка 83 минут
10:23
поэтому я хочу snmp =)
_4ePTeHok #
10:23
гы
10:24
он тебе 5 километров портянки отдает чтоли?)
buggy-funhouse #
10:24
да, причём медлено и пропечатывая каждый порт отдельно. Хошь видео?)
_4ePTeHok #
10:24
не, у меня кровь глазами пойдет
buggy-funhouse #
10:25
угу
Tweet
Share this page
Share this page: Tweet