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: 19.12.2011
gnu-linux #
03:08
Ктото сможет распарсить вывод написаный вконце NOC-36?focusedCommentId=10327&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-10327
03:17
В конце NOC-36 добавил пример скрипта.. Но надо распарсить бинарный вывод и выдать список портов.. Кто напишет или укажет в какой стороне копать....
03:37
NOC-36 как перевести 16 вывод:
03:37
SNMPv2-SMI::mib-2.17.7.1.4.2.1.5.0.1 = Hex-STRING: 00 00 00 00 00 00 C0 00 00 00 00 00 00 00 00 00
03:37
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
03:37
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
03:37
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
03:37
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
03:37
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
03:37
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
03:37
00 00 00 00 00 00 00 00 00 00 00 00 01 FE
03:37
в двоичный?
03:39
Кажись порядковый номер бита корелирует с номером порта, а 1 - значит vlan есть, 0 - нету..
03:40
Если перевести с шстнадцатиричного в двоичный то можно будет легко распарсить строку принадлежности портов vlan-у
04:34
Распарсил вывод vlan через snmp!
04:35
на до теперь чтобы dvolodin сделал две вещи.. ждём...
inoyat_kayumov #
05:08
"мать..мать..мать" в очередной раз - http://dpaste.com/675287/
gnu-linux #
05:27
да это фигня, запусти нок.. останови нок и тогда post-update пройдёт...
e_zombie #
05:29
я обновляюсь скриптом
05:31
# cat compile-noc.sh
05:31
#!/bin/bash
05:31
cd /opt/noc && ./scripts/noc-launcher.py stop
05:31
cd /usr/src/soft/noc/
05:31
hg pull -u && \
05:31
python setup.py install && \
05:31
cd /opt/noc/ && \
05:31
./scripts/post-install
05:31
su noc -c './scripts/post-update'
05:31
cd /opt/noc && ./scripts/noc-launcher.py start
dvolodin #
05:53
gnu-linux: что за oid?
05:53
похоже на vlan map
05:53
в стринг оно как легло?
e_zombie #
05:53
self.validate()
05:53
File "/opt/noc/contrib/lib/mongoengine-0.5-py2.6.egg/mongoengine/base.py", line 629, in validate
05:53
raise ValidationError('Field "%s" is required' % field.name)
05:53
mongoengine.base.ValidationError: Field "name" is required
05:53
post-update: 80: sync-mibs failed
05:53
Terminating
dvolodin #
05:57
полный traceback нужен
gnu-linux #
05:59
dvolodin: vlan через SNMP победили :) функцию hex2bin надо добавить кудатов modules чтобы не писать в каждом скрипте...
e_zombie #
05:59
http://pastebin.com/wf5CpvBR
gnu-linux #
06:00
По NOC-36 осталось только вытащить с OID vlan_id для get_mac_address_table...
06:00
Как я писал в предпоследнем посте..
06:04
Вот для привязки mac - vlan планирую дёргать такой OID: 1.3.6.1.2.1.17.7.1.2.2.1.2. + vlan + .0.4.97.82.135.195
dvolodin #
06:04
кстати, советую делать oid таким образом
06:04
"1.3.6.1.2.1.17.7.1.2.2.1.2.%d.0.4.97.82.135.195" % vlan
gnu-linux #
06:05
Откуда мне знать какой vlan?
06:05
Я дёргаю 1.3.6.1.2.1.17.7.1.2.2.1.2
06:05
и мне со списка OID надо вытянуть VLAN
06:07
Пример кода там есть.. К стати очень плохо что self.snmp.join_tables поддерживает только две таблицы.. это сильно замедляет работу, ибо маки дёргаются 3 раза...
dvolodin #
06:08
ну а кто мешает доработать join tables? :)
gnu-linux #
06:15
get_portchannel через SNMP надо ещё.. Кто напишет?
dvolodin #
06:23
у меня есть нехорошее желание где-нибудь в 0.7(4) сделать свой парсер и генератор SNMP BPDU
06:23
там формат-то совсем тривиальный
06:26
с NOC-67 и NOC-205 у нас что?
ss_ #
06:26
привет, при пост апдейт лезет кака Syncronize MIBs
06:26
Synchnonizing MIBs
06:26
creating IEEE8021-CFM-MIB
06:26
updating IF-MIB
06:26
Traceback (most recent call last):
06:26
File "manage.py", line 41, in <module>
06:26
execute_manager(settings)
06:26
File "/opt/noc/contrib/lib/django/core/management/__init__.py", line 438, in execute_manager
06:26
utility.execute()
06:26
File "/opt/noc/contrib/lib/django/core/management/__init__.py", line 379, in execute
06:26
self.fetch_command(subcommand).run_from_argv(self.argv)
06:26
File "/opt/noc/contrib/lib/django/core/management/base.py", line 191, in run_from_argv
06:26
self.execute(*args, **options.__dict__)
06:27
File "/opt/noc/contrib/lib/django/core/management/base.py", line 220, in execute
06:27
output = self.handle(*args, **options)
06:27
File "/opt/noc/fm/management/commands/sync-mibs.py", line 38, in handle
06:27
self.sync_mibs(force=options["force"])
06:27
File "/opt/noc/fm/management/commands/sync-mibs.py", line 88, in sync_mibs
06:27
self.update_mib(mib, data + f.read(), version=version)
06:27
File "/opt/noc/fm/management/commands/sync-mibs.py", line 112, in update_mib
06:27
mib.clean()
06:27
File "/opt/noc/fm/models.py", line 501, in clean
06:27
o.save()
06:27
File "/opt/noc/contrib/lib/mongoengine-0.5-py2.6.egg/mongoengine/document.py", line 144, in save
06:27
self.validate()
06:27
File "/opt/noc/contrib/lib/mongoengine-0.5-py2.6.egg/mongoengine/base.py", line 629, in validate
06:27
raise ValidationError('Field "%s" is required' % field.name)
06:27
mongoengine.base.ValidationError: Field "name" is required
06:27
post-update: : sync-mibs failed
06:27
Terminating
06:27
ПОдскажите что не так?
06:33
я понимаю что в этом ошибка? File "/opt/noc/contrib/lib/mongoengine-0.5-py2.6.egg/mongoengine/base.py", line 629, in validate
06:33
raise ValidationError('Field "%s" is required' % field.name)
06:33
mongoengine.base.ValidationError: Field "name" is required
dvolodin #
06:36
на каком MIB'е?
ss_ #
06:40
Synchnonizing MIBs
06:40
<ss_> creating IEEE8021-CFM-MIB
06:40
<ss_> updating IF-MIB
06:40
<ss_> Traceback (most recent call last):
06:40
заново клон начал делать
06:41
не помогло
06:41
Syncronize MIBs
06:41
Synchnonizing MIBs
06:41
updating DOCS-CABLE-DEVICE-TRAP-MIB
06:41
Traceback (most recent call last):
06:41
File "/opt/noc/contrib/lib/mongoengine-0.5-py2.6.egg/mongoengine/document.py", line 183, in save
06:41
raise OperationError(message % unicode(err))
06:41
mongoengine.queryset.OperationError: Could not save document (Invalid modifier specified $unset)
06:41
post-update: : sync-mibs failed
06:43
т.е. сделал hg clone http://hg.nocproject.org/noc noc перенес конфиги и делаю ./scripts/post-update
06:47
<dvolodin> есть мысли?
dvolodin #
06:49
смотрю
06:49
пока не воспроизводится
06:49
если вот так сделать
06:49
mongo noc
06:49
db
06:49
db.noc.mibs.drop()
06:49
db.noc.mibdata.drop()
06:50
и потом ./noc sync-mibs
06:50
поможет?
ss_ #
06:52
синхронизация пошла. ./scripts/post-update надо делать?
dvolodin #
06:53
не обязательно
ss_ #
06:54
сихронизация прошла
06:55
Syncronize MIBs
06:55
Synchnonizing MIBs
06:55
post-update complete
06:55
dvolodin, спасибо большое! Помогло
06:55
)))
gnu-linux #
06:57
dvolodin: NOC-67 пока у меня не заработал, отшибает по паролю...
07:03
или логину:) Пишет логин инкорект...
07:04
Может я не тот конец строки ввожу... но кажись с Dmitry1 всё перепробовали...
dvolodin #
07:04
воспроизвел багу с загрузкой mib'ов, снял дамп с одной из инсталляций
07:04
тоже надо пофиксить
freeseacher #
07:22
аналогичная грабля. аналогично починилась.
dvolodin #
07:23
все, пофиксил NOC-234
07:23
теперь без плясок должно обновляться
07:23
забыл continue :)
freeseacher #
07:24
да. аццкий патч
dvolodin #
07:29
но патчит ведь
07:29
:)
07:31
вот по NOC-219 действительно аццкие патчи были
07:31
советую посмотреть в fault management > reports > overlapped oids
07:31
познавательно весьма
gnu-linux #
07:33
По NOC-36 ещё бага есть:
07:34
В Zyxel.ZyNOS когда нет не тегированых vlan оно выдаёт ""
07:35
А нок воспринимает это как багу... и прекращает работу SNMP.
07:35
Надо таки дать возможность возвращать snmp.get ''
zi_rus #
07:36
dvolodin, по NOC-233 я слишком много хочу? а то ты даже версию не назначил :(
dvolodin #
07:38
зря мешаешь разные задачи в один issue
07:39
сделай дополнительный issue для 2-го пункта
07:41
кстати, коли на то пошло, имеет смысл сделать CLI версию построителя префикс-листов
07:41
типа
07:41
./noc prefix-list --profile=Cisco.IOS --name=mylist AS-WHATEVER
zi_rus #
07:42
и ключ записать в файл или вывести на экран
dvolodin #
07:42
может быть полезным, в том числе, и для генерирования конфига того же nginx
07:42
да даже без ключа
07:42
:)
07:42
перенаправление вывода никто не отменял
07:43
благо наша строилка префикс-листов работает с чумовой скоростью
zi_rus #
07:46
в разных системах перенаправление вывода работает по разному, для единообразия можно все же иметь свой ключ
07:47
кто не хочет изучать ноковские ключи будет пользовать системное перенаправление
dvolodin #
07:48
NOC-236, короче
Dmitry1 #
07:48
Народ, просветите меня, что такое префикс листы, и зачем они нужны. Я подозреваю, что я их у себя использую, но просто не знаю, что они называются префикс-листы
dvolodin #
07:49
просто список префиксов, удовлетворяющих условию
Dmitry1 #
07:50
Ээээ... У меня, например, есть куча внутренних AS. Чем мне поможет построилка префикс-листов?
zi_rus #
07:52
dvolodin, а префикс-листы нок умеет вообще для всех профилей строить?
07:52
чисто для сведения
Dmitry1 #
07:54
Смотрите, у меня такая задача: Есть кУУУча внутренних AS. Они раскиданы по свичам 3-го уровня. Мне нужно импортировать их в NOC. Свичи эти в SA прописаны.
zi_rus #
07:55
ASN 64512-65535 ?
Dmitry1 #
08:09
типа того
08:09
к каждой такой AS привязана какая-нибудь подсеть.
08:12
Вот кусок из show ip bgp summary
08:12
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
08:12
10.110.0.52 4 65002 4589463 25240060 5274 0 0 8w3d 3
08:12
10.110.0.53 4 65015 4575134 25158123 5274 0 0 1w6d 1
08:12
10.110.0.55 4 65001 4591046 25255505 5274 0 0 2w5d 1
08:12
10.110.0.56 4 65003 4598193 25288561 5274 0 0 18w5d 1
08:12
10.110.0.57 4 65014 4597529 25288336 5274 0 0 30w3d 1
08:12
10.110.0.58 4 65005 4597386 25288032 5274 0 0 20w5d 2
08:12
10.110.0.59 4 65012 4588786 25247178 5274 0 0 4w6d 1
08:12
И так еще 3 экрана
zi_rus #
08:14
не думаю, что ноковское приложение поможет, он строит списки по публичным АС, по приватным, только если отдельную базу заводить
gnu-linux #
08:15
dvolodin: snmp.get("1.3.6.1.2.1.17.7.1.4.2.1.4.\d+.99") или snmp.get("1.3.6.1.2.1.17.7.1.4.2.1.4.*.99") можно делать? Или идти другим путём??
dvolodin #
08:17
ээээ
08:17
а почем сервер узнает, что прячется за \d или * ?
08:17
:)
ovg #
08:18
gnu-linux обленился :)
dvolodin #
08:18
тогда уж getnext на 1.3.6.1.2.1.17.7.1.4.2.1.4
08:18
telepathic network management протокол
08:19
с одним типом сообщений -- "А ну настройся мне красиво!"
gnu-linux #
08:28
join tables таки надо расширить до 4-рех.. Это значительно упростит код...
08:31
и доделать в нём возможность получить OID чтобы получить vlan для get_mac_address_table
freeseacher #
09:12
dvolodin, а зачем в проекте netifaces ? :)
dvolodin #
09:13
если очень хочется в качестве listen_address указывать eth0
09:13
а не ip
09:13
только для конфигов используется на стадии загрузки
freeseacher #
09:15
понятно
09:33
dvolodin, диреткория etc/ssh не пападает в бекап.
09:34
NOC-237
dvolodin #
09:56
С NOC-205 будем биться еще? или отложим до следующего релиза?
09:58
и с NOC-67
09:58
пора фиксировать все и тестить пару дней
10:02
и релизить
Tweet
Share this page
Share this page: Tweet