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: 22.09.2011
inoyat_kayumov #
05:17
нок продолжает удивлять....было в районе 20 алармов и больше 200тыс эвентов. сейчас - алармов 0, эвенты добегают до 20тыс и обнуляются
05:18
база монги - 23гб
zi_rus #
06:00
dvolodin, проверил тот урл /main/menu/<user_id>/ (<user_id> - имя пользователя?)
06:01
там ошибка 404
06:01
а еще при логине юзера нашел ошибку сервера 500
dvolodin #
06:01
/main/menu/json/<id>/
zi_rus #
06:01
http://noc/main/menu/json/2/
06:01
вот на нее ругается
06:02
вот трейсбек
06:02
http://pastebin.com/d8bNwySw
06:03
пытался играться с пермишенами, одна фигня
06:11
даже не знаю с чего это вдруг, раньше ведь нормально работало
dvolodin #
06:14
./noc sync-perm
zi_rus #
06:15
огромное спасибо. а что это было?
06:23
а такой вопрос, можно ли разграничить доступ пользователся к селекторам, также как к самим объектам, а то даешь им доступ и они могут менять параметры селекторов которые никак не относятся к данному юзеру
dvolodin #
06:23
набор прав немного разъехался
zi_rus #
06:23
ок
dvolodin #
06:23
нет, селекторы настраивает администратор
06:23
по-моему пора сливать ветки :)
06:24
я вчера развоевался и сделал импорт из базы ФКШТ
06:24
ARIN
zi_rus #
06:24
в шедулерный билдер вкрутил максимальную длину маски?
dvolodin #
06:29
сейчас прикручиваю
06:29
заодно и сношу все кеши нафиг из постгреса
zi_rus #
06:36
отлично. а по поводу юзера, пусть будет так (хотя можно было бы дать юзеру права работать с селекторами только в пределах уровня ограничивающего его селектора), а вот почему при run command он видит чужие селекторы, ведь так он получает доступ к чужому желе
06:36
зу и может там что-то сломать - это не гуд
dvolodin #
06:46
это надо будет еще проверить
zi_rus #
06:46
я проверил
06:47
зашел под ограниченным юзером, сделал ран комманд на желзку которая не входит в его права, show vlan сработал и показал результат
dvolodin #
06:48
это уже когда message passing сделаем, поправим
06:48
текущая проблема - каждый раз приходится проверять диким SQL-запросом, куда юзер имеет доступ
zi_rus #
06:52
кстати, ветки сливать еще рано
06:53
в новом УИ права юзеров вообще не работают
dvolodin #
06:55
как так не работают?
zi_rus #
06:56
вот так
06:56
http://imageshack.us/photo/my-images/84/qqql.png/
06:56
это когда сразу логинюсь ограниченным юзером
06:59
если делать логин потом логаут, то на экране остается меню от предыдущего юзера, приходится делать рефреш
07:00
и если у юзера ограниченные права, то после рефреша боковое меню пустое
07:00
картинка выше, сделана в хроме, в фф хотя бы есть кнопка логаута, чтобы хоть выйти можно было
07:15
и еще, я не знаю решили или нет, но у меня при логине по нажатию enter ничего не происходит
07:20
в смысле, кнопка логин нажимается только мышью
dvolodin #
07:21
да, я про это знаю
08:06
логин сделал
08:06
по enter'у
ss_ #
08:13
Люди можете помочь со скриптом получения мак адресов
08:13
вроде парсит все хорошо но в вебе ничего нет(((
dvolodin #
08:15
debug-script результат выдает?
ss_ #
08:15
да
08:16
в питоне вот что
08:16
import re
08:16
rx_line = re.compile("^(?P<interface>\d+/\d+/\d+)\s+(?P<vlan>\d+)\s+(?P<mac>\S+)\s+(\S+)\s+(?P<type>\S+)\s+", re.MULTILINE)
08:16
print rx_line.match("1/2/1 392 00:1f:a4:50:f8:7a PERMIT DYNAMIC 196.4").groups()
08:16
print rx_line.match("1/22/1 392 00:1f:a4:58:05:82 PERMIT DYNAMIC 202.3").groups()
08:16
результат
08:16
>>>
08:16
('1/2/1', '392', '00:1f:a4:50:f8:7a', 'PERMIT', 'DYNAMIC')
08:16
('1/22/1', '392', '00:1f:a4:58:05:82', 'PERMIT', 'DYNAMIC')
dvolodin #
08:16
сам скрипт на dpaste закинь
ss_ #
08:17
http://pastebin.com/pY80BwA2
08:17
скрипт
dvolodin #
08:19
zi_rus: все косяки пиши в общий документ
08:19
https://docs.google.com/document/d/1zGA1Czr3hpdIDj0b1Z_Ot9qTPPjEq3FjgU4R9X4pPxc/edit?hl=en_US
gnu-linux #
08:20
А у меня Ubiquiti cтранно вывод скриптов даёт http://pastie.org/2572666 тоесть почему-то обрезается всё кроме первых строк...
zi_rus #
08:21
ок
dvolodin #
08:21
вообще все косяки, пусть даже самые мелкие
08:22
gnu-linux: для них вроде свой профиль делали
gnu-linux #
08:23
там только get_config & get_version, последний не очень хорош...
08:25
Там кажись проблема именно в ssh где-то, другие девайсы под линуксом на этих скриптах работают...
08:33
А нет, ошибка в pattern_prompt = r"^.*# ?" хреновыё промпт...
08:34
Немогу подобрать промпт для всех разношерстных линуксов ;)
ss_ #
08:34
http://pastebin.com/uvma7fEZ это лог скрипта http://pastebin.com/pY80BwA2
08:35
что то там не так но я не пойму что
dvolodin #
08:36
gnu-linux: адаптивный пропт используй
08:36
ss_: у тебя в регулярном выражении группа называется vlan
08:36
а в скрипте - vlan_id
08:37
оттого и traceback
ss_ #
08:39
dvolodi: rx_line = re.compile("^(?P<interface>\d+/\d+/\d+)\s+(?P<vlan_id>\d+)\s+(?P<mac>\S+)\s+(\S+)\s+(?P<type>\S+)\s+", re.MULTILINE)
08:39
так?
dvolodin #
08:39
да
ss_ #
08:41
2011-09-22 12:39:19,637 [TELNET: 10.21.120.204] match '^110120010\_Kan\-B\.Bikshihi(?:-\d+)?(?:\(config[^\)]*\))?#'
08:41
2011-09-22 12:39:19,637 [TELNET: 10.21.120.204] event(PROMPT)
08:41
2011-09-22 12:39:19,653 [script-10.21.120.204-Siemens.HIX5630.get_mac_address_table] cli(show mac port 1/1/1-1/10/1) returns:
08:41
---------
08:41
'================================================================\nport vlan mac addr permission status in use\n================================================================\n1/7/1 393 00:1f:a4:51:92:18 PERMIT DYNAMIC 79.4\n'
08:41
---------
08:41
2011-09-22 12:39:19,659 [script-10.21.120.204-Siemens.HIX5630.get_mac_address_table] Script traceback:
08:41
<type 'exceptions.IndexError'>
08:41
no such group
08:41
START OF TRACEBACK
08:42
все равно так же
dvolodin #
08:42
имена групп проверь все
ss_ #
08:42
интефейсес
08:42
)
08:43
2011-09-22 12:42:24,481 SCRIPT RESULT: script-10.21.120.204-Siemens.HIX5630.get_mac_address_table
08:43
[{'interfaces': ['1/7/1'],
08:43
'mac': '00:1F:A4:51:92:18',
08:43
'type': 'D',
08:43
'vlan_id': 393}]
08:43
dvolodin Все отработало, Спасибо!
08:44
осталось чуть его переписать, но это уже после обеда
dvolodin #
08:44
да куда ты денешься с подводной лодки
08:44
обрати внимание, что NOC отформатировал MAC
ss_ #
08:44
тут фишка в том что просто так таблицу маков железка не дает а только по диапазозу
dvolodin #
08:45
я понял, не одна она такая уникальная
08:45
:)
ss_ #
08:45
вот вот и техподдержки их нет и документацию толком не дают все за бабло, зато купили их вагон и тележку
08:46
надо как условие изменить если нет мака и влана то довать cmd такой если есть то другой
08:46
но это уже после обеда, кушать хочется
08:46
)
08:49
а в веб морде все равно 0 маков(
08:49
прям беда
lexus-omsk #
08:51
приветствую!
08:51
dvolodin: что не правильно в такой строчке: "snmp_ifindex": self.scripts.get_ifindex(name) ?
08:51
ругается на кол-во аргументов, но вроде только имя интерфейса передаётся... или я чего-то не понимаю
dvolodin #
08:51
ss_: активатор рестартани
ss_ #
08:52
рестартанул, нашел ошибку не все типы маков описаны были, у меня есть еще dhcp локед
08:52
"type" : {"dynamic":"D","static":"S","p-locked":"P"}[match.group("type").lower()],
08:54
Все в вебе рисует))) <dvolodin> еще раз спасибо!
dvolodin #
09:02
коллеги
09:02
а кто умеет писать на JS, и кто - на python?
09:04
и еще нам Q&A не помешает
09:04
тестить все и вылизывать
_4ePTeHok #
09:10
ну к последнему можно присоедениться)
09:10
писатель пока из меня не очень
dvolodin #
09:10
из текущих задач
09:11
1. Есть некоторое количество старых приложений для django'вской админки
09:11
надо их по образу и подобию портировать на новый UI
09:12
В основном сводится к автоматическому генерированию скелета, описанию полей модели, формы и грида
09:12
и дополнительно - unittest'а, который тоже декларативный для этого типа приложений
09:13
реально на все про все - минут 15
zi_rus #
09:14
я могу тестировать. придираться у меня получается))
dvolodin #
09:14
2. Нужны unittest'ы собственно для моделей - они лежат в */tests/
09:15
тоже частично декларативны
09:15
пытаются создать объект в базе, поиграться с ним, и грохнуть
09:15
только unittest'ы для приложений делают это через REST, а эти - напрямую
09:17
3. Максимально придирчивое тестирование. продукт должен быть приятен на вид, ощупь и вкус
09:18
4. Документация - у меня до этого точно руки не дойтут. Можно обсудить, в какой форме удобнее, вплоть до совместного редактирование в google docs
09:19
5. Code audit - желательно иметь представление о django и python
09:20
желательно максимально просмотреть код в поисках откровенного дерьма, возможных ошибок и неоднозначностей
09:21
6. Security audit - желательно проверить, какие вообще дыры мы оставили
09:22
7. PR - нужны статьи разного рода, типа - была такая задача, решил так то
_4ePTeHok #
09:27
3,4 и 7 могу попробовать.
09:27
один хрен по ежам трактат строчить на их форум
zi_rus #
09:28
6 - что тут имеется ввиду? я уже неоднократно писал про недостаточное разгреничение прав пользователей
_4ePTeHok #
09:29
zi_rus, там и анализ кода нужен.
zi_rus #
09:34
мне кажется для такой непубличной и достаточно специфичной программы это (безусловно важно, но) не так актуально
_4ePTeHok #
09:35
забавно, если хакер-кракер внезапно получит админский доступ к noc какой нить крупной организации. Вся структура, все рычаги управления.
09:35
понятно дело что надо ограничивать доступ и на уровне http, и на уровне фаервола, но все ж.
09:36
так что я думаю, это не просто актуально, а необходимо.
dvolodin #
09:37
zi_rus: оно почти неактуально, так как NOC обычно изолирован, но тем не менее лучше перестраховаться
zi_rus #
09:37
если хакер пробьется в сеть предприятия, у него скорее всего уже будет доступ ко всей сети ( или не составит труда его получить)
dvolodin #
09:38
неправильная логика
09:38
80% всех взломов - инсайдеры
09:38
как минимум надо быть уверенным, что та же дежурная смена не наворотит лишнего
zi_rus #
09:39
причина - уже имеющийся доступ, а не низкоуровневый взлом
09:39
а про "не наворотит лишнего" я и говорил в самом начале
dvolodin #
09:43
zi_rus: вот над такими механизмами безопасности и надо думать
zi_rus #
09:47
есть такое мнение: вынести настройки прав доступа пользователя из main в каждый модуль отдельно
09:48
+ дать возможность создавать системного пользователя из каждого модуля
09:50
тогда в каждом модуле можно будет создать специфичную модель доступа
dvolodin #
09:50
с правами - все равно форму юзера переделывать
zi_rus #
10:06
куда надо нажать чтобы импортировать ip в ipam?
gnu-linux #
10:23
Вылизал баги в профиле OS.Linux http://redmine.nocproject.org/boards/3/topics/2450?r=2546#message-2546
10:24
Обновляйтесь тестируйте http://redmine.nocproject.org/attachments/261/os-linux-01.tar.bz2
10:24
На сегодня всем пока ;)
_4ePTeHok #
10:39
мда, на IХ-e сегодня день шутников)
ss_ #
10:47
dvolodin: Какое время ожидания при выполнение скрипта? вываливается похоже по таймауту
10:47
2011-09-22 14:44:07,774 Tick
10:47
2011-09-22 14:44:07,774 Closing stale socket <noc.sa.script.telnet.CLITelnetSocket object at 0x4459910>
10:47
2011-09-22 14:44:07,775 unregister_socket(<noc.sa.script.telnet.CLITelnetSocket object at 0x4459910>)
10:47
2011-09-22 14:44:08,776 Tick
10:47
около 30 секунд идет Tick а потом вышеописаное
10:48
2011-09-22 14:44:11,780 Shutting down the factory
10:48
2011-09-22 14:44:11,781 0 TICKS TO EXIT
10:48
потом это и висняк пока процесс не кильнеш
10:54
около 3 минут таблица маков отдается
zi_rus #
11:04
а вручную как долго получается, я просто с таким же столкнулся, скрипт на длинке статус портов не мог показать, а потом попробовал вручную, а там действительно, одна из команд жесткий висняк железке устраивала
ss_ #
11:04
железка не виснет
11:05
долго просто думает
11:05
около 3-4 минут
11:08
бывает и долше, но всегда выводит маки
11:11
есть мысли как поправить таймаут?
12:14
Есть кто живой в этом чатике? ;)
dvolodin #
12:16
я есть
12:17
у скрипта есть параметр TTL
12:17
TiMEOUT
12:17
TIMEOUT
12:18
class Script(NOCScript):
12:18
TIMEOUT = 300
ss_ #
12:19
<dvolodin> а куда его прописывать?
dvolodin #
12:19
в сам скрипт
ss_ #
12:20
/opt/noc/sa/profiles/Siemens/HIX5630/get_mac_address_table.py в начале же?
12:21
большими буквами?
12:24
from noc.sa.script import Script as NOCScript
12:24
from noc.sa.interfaces import IGetMACAddressTable
12:24
import re
12:24
class Script(NOCScript):
12:24
timeout=600
12:24
name="Siemens.HIX5630.get_mac_address_table"
12:24
implements=[IGetMACAddressTable]
12:24
так?
12:27
http://pastebin.com/a8YSZTRT вот такой дебаг
dvolodin #
12:29
большими
12:29
TIMEOUT=
ss_ #
12:33
время в секундах?
12:35
или в дебаге время не учитывается?
12:36
непашед
12:37
from noc.sa.script import Script as NOCScript
12:37
from noc.sa.interfaces import IGetMACAddressTable
12:37
import re
12:37
class Script(NOCScript):
12:37
name="Siemens.HIX5630.get_mac_address_table"
12:37
implements=[IGetMACAddressTable]
12:37
rx_line = re.compile("^(?P<interfaces>\d+/\d+/\d+)\s+(?P<vlan_id>\d+)\s+(?P<mac>\S+)\s+(\S+)\s+(?P<type>\S+)\s+", re.MULTILINE)
12:37
TIMEOUT=3600
12:37
def execute(self,interface=None,vlan=None,mac=None):
12:38
2011-09-22 16:37:24,474 [TELNET: 10.21.120.197] set_timeout(30)
12:38
из дебага
12:59
TIMEOUT = 300
12:59
CLI_TIMEOUT = 300
12:59
непомогает
13:00
как поменять?
dvolodin #
13:05
надо посмотреть, дебаг может и игнорировать
ss_ #
13:05
TTL=300
13:05
не то)
13:05
ща
13:05
/opt/noc/sa/script/telnet.py
13:05
class CLITelnetSocket(CLI, ConnectedTCPSocket):
13:05
TTL=300
13:05
protocol_class=TelnetProtocol
13:06
как видно TTL задан был 30 я изменил на 300
13:08
причем этот параметр задается вроде как жеско в скрипте, типа если за 30 секунд не отдается инфа то все дохлый железко
13:09
правильнее было бы его передавать это значение из скрипта, для разныж железок разное может быть
dvolodin #
13:11
оно передается
ss_ #
13:12
в дебаге теперь все хорошо но в веб интерфейсе как то опять все 0
13:13
тогда почему веб интерфейс завершает опрос быстее чем отвечает железка
13:13
?
13:16
2011-09-22 17:15:19 начало выполнения скрипта в дебаге
13:18
завершение 2011-09-22 17:17:10,982 0 TICKS TO EXIT
13:18
2 минуты
13:21
<dvolodin> все равно в вебе таймаут другой меньтеш 2 минут
13:27
Подскажите пожайлуста, осталось добить то чуть чуть
dvolodin #
13:40
как скрипт выглядит?
ss_ #
13:46
http://pastebin.com/vYbttCKi
13:47
на if пока можно не обращать внимание, их еще не пилил
dvolodin #
13:53
в активаторе таймаут какой в итоге?
ss_ #
13:53
где смотреть?
13:57
dvolodin, если на железки маков мало и она отвечает быстро то все хорошо, маки собираются
dvolodin #
13:58
в логах активатора
ss_ #
14:01
600
14:03
2011-09-22 18:00:04,534 Script Siemens.HIX5630.get_mac_address_table(10.21.120.197). Timeout set to 600
14:03
2011-09-22 18:00:04,535 1 script threads (50 max)
dvolodin #
14:03
ну
ss_ #
14:04
ну так с одной железки ну никак не приходят, она очень медленно отвечает
dvolodin #
14:04
сколько там маков?
ss_ #
14:04
щаз гляну несколько сотен было
14:06
около 400
14:09
с железок отвечающих бытро проблем нет, ладно до завтра. Пора домой
14:11
может и что то не в порядке с отдачей маков
14:11
голова уже не варит
Tweet
Share this page
Share this page: Tweet