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: 13.11.2014
TSergey_ #
06:30
есть ли у нас для IOS обработка событий cpmCPUFallingThreshold? чет найти не могу
zi_rus #
06:45
TSergey_, нет, яростно плюсую если сделаешь, у меня тоже есть такие сообщения, хочется их алармить
TSergey_ #
06:46
видимо займусь :)
zi_rus #
06:49
Nov 10 15:29:26: %SYS-1-CPURISINGTHRESHOLD: Threshold: Total CPU Utilization(Total/Intr): 100%/1%, Top 3 processes(Pid/Util): 149/90%, 4/0%, 159/0%
06:49
Nov 10 15:29:26: %SYS-1-CPURISINGTHRESHOLD: Threshold: Total CPU Utilization(Total/Intr): 100%/1%, Top 3 processes(Pid/Util): 149/90%, 4/0%, 159/0%
06:49
Nov 10 15:39:06: %SYS-1-CPUFALLINGTHRESHOLD: Threshold: Total CPU Utilization(Total/Intr) 6%/1%.
07:02
а какого хрена нок столько памяти жрет?
07:02
http://pastebin.com/xEdDAykn
TSergey_ #
07:05
задавай этот вопрос к подкасту на линмиап :)
dvolodin #
07:17
zi_rus: ты же любишь pyrule на scheduler крутить?
07:17
вот и смотри, что они у тебя так жрут
zi_rus #
07:20
dvolodin, там пирулей с гулькин нос, один выполняется раз в час, второй раз в неделю, не думаю что они могли бы так нагнуть, хотя если память не освобождается или еще какая хрень...
07:21
хотя по памати там есть нагибательский пируль
07:21
но это только шедулер ты оправдал
07:21
а активатор и web почему столько съели?
07:25
на машинке 16G памяти
07:25
Mem: 11G Active, 1123M Inact, 1955M Wired, 206M Cache, 1648M Buf, 1095M Free
07:25
1G - свободен
buggy-funhouse #
07:25
Гы
07:25
Утро
dvolodin #
07:27
активаторы смотреть нужно
07:27
может там регулярки где чумовые
ss_ #
07:32
zi_rus, питон не асм и жрет память половником)
zi_rus #
07:32
переписываем нок на C
07:32
потом на асм
buggy-funhouse #
07:32
а потом суп с котом
07:33
да?
dvolodin #
07:37
критичные места можно на каком-нибудь go налабать
ss_ #
07:37
сразу в в HEX надо писать, зачем время терять?
dvolodin #
07:37
типа попингуек и парсеров netflow
zi_rus #
07:45
пробу
dvolodin #
07:46
zi_rus: а ты на монге сидишь или на rocksdb
zi_rus #
07:46
монге
07:46
чего будет стоить переход на рокс?
07:46
потеря данных?
07:47
геморойная настройка?
dvolodin #
07:47
нет, настройка проста
zi_rus #
07:47
mongodb │ 59535M
dvolodin #
07:48
немного муторная сборка pyrocksb руками
zi_rus #
07:48
ой бля
dvolodin #
07:48
ну и ./noc ts import|export надо бы доделать мне
TSergey_ #
07:48
zi_rus: 59 гиг?
zi_rus #
07:48
ya-ya
TSergey_ #
07:48
а-фи-геть
dvolodin #
07:49
рокс компактнее будет раз в 10
zi_rus #
07:49
ну там еще фм
07:49
или и ивенты в рокс загоним?
07:50
Ж)
dvolodin #
07:50
не
07:50
их точно не загонишь, там поиск
07:50
event'ы в следующих релизах уплотнять будем
zi_rus #
07:50
у меня фильтр по МО в ивентах тормозит и не фильтрует, отваливается по таймауту
07:59
dvolodin, так вот по поводу метрик МО, есть такое предложение. существуют оиды у железок немодульных которые всегда одни и теже, например у каталиста МЕ3400 датчик температуры или загрузка CPU - предлагается их зашивать в модельку, потому что для 3550 это один о
07:59
ид, для 3750 или 7201 - другой. а для больших модульных железок отсылаться к скриптам, где реализовывать алгоритм поиска нужных оидов
07:59
как например такое - https://supportforums.cisco.com/document/73251/monitoring-cpu-utilization-ios-xr-based-platforms-using-snmp-tools
07:59
мы не знаем конкретный оид, но у нас есть алгоритм чтобы его найти
dvolodin #
08:00
ну так обсуждали же уже такое
zi_rus #
08:00
ну мы еще раз начали
dvolodin #
08:00
давай в моделях предусмотрим дополнительные данные для PM
zi_rus #
08:01
трешолды тоже можно из модели брать
dvolodin #
08:01
хоть в виде metric type -> oid
08:02
ну или просто список каких-то настроек
08:02
там явно должен быть metric type
08:02
для snmp -- какой-то шаблон oid
zi_rus #
08:02
давайте таки что-нибудь сделаем. что нужно чтобы для МО создать метрики температуры, CPU и свободной памяти?
dvolodin #
08:02
в который должны подставляться дополнительные значения
08:03
только вот все-ли в модели нужно?
08:03
чем просто проба не подходит?
zi_rus #
08:03
в смысле?
dvolodin #
08:04
что мешает сделать пробу, которая будет тащить, скажем, память?
zi_rus #
08:04
бррр
08:04
проба это демон
08:04
давай с терминологией определимся, а то я тебя не понимаю
dvolodin #
08:05
https://bitbucket.org/nocproject/noc/src/8000becd60a1b1e8b833e315fe441ca5d7c4e337/pm/probes/generic/network/snmp_interface.py?at=feature/graphite
08:05
вот что мешает тебе такое сделать?
TSergey_ #
08:05
"проба это демон"
08:05
вот это все решает
dvolodin #
08:08
повторю вопрос -- если известно, какие oid'ы нужно дергать
zi_rus #
08:08
dvolodin, то что для 100500 тысяч миллионов свичей, роутеров и прочего шлака разных вендоров эту пробу продется сделать безразмерной, а добавление новых станет пыткой, обычный юзер этого не сможет, а при каждом обновлении нока ему придется мержить свою проб
08:08
у с тем что приедет из репо
dvolodin #
08:08
zi_rus: а зачем одну?
08:08
сделай один класс - для мелких каталистов
08:09
один - для 65/76
zi_rus #
08:09
там поплатформно придется лепить
dvolodin #
08:09
ну да
zi_rus #
08:09
будет 100500 проб
dvolodin #
08:09
там можно в пробах матчить по платформе
zi_rus #
08:09
не сильно легче на самом деле и та же проблема сохраняется
dvolodin #
08:09
?
08:10
у тебя условно есть -- софт - oid
08:10
так?
zi_rus #
08:10
теоретически
dvolodin #
08:10
ну так что мешает?
08:10
собственно для тривиальных случаев я думал сделать декларативные пробы
08:10
тупой JSON
zi_rus #
08:11
ну вот я к тому и веду
08:11
или это отдельный json
08:11
или те же данные ты кладешь в json модели в инвентори
08:13
dvolodin, смотри, чтобы добавить новый свич, например у циски есть новая модель 3850, я мог бы описать ее один раз в инвентори и распространить, а так придется в инвентори заводить, а потом пробы делать
08:13
второе сложнее
08:13
согласись
08:14
если ты юзеру скажешь что, чтобы добавить новую неведомую железку, ему надо в инвентори одну модельку по шаблону налабать, я думаю это проще
08:14
правда тут просвечивает вторая сторона вопроса, сбор инвентори должен работать
dvolodin #
08:15
проблема в том, что ты в модели инвентори потащишь софт
08:16
IOS SX и IOS SR отличаются очень сильно
zi_rus #
08:16
эммм
dvolodin #
08:17
а oid'ы определяются именно софтом
08:17
второй пример еще жестче
08:17
Juniper SSG320M и Juniper J2350 -- идентичная железка
08:17
на которую встает как junos, так и screenos
08:18
моделей - понятно, что будет 2
zi_rus #
08:18
на 6500 каталист и CatOS когда то ставился
dvolodin #
08:18
ну и catos, да
08:18
и ты в inventory потащишь этот зоопарк
08:18
а так -- ты сделал пробы, которые работают на catos, и успокоился
zi_rus #
08:19
это вынужденно, и в инвентори этому быть лучше чем в пробе
08:20
а) можно регулярками задать под каким софтом работает конкретная метрика или б) тупо перечислить все возможные оиды, а caps_discovery будет определять какой из них рабочий для каждого конкретного МО
dvolodin #
08:21
не лучше
08:21
смотри
08:21
инвентаризацией и мониторингом занимаются, обычно, разные людт
08:21
каждый элемент должен быть максимально прост
08:22
я могу объяснить гоблину, что свич - это ящик с дырками
08:22
и он будет рисовать мне модели
08:22
я могу объяснить другому гоблину -- что в каких-то условиях нужно дергать какие-то oid'ы
08:22
и он дернет
08:22
второй, извините, свич только на картинках видал
08:23
а если ты соберешь все вместе, бедняги просто опухнут
08:23
у человечекого восприятия есть определенные пределы
zi_rus #
08:23
нет
08:23
есть одна модель
08:23
каждый просто будет редактировать свою часть
08:23
им не нужно знать или понимать что находится в другой части
08:24
но модель одна
08:53
напомните как для аларма можно timestamp в письмо вытащить
dvolodin #
09:26
zi_rus: ты с другой стороны посмотри
aermike #
09:26
hi all
zi_rus #
09:26
с какой
dvolodin #
09:26
открываешь пример - и офигеваешь
TSergey_ #
09:26
zi_rus: http://static.nocproject.org/irclog/2012.06.04.html
09:26
"lexus-omsk: в шаблоне у меня что-то вроде такого: {{alarm.timestamp}} потеряна связь с узлом {{alarm.managed_object.name}}"
zi_rus #
09:26
TSergey_, да, уже нашел
dvolodin #
09:26
и первая реакция будет -- в NOC дохрена нужно прописать, чтобы добавить модель
aermike #
09:27
main->audit trail has been frozen at date 11.05.2014
zi_rus #
09:27
dvolodin, нет, если будет маленький пример в документации. а вот ползать по десятку менюшек - это проблема
aermike #
09:28
and appear Add buton
09:28
which....i think has non sense
dvolodin #
09:28
zi_rus: маленького примера не будет
09:28
там портянка еще та
zi_rus #
09:28
будет
09:29
моделька и пара оидов и парт номер
09:29
какой-нибудь нетпинг, там вообще портов нет, только оиды чтобы датчики дергать
dvolodin #
09:30
ну вот смотри
09:30
нам нужно там хранить metric type
09:30
и правило, как построить oid
zi_rus #
09:31
в некоторых случаях понадобятся regexp и вообще целы скрипт
dvolodin #
09:36
вот-вот
09:36
только не regexp
09:37
а что то вроде
09:37
1.3.6.blabla.{n}.1.2.{m}.7
09:37
и правила нахождения этих n и m
09:37
типа
09:37
n -- номер карты
09:37
m - номер spa
evyscr #
09:56
if you ever use noc, you should like 'hg blame'
dvolodin #
09:58
aermike: audit trail has been completely reworked in feature/graphite branch
_4ePTeHok #
09:59
:(
10:00
why not in develoop?
evyscr #
10:00
чо, и создание объектов by discovery записывает?
_4ePTeHok #
10:00
а у нас есть создание объектов by discovery?)
evyscr #
10:01
префиксы
10:01
объект != managed object
TSergey_ #
10:01
что такое префикс, только чур ногами не пинать
evyscr #
10:01
ipam открой, лол
_4ePTeHok #
10:02
ну скажем дописать трейл не вопрос
TSergey_ #
10:02
я там ничего кроме айпишников не понимаю :(
_4ePTeHok #
10:02
тут скорее вопрос целесообразности
evyscr #
10:02
история
10:02
когда я спросил за историю - меня послали в аудит
10:03
а так она нарушается
_4ePTeHok #
10:03
история дискавери в логах
10:03
:)
evyscr #
10:03
кому?
10:04
не всякий пользователь нока имеет доступ к логам
_4ePTeHok #
10:04
к аудиту тоже не всякий
10:04
если так -то
evyscr #
10:04
суперюзер - всякий
TSergey_ #
10:09
всякий суперюзер
zi_rus #
10:12
dvolodin, не, ну вот посмотри на https://supportforums.cisco.com/document/73251/monitoring-cpu-utilization-ios-xr-based-platforms-using-snmp-tools
10:12
придет как минимум парсить SNMPv2-SMI::mib-2.47.1.1.1.1.7.16733769 = STRING: "0/2/CPU0 - host" чтобы найти оид
dvolodin #
10:12
ну и?
zi_rus #
10:13
я к тому что это в json не засунуть, придется полноценный скрипт писать
dvolodin #
10:13
ну почему же
10:13
вот тебе простейший пример
10:13
вводим такое понятие как index table
10:14
это как раз таблица SNMP'шная
10:14
которая позволяет делать операции вида name <-> index
10:14
у нее есть базовый oid и какие-то правила разбора
10:14
ну и имя
10:15
и пусть discovery дергает все эти таблицы в рамках общего процесса
zi_rus #
10:15
ммм
dvolodin #
10:16
а в oid будем указывать что-то вроде blablabla.{name|indextable:"IOSXR_CPU"}.2
10:17
ну а технически у нас в монге будут просто коллекции с полями managed object, index table, index, name
10:17
эти индексы нам нужны в момент формирования конфигов
10:18
на самом деле там же есть и не менее серьезная задача
10:18
как связать дырки в объекте в inventory с интерфейсами в базе
10:19
чтобы при discovery сразу создавать пустые интерфейсы
TSergey_ #
10:24
сорри, что вклиниваюсь
10:24
комрады, у кого в нок заведены не только коммутатры-маршрутизатры? сервера, базы данных и прочее интересует
e_zombie1 #
10:25
профили для линиксов не живые так как требуют SU а не SUDO
10:25
ну и там полная пидорастия.
10:26
NOC-1330
evyscr #
10:26
ой, не надо
10:27
там вообще по-хорошему надо мутить тему с множеством профилей на один managed object
e_zombie1 #
10:28
пока оно не будет уметь работать с sudo ценность линуксового профиля == 0%
zi_rus #
10:29
e_zombie1, так научи
10:30
дай ноку sudo без пароля
10:30
и радуйся
evyscr #
10:30
зачем
e_zombie1 #
10:30
научу. но позднее.
evyscr #
10:30
скопируй профиль, назови linux.sudo, ..., profit
dvolodin #
10:31
не
10:31
все не так делаете
10:31
по аналогии с расширением caps discovery для микротиков
10:31
сделайте для линукса
10:31
и capabilities типа su path и sudo path
10:32
а в скрипте смотрите self.caps
10:32
что у вас там есть
10:32
ну и используйте соответсвено
evyscr #
10:32
это чо, feature-graphite?
dvolodin #
10:32
да
e_zombie1 #
10:32
нахера этот трах если везде доступ по su выпиливают. даже в сраной убунте
zi_rus #
10:32
dvolodin, про базовый оид не понял
dvolodin #
10:32
zi_rus: смотри
evyscr #
10:32
e_zombie1: вот не звездите
dvolodin #
10:32
если мы дергаем ifName, мы получаем интерфейсы
10:32
так?
e_zombie1 #
10:32
некрофилы МОЛЧАТЬ!!
zi_rus #
10:33
да
dvolodin #
10:33
ну вот он и будет базовым oid'ом для таблицы
evyscr #
10:33
e_zombie1: в некоторых дистрах вообще sudo по дефолту не устанавливается
zi_rus #
10:33
ммм
dvolodin #
10:34
ну понял идею
zi_rus #
10:34
от части
dvolodin #
10:34
мы дергаем oid по GETNEXT/GETBULK
10:34
парсим ответ и сохраняем соотвествие индекса и имени
10:34
вот тебе готовая таблица
zi_rus #
10:34
бррр
10:34
стоп
10:34
я опять запутался
e_zombie1 #
10:35
evyscr: но оно есть в репах. и не один вменяемый админ не будет давать SU если можно дать через sudo
dvolodin #
10:35
распутайся
zi_rus #
10:35
в таблице будет соответствие
evyscr #
10:35
e_zombie1: схеровле?
zi_rus #
10:35
оид и значение оида?
dvolodin #
10:35
e_zombie1: допустим, у тебя busybox в ssh
10:35
и?
10:35
ну да
10:35
смотри
10:36
IF-MIB::ifName.1 = STRING: eth0
10:36
IF-MIB::ifName.2 = STRING: eth1
10:36
IF-MIB::ifName.3 = STRING: eth2
10:36
IF-MIB::ifName.50 = STRING: radio0_ssid_id0
10:36
IF-MIB::ifName.51 = STRING: radio0_ssid_id1
10:36
IF-MIB::ifName.68 = STRING: ethsw
10:36
IF-MIB::ifName.90 = STRING: gre0
10:36
IF-MIB::ifName.500 = STRING: BR0
10:36
базовый oid -- IF-MIB::ifName
zi_rus #
10:36
так, да
dvolodin #
10:36
далее мы парсим это дело и получаем список
10:36
index = 1, name = eth0
10:36
index = 2, name eth1
10:36
...
zi_rus #
10:37
да, но это сырые данные
dvolodin #
10:37
да
10:37
далее мы их как-то именуем
10:37
например iftable
e_zombie1 #
10:37
логично. про бузибокс не подумал. но городить это для больших серверов - неоправданно
dvolodin #
10:37
и кладем в базу как -- железка, таблица, значения
zi_rus #
10:37
ну это ты именуешь таблицу
dvolodin #
10:38
e_zombie1: для серверов у вас чертовы паппеты есть
10:38
не ебите мозг
10:38
lf
10:38
да
10:38
и у меня для такой-то железки появляется таблица
10:38
а теперь смотри в обратную сторону
10:38
у нас есть oid, для преобразования которого нужна таблица
10:39
и у нас есть желание этот oid использовать
zi_rus #
10:39
нет, я тебе хочу сказать, что eth0 ни о чем не говорит, это сырое значение, оно не означает eth0 в базе интерфейсов
dvolodin #
10:39
соответсвующий метод discovery будет собирать только нужные нам таблицы
10:39
zi_rus: да, eth0 вообще ничего не говорит
10:39
я тебе в разрезе твоих CPU скорее
zi_rus #
10:40
ну хорошо. допустим
10:40
мы скриптом строим таблицу соответствия
dvolodin #
10:40
ну вот думай, как с этим жить дальше :)
zi_rus #
10:41
бардак получается
dvolodin #
10:41
предложения?
10:41
кстати к вопросу о привязке интерфейсов
zi_rus #
10:41
ifindex из get_interfaces придется выпиливать
dvolodin #
10:41
можно, конечно, попробовать использовать переменные контекста из connection rule
10:41
zi_rus: зачем?
zi_rus #
10:42
вернее не придется, но желательно
dvolodin #
10:42
отдал скрипт -- хорошо
10:42
не отдал -- черт с ним, возьмем из таблицы
zi_rus #
10:42
для единства архитектуры
dvolodin #
10:42
нет таблицы -- ну и пофиг, дернем самы
zi_rus #
10:42
иначе получаем бардак
10:43
функционал дублируется и третируется и хер знает что еще -ется
dvolodin #
10:43
zi_rus: понятно, что более общие механизмы со временем вытесняют костыли
zi_rus #
10:44
dvolodin, но это все нормально для массивов сенсоров, а с одиночными оидами как
10:44
не красиво делмать таблицу с одной записью
10:45
и потом
10:45
для генерации каждой таблицы нужен отдельный скрипт
10:45
в лучшем случае он будет один на профиль
dvolodin #
10:45
нет
10:45
скрипта не надо
zi_rus #
10:49
dvolodin, ты опять довел меня до кондиции. мне уже все равно как оно будет, главное чтобы я мог просто выбрать метрики и нок начал работать
dvolodin #
10:49
хорошие у тебя фантазии
10:50
придумай, как :)
TSergey_ #
10:54
"Я понимаю метрики как формализованные оценочные параметры трудноформализуемых процессов или результатов процессов."
10:55
что такое метрика?
zi_rus #
10:56
если коротко, то это параметр который мы измеряем
dvolodin #
10:56
TSergey_: измеряемый параметр
TSergey_ #
10:57
ура
dvolodin #
10:57
вся работа PM -- формирование метрик, получение, хранение и обработка результатов измерений
evyscr #
10:58
TSergey_: ты профиль DGS3100 часом не пилишь?
TSergey_ #
10:59
сейчас нет
10:59
а чего там не хватает?
10:59
мне вроде только только актуальных мибов, но это почти "графена"
zi_rus #
10:59
dvolodin, мы вчера ДР отмечали, а ты заставляешь меня думать. не надо так
evyscr #
10:59
там баги всплывают
11:00
например, в get_mac_address_table.py
TSergey_ #
11:02
запустил на 3.60.45, отдал таблицу
evyscr #
11:05
snmp на не скажу прямо сейчас чём именно обламывается
11:07
суть в попытке преобразования в int при значении None
TSergey_ #
11:08
это все на get_mac_address_table.py?
evyscr #
11:11
да
TSergey_ #
11:12
у меня такого нет
11:12
делай тушенку, может получится посмотреть
evyscr #
11:13
смысл?
11:14
я подозреваю, что там race
11:14
а его, как известно, не каждый раз выцепишь
11:17
проблемное значение: v = ['401.40.16.123.51.92.57', '24', None]
11:18
(в одном из случаев)
11:19
подозреваю, что в одной ветке мак уже появился, а в другой нет. Либо уже удалился/ещё нет
11:27
dvolodin: в конструкции вида 'self.snmp.get_tables(["1.3.6.1.2.1.17.7.1.2.2.1.2","1.3.6.1.2.1.17.7.1.2.2.1.3"],bulk=True)' возможен race?
dvolodin #
11:38
evyscr: какого рода?
11:38
а
11:39
конечно возможен
11:39
Ж)
11:39
они не единомоментно опрашиваются
evyscr #
11:50
ок, далее, в нокопитоне имени guarded_run конструкция 'if x and int(x) > 2:' не вызовет трейса при x == None?
B_M #
11:57
неа
dvolodin #
13:09
не вызовет
14:02
http://i68.fastpic.ru/big/2014/1113/24/3274166649f2fcb5e5540645583f8524.png
buggy-funhouse #
14:02
радости snmp?
xetle #
14:03
годно
zi_rus #
14:03
dvolodin, и как? раком не встает если точек за год с минутным интервалом для 10 метрик дергать?
14:03
для 10 графиков
dvolodin #
14:04
GET /pm/render/?_dc=1415887641216&format=json&target=object.rap3-1.interface.eth0.interface.load.in&until=1415887641&from=1415884041&maxDataPoints=900
14:04
научил его выдавать maxDataPoints
14:04
сервер еще буду учить агрегировать
buggy-funhouse #
14:04
zi_rus: zabbix же не встаёт
zi_rus #
14:04
про заббикс не знаю, а графана встает
14:05
у заббикса серверный рендер
14:05
там похер
14:05
а тут js на клиенте рисует
buggy-funhouse #
14:05
ну а зачем, спрашивается.
zi_rus #
14:06
у js интерактивность лучше
buggy-funhouse #
14:06
т.е.?
zi_rus #
14:06
значение в каждой точке можно узнавать наведением мыши
14:06
отключать метрики с отображения
B_M #
14:06
пилите, Шура, пилите, она ведь золотая )
zi_rus #
14:06
и включать обратно
B_M #
14:06
как то так вроде
buggy-funhouse #
14:06
"они, золотые"
B_M #
14:06
ну ок
evyscr #
14:09
"Вы не знаете Володина. Володин вас всех посадит на питон, на джаваскрипт и снова на питон. Но уже дороже."
_4ePTeHok #
14:14
там в цепочке должна фигурировать джанга экст и графана.
evyscr #
14:21
default, develop, feature-graphite
dvolodin #
14:23
тадам
14:23
все, теперь какие-никакие, но графики есть :)
evyscr #
14:23
когда смерть?
dvolodin #
14:25
над интерактивностью еще поработаю
zi_rus #
14:26
dvolodin, мы тут задаемся вопросом, а зачем? если есть графана
dvolodin #
14:26
в карте сети ты графаной рисовать будешь?
zi_rus #
14:29
dvolodin, а ты weathermap решил замутить?
14:29
а трешолды так и не работают
dvolodin #
14:30
zi_rus: а ты их сделал?
zi_rus #
14:30
я реквестировал. первый шаг выполнен
buggy-funhouse #
14:36
dvolodin: что будет на подкасте?
dvolodin #
14:38
общий обзор OSS
zi_rus #
14:42
новых ботов в чат завлекаешь
buggy-funhouse #
14:52
смотреть на сиськи
14:52
завтра пятница!
dvolodin #
15:06
сделал maxDataPoints со стороны сервера
FrostingMan #
20:32
Привет. При запуске ./scripts/upgrade на RHEL6 получаю ошибку "pymongo.errors.DuplicateKeyError: E11000 duplicate key error index: noc.noc.isequences.$_id_ dup key: { : "pm.ts" }"
20:32
что надо поправить ?
Tweet
Share this page
Share this page: Tweet