Название: Mikrotik API
Отправлено: Efendy от 17 Ноября 2013, 11:49:43
Расскажите в чем была проблема в Н50 в управлении Микротика по АПИ? По АПИ в принципе тормознуто или неправильно его использовал? Т.е. есть смысл портировать с Н50 и исправить недочеты или писать под ssh?
Название: Re: Mikrotik API
Отправлено: elite от 17 Ноября 2013, 14:22:33
может работать через радиус?
Название: Re: Mikrotik API
Отправлено: Efendy от 18 Ноября 2013, 13:04:20
т.е. радиус + CoA - это самое оптимальное решение и всех устроит?
Название: Re: Mikrotik API
Отправлено: stek от 29 Ноября 2013, 22:21:26
Модуль управления NAS-ом (Сателлит) должен соответствовать правилам работы с сателлитами этого биллинга и работать как демон, должно контролироваться потребление модулем памяти. Можно сделать на базе уже существующего. Требования по доработке: -ликвидировать главный недостаток модуля в дублировании списков AccessList. -убрать ошибки модуля при создании записей в разделе Queue -обьеденить Queue для учетной записи с несколькоими IP для того чтоб пользователь со всеми своими IP ходит в один канал а не на каждый IP отдельная дырка. -Перенастроить модуль на создание (и обязательно удаление) TreeQueues. Логика, описана вот тут _ttp://habrahabr.ru/blogs/sysadm/131295/ -поделить списки разрешённых к доступу абонентов по ID тарифов (например, 01_online, 02_online…) -не обязательно, но желательно. Отдельно вести списки отключённых абонентов (напрпимер, 01_offline, 02_inline…) -сделать «правильную» синхронизацию с биллингом, когда изменения в Списки и в Очереди вносятся только если происходят изменения в биллинге, а не каждый цикл обхода скриптом списков пользователей. То есть, данные получаются из Тика, сверяются и изменяются только если данные изменились. -добавить возможность запуска нескольких сателлитов, управляющих разными NAS-ами. Для каждого будет заведена отдельная группа пользователей в биллинге. Обычный скрипт, который просто делает перезапуск исполняемого скрипта второго сателлита каждые N-минут не годится, нужно что бы так же как и задумано изначально, это был отдельный демон. - в модуле сделать возможность указания версии RouterOS для mikrotik 5-6 так как Queue отличатся поле =target=$ip", и =target-address=$ip", - В админке добавить возможность добавлять очередной роутер с возможностью указания версии rOS (так как обычно их несколько)
Название: Re: Mikrotik API
Отправлено: Efendy от 30 Ноября 2013, 23:29:43
Ой, мамааа, почему вы микротики такие сложные? Нет, спасибо, лучше я тут на Freebsd постою. Это недели 2 работы. Если переводить в оплату, скажем, в соответствии с моей текущей работой, то это 2 тыс. у.е. К сожалению микротик будет отдыхать
Название: Re: Mikrotik API
Отправлено: boomer666 от 01 Декабря 2013, 09:32:13
мне бы полезна была поддержка сателлитов из микротика) . 2000$ для одного меня это много
но готов поддержать тех людей кто готов скинутся
Название: Re: Mikrotik API
Отправлено: omega от 01 Декабря 2013, 15:38:09
Меня тоже интересует поддержка микротика!
1.Нужно микротик научить DHCP+radius, IPoE 2.Добавить возможность отправки личный сообщений клиентам с требованием прочтения и возможность использовать заглушку. 3.Использовать адрес лист не всей базы данных а только обслуживающей группы клиентов. 4.Добавление новых сателлитов из админки, без ковыряния msql.
Разницы на чем будет данный модуль работать API или SSH нет. PS: Нужно сделать что бы разницы работы между сателлитом на МТ и freebsd не было. Микротик перспективнее части компактности и энергопотребления для построения разнесенных сетей в пределах области.
Готов поучаствовать в спонсорстве данной разработки.
Название: Re: Mikrotik API
Отправлено: stek от 04 Декабря 2013, 09:08:14
Ой, мамааа, почему вы микротики такие сложные? Нет, спасибо, лучше я тут на Freebsd постою. Это недели 2 работы. Если переводить в оплату, скажем, в соответствии с моей текущей работой, то это 2 тыс. у.е. К сожалению микротик будет отдыхать
зачем тогда вы взялись ПРОДАВАТЬ продукт если тут же говорите, дай тех задание а потом открещиваетесь от него? Безмерная радость конечно за хорошую зарплату, НО. Вы дали продукт и подписались его поддерживать. А в итоге слово не держите.
Название: Re: Mikrotik API
Отправлено: Efendy от 04 Декабря 2013, 10:04:39
Т.е. я должен поддерживать все возможные комбинации оборудования и хотелок? Спасибо, когда я стану богом, я займусь чем-нибудь другим, а не NoDeny.
Все, что перечислено - это оверхед логики, а это признак, что будет глючить как поменяется направление ветра или влажность воздуха. Есть куча протоколов, которая четко описывает логику и соблюдая правила, все корректно работает. А микротик... ну 5 лет назад я нашел кучу багов в их перловом апи, написал в форуме, что-то изменилось? Нихуя, похуй им на нюансы, хавайте, что дают типа. Спасибо, я постою с нормальными продуктами
Название: Re: Mikrotik API
Отправлено: boomer666 от 04 Декабря 2013, 12:02:20
не нужно много хотелок сразу.
достаточно сделать чтото похожее как у abills
Название: Re: Mikrotik API
Отправлено: stek от 09 Декабря 2013, 19:02:55
Т.е. я должен поддерживать все возможные комбинации оборудования и хотелок? Спасибо, когда я стану богом, я займусь чем-нибудь другим, а не NoDeny.
не нужно хотелки, ребята ну это как то совсем не гут. сначала ещё в 49й версии вы выбрасывает модуль для микротика. Затем он изчезает, и за тем у вас народ уже 4 года просит дописать модуль под !ОДИН! микротик. причём как то старанно получается, тут же вы говорите ставь тех задание и тут же открещиваетесь
Название: Re: Mikrotik API
Отправлено: Efendy от 09 Декабря 2013, 20:20:12
Я же объяснял причины. Коротко пройдусь по ним:
- В н49/н50 через АПИ работает нестабильно, хотя я четко следовал документации и предусмотрел синхронизацию состояний. - Количество требований, учитывающих лажовость АПИ, такое - что мне пока нерационально их делать - работы, я бы даже сказал еботни, много, а результат еще неизвестен. - Сами создатели микротика не очень-то заинтересованы чтобы их АПИ в частности на перле работало нормально - у них там фатальные ошибки, на которые они забили. - Опытные люди утверждают, что следует смотреть в сторону управления микротиком через радиус - выдавать скорость через радиус (я это скоро сделаю, как освобожусь чуток). Останется CoA для вырубания сессий.
Название: Re: Mikrotik API
Отправлено: Efendy от 11 Декабря 2013, 17:46:13
-убрать ошибки модуля при создании записей в разделе Queue
что за ошибки? если это связано с тем, что очередь создается если она уже создана - это описано еще в Н50, там же сказано почему это сделано - для ускорения все запросы на изменения данных асинхронные, льются потоком. Т.е. не анализируется ответ от микротика успешно ли изменилась очередь или нет. Принят простой алгоритм: создам очередь (если уже создана - ничего страшного, ошибку игнорим), устанавливаем данные очереди. Если это критично (я тестирую и вижу, что вроде нет), то можно помучиться и исправить -поделить списки разрешённых к доступу абонентов по ID тарифов (например, 01_online, 02_online…) -не обязательно, но желательно. Отдельно вести списки отключённых абонентов (напрпимер, 01_offline, 02_inline…)
просто заносить/удалять ip из этих списков? -сделать «правильную» синхронизацию с биллингом, когда изменения в Списки и в Очереди вносятся только если происходят изменения в биллинге, а не каждый цикл обхода скриптом списков пользователей. То есть, данные получаются из Тика, сверяются и изменяются только если данные изменились.
Ну оно так и работало и работает сейчас: получаем списки и пытаемся послать на микротик команды только если есть отличия. P.S. Понял, почему оно не работало в предыдущей версии, в ответе не обрабатывались суфиксы 'k' и 'M', поэтому считалось, что скорость на микротике не соответствует действительности и постоянно менялась. В Н+ этого бага нет
Название: Re: Mikrotik API
Отправлено: Efendy от 12 Декабря 2013, 18:49:54
Хочу сказать, что 2й день полет нормальный. Я более чем доволен, отмечу некоторые моменты:
1) биллинг и микротик находятся в разных городах 2) обслуживается реальная сеть с >500 абонов, ~300 абонов авторизованных, динамическое изменение скоростей 3) тестировались перезагрузка микротика, очищение аксесс листов и очередей, блокировка трафика через фаервол - после устранения проблемы все синхронизировалось отлично 4) есть возможность управлять несколькими микротиками, запускалась 2-я копия на управление тем же микротиком и были отключены скрипты по управлению скоростями, в итоге скрипты управления микротиком соревновались кто же докажет микротичку, что у клиента должна быть именно такая скорость. Никто не упал 5) посылка на микротик команды только если данные на нем не соответствуют действительности, для очередей сделал тоже самое, причем без лишней команды add
6) Ну и где, бля, та толпа людей, которая е* мне мозги "дайте модуль микротика"? На кого я потратил 2 дня моего времени?
Название: Re: Mikrotik API
Отправлено: omega от 12 Декабря 2013, 20:41:24
А какая авторизация абонентов на новом скрипте, и как он работает через радиус?
Название: Re: Mikrotik API
Отправлено: Efendy от 12 Декабря 2013, 22:33:52
Причем здесь авторизация? Этот скрипт управляет доступом и скоростями
Название: Re: Mikrotik API
Отправлено: YuSHa от 13 Декабря 2013, 09:22:45
будет модулем? уже доступно для покупки? или сколько денег перечислить?
Название: Re: Mikrotik API
Отправлено: YuSHa от 13 Декабря 2013, 09:28:31
в данный момент у N+ коллектором выступает ipcad, а как быть с микротиком?
Название: Re: Mikrotik API
Отправлено: YuSHa от 13 Декабря 2013, 09:41:06
готов поучаствовать в тестировании и внести свою материальную помощь :)
Название: Re: Mikrotik API
Отправлено: Efendy от 15 Декабря 2013, 20:08:27
в данный момент у N+ коллектором выступает ipcad, а как быть с микротиком?
ну, мы с тобой в скайпе договорились о тестировании, после этого посмотрю что можно сделать по нетфлоу - коллекторы н+ от н50 не сильно отличаются
Название: Re: Mikrotik API
Отправлено: Efendy от 16 Декабря 2013, 15:18:17
Кстати, 5й день полет нормальный. Зашел на микротик, очистил все очереди - через несколько секунд обновились. Все ок
Название: Re: Mikrotik API
Отправлено: boomer666 от 18 Декабря 2013, 15:13:19
готов приобрести модуль и сразу тестировать
Название: Re: Mikrotik API
Отправлено: YuSHa от 18 Декабря 2013, 15:23:16
подготавливаю модуль к нагрузке 1к онлайна :)
Название: Re: Mikrotik API
Отправлено: boomer666 от 18 Декабря 2013, 15:24:17
подготавливаю модуль к нагрузке 1к онлайна :)
а трафика скок?
Название: Re: Mikrotik API
Отправлено: YuSHa от 18 Декабря 2013, 15:56:15
под 500 мбит в чнн
Название: Re: Mikrotik API
Отправлено: Efendy от 22 Декабря 2013, 11:39:42
Выложил модуль Микротика, 800 грн. Пока инструкцию не написал, как напишу - создам отдельную ветку
Название: Re: Mikrotik API
Отправлено: vktr от 05 Февраля 2014, 00:25:47
Думаем купить, хотелось бы инструкцию
Название: Re: Mikrotik API
Отправлено: YuSHa от 05 Февраля 2014, 10:10:14
ничего сложного. 1 распаковать модуль и положить в папку modules 2 подредактировать create.cfg.mikrotik.cfg.pm 3 создать юзера на микротике и пропустить IP биллинга через фаервол + IP микротика через фаервол биллинга 4 запустить модуль (прописать в rc.local строку "/usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik.cfg.pm -d &") получите управление шейпером и аксеслистом.
есть ещё модуль съема статистики с микротика по netflow. настраивается тоже с пол пинка по интрукции для нодени 49
Название: Re: Mikrotik API
Отправлено: YuSHa от 12 Февраля 2014, 09:50:12
попробовали позавчера запустить в бой с управлением 3-я микротиками. начали отпадать коннекты с микротиками и проблемы коннектов радиуса к БД. лог mysqld 140108 14:35:33 [Note] /usr/local/libexec/mysqld: ready for connections. Version: '5.5.28' socket: '/tmp/mysql.sock' port: 3306 Source distribution 140210 6:59:09 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 6:59:09 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 6:59:09 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 6:59:09 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 6:59:09 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 6:59:09 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:03:35 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:03:35 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:07:25 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:07:25 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:07:25 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:07:25 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:07:25 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:07:25 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:19:16 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:19:16 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:28:01 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:28:01 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:30:14 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:30:14 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:31:26 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:31:26 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:32:47 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:32:47 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:32:47 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:32:47 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:33:33 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:33:33 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:36:47 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:36:47 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:37:07 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:37:07 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:39:56 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:39:56 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:39:56 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:39:56 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:40:42 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:40:42 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:40:42 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:40:42 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:48:07 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:48:07 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:48:07 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:48:07 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:48:07 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:48:07 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:48:37 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:48:37 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:48:37 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:48:37 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:56:19 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:56:19 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:56:19 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:56:19 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 7:59:15 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 7:59:15 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:00:52 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:00:52 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:00:52 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:00:52 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:00:52 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:00:52 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:03:06 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:03:06 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:03:06 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:03:06 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:04:02 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:04:02 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:04:02 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:04:02 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:04:02 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:04:02 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:04:35 [Note] /usr/local/libexec/mysqld: Normal shutdown
140210 8:04:35 [Note] Event Scheduler: Purging the queue. 0 events 140210 8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 33833 user: 'nodeny'
140210 8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 33832 user: 'nodeny'
140210 8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 33831 user: 'nodeny'
140210 8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 33830 user: 'nodeny'
140210 8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 33829 user: 'nodeny'
140210 8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 7 user: 'nodeny'
140210 8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 5 user: 'nodeny'
140210 8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 3 user: 'nodeny'
140210 8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 1 user: 'nodeny'
140210 8:04:38 InnoDB: Starting shutdown... 140210 8:04:41 InnoDB: Shutdown completed; log sequence number 186218651 140210 8:04:41 [Note] /usr/local/libexec/mysqld: Shutdown complete
140210 08:04:42 mysqld_safe mysqld from pid file /var/db/mysql/bill.xxx.com.ua.pid ended 140210 08:07:05 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql 140210 8:07:06 InnoDB: The InnoDB memory heap is disabled 140210 8:07:06 InnoDB: Mutexes and rw_locks use GCC atomic builtins 140210 8:07:06 InnoDB: Compressed tables use zlib 1.2.7 140210 8:07:06 InnoDB: Initializing buffer pool, size = 128.0M 140210 8:07:06 InnoDB: Completed initialization of buffer pool 140210 8:07:06 InnoDB: highest supported file format is Barracuda. 140210 8:07:06 InnoDB: Waiting for the background threads to start 140210 8:07:07 InnoDB: 1.1.8 started; log sequence number 186218651 140210 8:07:07 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306 140210 8:07:07 [Note] - '0.0.0.0' resolves to '0.0.0.0'; 140210 8:07:07 [Note] Server socket created on IP: '0.0.0.0'. 140210 8:07:08 [Warning] 'user' entry 'root@bill.xxx.com.ua' ignored in --skip-name-resolve mode. 140210 8:07:08 [Warning] 'user' entry '@bill.xxx.com.ua' ignored in --skip-name-resolve mode. 140210 8:07:08 [Warning] 'proxies_priv' entry '@ root@bill.xxx.com.ua' ignored in --skip-name-resolve mode. 140210 8:07:08 [Note] Event Scheduler: Loaded 0 events 140210 8:07:08 [Note] /usr/local/libexec/mysqld: ready for connections. Version: '5.5.28' socket: '/tmp/mysql.sock' port: 3306 Source distribution 140210 8:07:23 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:07:23 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:07:23 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:07:23 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:07:23 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:07:23 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:07:28 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:07:28 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:07:28 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:07:28 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140210 8:07:48 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140210 8:07:48 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
лог radiusd Mon Feb 10 06:55:09 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #4 Mon Feb 10 06:55:09 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #4 Mon Feb 10 06:55:09 2014 : Info: rlm_sql (sql): Connected new DB handle, #4 Mon Feb 10 06:55:17 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #2 Mon Feb 10 06:55:17 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #2 Mon Feb 10 06:55:17 2014 : Info: rlm_sql (sql): Connected new DB handle, #2 Mon Feb 10 06:55:21 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #0 Mon Feb 10 06:55:21 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #0 Mon Feb 10 06:55:21 2014 : Info: rlm_sql (sql): Connected new DB handle, #0 Mon Feb 10 06:55:22 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #3 Mon Feb 10 06:55:22 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #3 Mon Feb 10 06:55:22 2014 : Info: rlm_sql (sql): Connected new DB handle, #3 Mon Feb 10 06:55:32 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #1 Mon Feb 10 06:55:32 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #1 Mon Feb 10 06:55:32 2014 : Info: rlm_sql (sql): Connected new DB handle, #1 Mon Feb 10 06:56:50 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:56:59 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:57:00 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:57:19 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:57:20 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:57:32 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:57:54 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:57:59 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:58:19 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:58:39 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:58:44 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:58:57 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:59:05 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:59:09 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:59:09 2014 : Error: rlm_sql_getvpdata: database query error Mon Feb 10 06:59:09 2014 : Error: [sql] SQL query error; rejecting user Mon Feb 10 06:59:09 2014 : Error: rlm_sql_getvpdata: database query error Mon Feb 10 06:59:09 2014 : Error: [sql] SQL query error; rejecting user Mon Feb 10 06:59:09 2014 : Error: rlm_sql_getvpdata: database query error Mon Feb 10 06:59:09 2014 : Error: [sql] SQL query error; rejecting user Mon Feb 10 06:59:21 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:59:30 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:59:43 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:59:49 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 06:59:50 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 07:00:01 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 07:00:11 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 07:00:14 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 07:00:26 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 07:00:36 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Mon Feb 10 07:00:43 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
запущенные процессы # ps ax | grep pl 1545 ?? Ss 183:23.70 /usr/local/bin/flow-capture -R /var/db/flows/netflow_8888.pl -p /var/run/flow-capture/flow-capture.pid -w / 1592 ?? Ss 0:29.40 /usr/local/bin/perl /usr/local/lib/webmin/miniserv.pl /usr/local/etc/webmin/miniserv.conf 1546 v0- S 10:06.02 /usr/bin/perl /usr/local/nodeny/nokernel.pl -d (perl5.14.4) 1547 v0- S 74:27.55 /usr/bin/perl /usr/local/nodeny/noserver.pl -d (perl5.14.4) 1548 v0- S 125:23.75 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=collectors -d (perl5.14.4) 1549 v0- S 61:02.55 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d (perl5.14.4) 1550 v0- S 98:11.36 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_82.cfg.pm -d (perl5.14.4) 1551 v0- S 98:21.77 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_84.cfg.pm -d (perl5.14.4) 1552 v0- S 253:03.35 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_250.cfg.pm -d (perl5.14.4) 2115 0 RL+ 0:00.01 grep pl
Как я понял проблема с недоступностью таблиц на чтение из-за локов в связи с большим количеством запросов? в конфиге my.cnf значение max_connections по умолчанию = 100 может ли это быть связано с увеличением параметра start_servers в конфиге radiusd.conf?
Название: Re: Mikrotik API
Отправлено: Efendy от 12 Февраля 2014, 10:48:05
Выполни в mysql под рутовой учеткой:
SHOW ENGINE INNODB STATUS\G
Название: Re: Mikrotik API
Отправлено: YuSHa от 12 Февраля 2014, 11:25:53
mysql> SHOW ENGINE INNODB STATUS\G; *************************** 1. row *************************** Type: InnoDB Name: Status: ===================================== 140212 11:23:54 INNODB MONITOR OUTPUT ===================================== Per second averages calculated from the last 40 seconds ----------------- BACKGROUND THREAD ----------------- srv_master_thread loops: 184143 1_second, 184142 sleeps, 18341 10_second, 732 background, 731 flush srv_master_thread log flush and writes: 184206 ---------- SEMAPHORES ---------- OS WAIT ARRAY INFO: reservation count 1867, signal count 1957 Mutex spin waits 22749, rounds 56076, OS waits 415 RW-shared spins 1453, rounds 41278, OS waits 1329 RW-excl spins 46, rounds 2207, OS waits 58 Spin rounds per wait: 2.46 mutex, 28.41 RW-shared, 47.98 RW-excl ------------------------ LATEST DETECTED DEADLOCK ------------------------ 140210 8:07:48 *** (1) TRANSACTION: TRANSACTION 7F3902, ACTIVE 0 sec fetching rows mysql tables in use 1, locked 1 LOCK WAIT 6 lock struct(s), heap size 1248, 20 row lock(s) MySQL thread id 13, OS thread handle 0x8272fec00, query id 4266 localhost nodeny Searching rows for update UPDATE ip_pool SET uid=0 WHERE type='dynamic' AND uid>0 AND `release`<UNIX_TIMESTAMP() *** (1) WAITING FOR THIS LOCK TO BE GRANTED: RECORD LOCKS space id 0 page no 365 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id 7F3902 lock_mode X locks rec but not gap waiting Record lock, heap no 4 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000013f6; asc ;; 1: len 6; hex 0000007f38a0; asc 8 ;; 2: len 7; hex 190000022b1cc6; asc + ;; 3: len 4; hex ac100003; asc ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 52f86dde; asc R m ;; 7: len 8; hex 0000000000000028; asc (;; 8: len 0; hex ; asc ;;
*** (2) TRANSACTION: TRANSACTION 7F38F8, ACTIVE 0 sec fetching rows mysql tables in use 4, locked 3 5 lock struct(s), heap size 3112, 29 row lock(s) MySQL thread id 10, OS thread handle 0x8272fe000, query id 4254 localhost nodeny init UPDATE ip_pool SET uid = NAME_CONST('user_id',1647), `release` = UNIX_TIMESTAMP() + 300 WHERE (uid = 0 OR uid = NAME_CONST('user_id',1647)) AND type = 'dynamic' AND realip = IF( NAME_CONST('real_ip',NULL)>0,1,0) ORDER BY uid DESC, id ASC LIMIT 1 *** (2) HOLDS THE LOCK(S): RECORD LOCKS space id 0 page no 365 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id 7F38F8 lock_mode X locks rec but not gap Record lock, heap no 2 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000013f4; asc ;; 1: len 6; hex 0000007f2746; asc 'F;; 2: len 7; hex 07000003b11737; asc 7;; 3: len 4; hex ac100001; asc ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 52f86cdb; asc R l ;; 7: len 8; hex 0000000000000311; asc ;; 8: len 0; hex ; asc ;;
Record lock, heap no 3 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000013f5; asc ;; 1: len 6; hex 0000007f3834; asc 84;; 2: len 7; hex 4d0000045c10b4; asc M \ ;; 3: len 4; hex ac100002; asc ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 52f86ddb; asc R m ;; 7: len 8; hex 00000000000001b0; asc ;; 8: len 0; hex ; asc ;;
Record lock, heap no 4 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000013f6; asc ;; 1: len 6; hex 0000007f38a0; asc 8 ;; 2: len 7; hex 190000022b1cc6; asc + ;; 3: len 4; hex ac100003; asc ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 52f86dde; asc R m ;; 7: len 8; hex 0000000000000028; asc (;; 8: len 0; hex ; asc ;;
Record lock, heap no 5 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000013f7; asc ;; 1: len 6; hex 0000007f2ff7; asc / ;; 2: len 7; hex 61000004640ad4; asc a d ;; 3: len 4; hex ac100004; asc ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 52f86d17; asc R m ;; 7: len 8; hex 000000000000077b; asc {;; 8: len 0; hex ; asc ;;
Record lock, heap no 6 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000013f8; asc ;; 1: len 6; hex 0000007f33cb; asc 3 ;; 2: len 7; hex 11000001602401; asc `$ ;; 3: len 4; hex ac100005; asc ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 52f86dbd; asc R m ;; 7: len 8; hex 000000000000026e; asc n;; 8: len 0; hex ; asc ;;
Record lock, heap no 7 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000013f9; asc ;; 1: len 6; hex 0000007f32d5; asc 2 ;; 2: len 7; hex 7e0000038121ac; asc ~ ! ;; 3: len 4; hex ac100006; asc ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 52f86dbc; asc R m ;; 7: len 8; hex 000000000000044e; asc N;; 8: len 0; hex ; asc ;;
Record lock, heap no 8 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000013fa; asc ;; 1: len 6; hex 0000007f3052; asc 0R;; 2: len 7; hex 200000038d1d19; asc ;; 3: len 4; hex ac100007; asc ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 52f86d1c; asc R m ;; 7: len 8; hex 000000000000032e; asc .;; 8: len 0; hex ; asc ;;
Record lock, heap no 9 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000013fb; asc ;; 1: len 6; hex 0000007f2642; asc &B;; 2: len 7; hex 59000002002293; asc Y " ;; 3: len 4; hex ac100008; asc ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 52f86cd5; asc R l ;; 7: len 8; hex 0000000000000777; asc w;; 8: len 0; hex ; asc ;;
Record lock, heap no 10 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000013fc; asc ;; 1: len 6; hex 0000007f2352; asc #R;; 2: len 7; hex 550000039b1054; asc U T;; 3: len 4; hex ac100009; asc ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 52f86cbc; asc R l ;; 7: len 8; hex 0000000000000669; asc i;; 8: len 0; hex ; asc ;;
*** (2) WAITING FOR THIS LOCK TO BE GRANTED: RECORD LOCKS space id 0 page no 365 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id 7F38F8 lock_mode X locks rec but not gap waiting Record lock, heap no 11 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000013fd; asc ;; 1: len 6; hex 0000007f2246; asc "F;; 2: len 7; hex 1f00000399168b; asc ;; 3: len 4; hex ac10000a; asc ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 52f86cb7; asc R l ;; 7: len 8; hex 000000000000000d; asc ;; 8: len 0; hex ; asc ;;
*** WE ROLL BACK TRANSACTION (2) ------------ TRANSACTIONS ------------ Trx id counter 8173F6 Purge done for trx's n:o < 816F1C undo n:o < 0 History list length 1899 LIST OF TRANSACTIONS FOR EACH SESSION: ---TRANSACTION 0, not started MySQL thread id 3301, OS thread handle 0x827300000, query id 538144 localhost root SHOW ENGINE INNODB STATUS ---TRANSACTION 8173F5, not started MySQL thread id 13, OS thread handle 0x8272fec00, query id 538137 localhost nodeny ---TRANSACTION 7F5401, not started MySQL thread id 4, OS thread handle 0x8272fc800, query id 538128 localhost nodeny ---TRANSACTION 816869, not started MySQL thread id 1, OS thread handle 0x8272fbc00, query id 538143 localhost nodeny ---TRANSACTION 816F28, not started MySQL thread id 2, OS thread handle 0x8272fc000, query id 538134 localhost nodeny ---TRANSACTION 816F22, not started MySQL thread id 5, OS thread handle 0x8272fcc00, query id 538110 localhost nodeny ---TRANSACTION 81686A, not started MySQL thread id 3, OS thread handle 0x8272fc400, query id 538140 localhost nodeny -------- FILE I/O -------- I/O thread 0 state: waiting for i/o request (insert buffer thread) I/O thread 1 state: waiting for i/o request (log thread) I/O thread 2 state: waiting for i/o request (read thread) I/O thread 3 state: waiting for i/o request (read thread) I/O thread 4 state: waiting for i/o request (read thread) I/O thread 5 state: waiting for i/o request (read thread) I/O thread 6 state: waiting for i/o request (write thread) I/O thread 7 state: waiting for i/o request (write thread) I/O thread 8 state: waiting for i/o request (write thread) I/O thread 9 state: waiting for i/o request (write thread) Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] , ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0 Pending flushes (fsync) log: 0; buffer pool: 0 774 OS file reads, 20281 OS file writes, 9272 OS fsyncs 0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 0, seg size 2, 5 merges merged operations: insert 305, delete mark 0, delete 0 discarded operations: insert 0, delete mark 0, delete 0 Hash table size 276707, node heap has 36 buffer(s) 8.20 hash searches/s, 6.00 non-hash searches/s --- LOG --- Log sequence number 188680511 Log flushed up to 188680511 Last checkpoint at 188680511 0 pending log writes, 0 pending chkp writes 5717 log i/o's done, 0.00 log i/o's/second ---------------------- BUFFER POOL AND MEMORY ---------------------- Total memory allocated 137363456; in additional pool allocated 0 Dictionary memory allocated 202542 Buffer pool size 8192 Free buffers 7295 Database pages 861 Old database pages 317 Modified db pages 0 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 3, not young 0 0.00 youngs/s, 0.00 non-youngs/s Pages read 764, created 97, written 16630 0.00 reads/s, 0.00 creates/s, 0.00 writes/s Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 861, unzip_LRU len: 0 I/O sum[0]:cur[0], unzip sum[0]:cur[0] -------------- ROW OPERATIONS -------------- 0 queries inside InnoDB, 0 queries in queue 1 read views open inside InnoDB Main thread id 34401729536, state: sleeping Number of rows inserted 2082, updated 3135, deleted 1380, read 83562130 0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 365.79 reads/s ---------------------------- END OF INNODB MONITOR OUTPUT ============================
1 row in set (0.01 sec)
ERROR: No query specified
mysql>
Название: Re: Mikrotik API
Отправлено: Efendy от 12 Февраля 2014, 12:59:45
Понятно. Видел уже эту проблему - мускул попадает в дедлок, когда по логике не должен. Пока временно переведи всех на статические ip, а я подумаю об изменении процедуры выдачи ip чтобы в дедлок не попадало
Название: Re: Mikrotik API
Отправлено: YuSHa от 27 Марта 2014, 16:21:02
есть подвижки? а то очень не удобно(((
Название: Re: Mikrotik API
Отправлено: Efendy от 27 Марта 2014, 17:40:13
давно пофикшено
Название: Re: Mikrotik API
Отправлено: YuSHa от 28 Марта 2014, 12:07:55
спс :)
Название: Re: Mikrotik API
Отправлено: YuSHa от 29 Марта 2014, 07:39:14
дабавил всем статику, запустилось всего 700 онлайн из 900 на микротике, в биллинге при этом было авторизировано не более 200 учеток онлайна(хотя маков по регистрации pppoe насыпало 254 шт)...причем то прыгало то чуть больше то чуть меньше....такое чувство что пачками оваливались. потом удалил статику у всех. поднялось 100 учеток и все( [root@bill ~]# ps ax | grep pl 1359 ?? Ss 0:37.80 /usr/local/bin/flow-capture -R /var/db/flows/netflow_8888.pl -p /var/run/flow-capture/flow-capture.pid -w /var/db/flows -n1 -N0 0.0. 1406 ?? Ss 0:00.57 /usr/local/bin/perl /usr/local/lib/webmin/miniserv.pl /usr/local/etc/webmin/miniserv.conf 4354 ?? I 0:21.12 /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/db/mysql --plugin-dir=/usr/ 1360 v0- S 0:12.14 /usr/bin/perl /usr/local/nodeny/nokernel.pl -d (perl5.14.4) 1361 v0- S 1:35.20 /usr/bin/perl /usr/local/nodeny/noserver.pl -d (perl5.14.4) 1362 v0- S 0:35.77 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=collectors -d (perl5.14.4) 1363 v0- S 0:59.04 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d (perl5.14.4) 1364 v0- S 2:38.25 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_82.cfg.pm -d (perl5.14.4) 1365 v0- S 2:38.60 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_84.cfg.pm -d (perl5.14.4) 1366 v0- S 2:36.85 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_250.cfg.pm -d (perl5.14.4) 4591 5 RL+ 0:00.00 grep pl [root@bill ~]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 17 Server version: 5.5.28 Source distribution
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use nodeny; Database changed mysql> SHOW ENGINE INNODB STATUS\G *************************** 1. row *************************** Type: InnoDB Name: Status: ===================================== 140329 7:29:06 INNODB MONITOR OUTPUT ===================================== Per second averages calculated from the last 2 seconds ----------------- BACKGROUND THREAD ----------------- srv_master_thread loops: 662 1_second, 661 sleeps, 66 10_second, 2 background, 2 flush srv_master_thread log flush and writes: 669 ---------- SEMAPHORES ---------- OS WAIT ARRAY INFO: reservation count 319, signal count 360 Mutex spin waits 7099, rounds 32155, OS waits 153 RW-shared spins 193, rounds 4524, OS waits 101 RW-excl spins 11, rounds 538, OS waits 10 Spin rounds per wait: 4.53 mutex, 23.44 RW-shared, 48.91 RW-excl ------------------------ LATEST DETECTED DEADLOCK ------------------------ 140329 7:25:53 *** (1) TRANSACTION: TRANSACTION ADE886, ACTIVE 0 sec fetching rows mysql tables in use 1, locked 1 LOCK WAIT 6 lock struct(s), heap size 1248, 66 row lock(s) MySQL thread id 3, OS thread handle 0x8277ef800, query id 11390 localhost nodeny Searching rows for update UPDATE ip_pool SET uid=0 WHERE type='dynamic' AND uid>0 AND `release`<UNIX_TIMESTAMP() *** (1) WAITING FOR THIS LOCK TO BE GRANTED: RECORD LOCKS space id 0 page no 465 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id ADE886 lock_mode X locks rec but not gap waiting Record lock, heap no 2 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000028ee; asc ( ;; 1: len 6; hex 000000ade777; asc w;; 2: len 7; hex 1b0000020a08c5; asc ;; 3: len 4; hex 0a640002; asc d ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 53365a5e; asc S6Z^;; 7: len 8; hex 0000000000000168; asc h;; 8: len 0; hex ; asc ;;
*** (2) TRANSACTION: TRANSACTION ADE881, ACTIVE 0 sec fetching rows mysql tables in use 4, locked 3 5 lock struct(s), heap size 3112, 14 row lock(s) MySQL thread id 11, OS thread handle 0x82bd86000, query id 11386 localhost nodeny init UPDATE ip_pool SET uid = NAME_CONST('user_id',1950), `release` = UNIX_TIMESTAMP() + 300 WHERE (uid = 0 OR uid = NAME_CONST('user_id',1950)) AND type = 'dynamic' AND realip = IF( NAME_CONST('real_ip',NULL)>0,1,0) ORDER BY uid DESC, id ASC LIMIT 1 *** (2) HOLDS THE LOCK(S): RECORD LOCKS space id 0 page no 465 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id ADE881 lock_mode X locks rec but not gap Record lock, heap no 2 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000028ee; asc ( ;; 1: len 6; hex 000000ade777; asc w;; 2: len 7; hex 1b0000020a08c5; asc ;; 3: len 4; hex 0a640002; asc d ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 53365a5e; asc S6Z^;; 7: len 8; hex 0000000000000168; asc h;; 8: len 0; hex ; asc ;;
Record lock, heap no 3 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000028ef; asc ( ;; 1: len 6; hex 000000ade59c; asc ;; 2: len 7; hex 47000004532173; asc G S!s;; 3: len 4; hex 0a640003; asc d ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 53365a14; asc S6Z ;; 7: len 8; hex 00000000000007be; asc ;; 8: len 0; hex ; asc ;;
Record lock, heap no 4 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000028f0; asc ( ;; 1: len 6; hex 000000ade78b; asc ;; 2: len 7; hex 27000003fa1978; asc ' x;; 3: len 4; hex 0a640004; asc d ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 53365a5e; asc S6Z^;; 7: len 8; hex 00000000000005e3; asc ;; 8: len 0; hex ; asc ;;
Record lock, heap no 5 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000028f1; asc ( ;; 1: len 6; hex 000000ade776; asc v;; 2: len 7; hex 1a000003890ff9; asc ;; 3: len 4; hex 0a640005; asc d ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 53365a5e; asc S6Z^;; 7: len 8; hex 0000000000000392; asc ;; 8: len 0; hex ; asc ;;
*** (2) WAITING FOR THIS LOCK TO BE GRANTED: RECORD LOCKS space id 0 page no 465 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id ADE881 lock_mode X locks rec but not gap waiting Record lock, heap no 6 PHYSICAL RECORD: n_fields 9; compact format; info bits 0 0: len 4; hex 000028f2; asc ( ;; 1: len 6; hex 000000ade7ec; asc ;; 2: len 7; hex 6d0000040f302a; asc m 0*;; 3: len 4; hex 0a640006; asc d ;; 4: len 1; hex 02; asc ;; 5: len 1; hex 00; asc ;; 6: len 4; hex 53365a76; asc S6Zv;; 7: len 8; hex 0000000000000117; asc ;; 8: len 0; hex ; asc ;;
*** WE ROLL BACK TRANSACTION (2) ------------ TRANSACTIONS ------------ Trx id counter ADEB9D Purge done for trx's n:o < ADEB92 undo n:o < 0 History list length 2407 LIST OF TRANSACTIONS FOR EACH SESSION: ---TRANSACTION 0, not started MySQL thread id 17, OS thread handle 0x82bd87800, query id 13345 localhost root SHOW ENGINE INNODB STATUS ---TRANSACTION ADEA90, not started MySQL thread id 11, OS thread handle 0x82bd86000, query id 12844 localhost nodeny ---TRANSACTION ADEA86, not started MySQL thread id 14, OS thread handle 0x82bd86c00, query id 12804 localhost nodeny ---TRANSACTION ADEA81, not started MySQL thread id 13, OS thread handle 0x82bd86800, query id 12787 localhost nodeny ---TRANSACTION ADEA79, not started MySQL thread id 12, OS thread handle 0x82bd86400, query id 12757 localhost nodeny ---TRANSACTION ADEA8B, not started MySQL thread id 10, OS thread handle 0x82bd85c00, query id 12820 localhost nodeny ---TRANSACTION ADEB6B, not started MySQL thread id 9, OS thread handle 0x82bd85800, query id 13291 localhost nodeny ---TRANSACTION ADEB93, not started MySQL thread id 4, OS thread handle 0x8277efc00, query id 13323 localhost nodeny ---TRANSACTION ADE731, not started MySQL thread id 5, OS thread handle 0x8277f0000, query id 13334 localhost nodeny ---TRANSACTION ADEB9C, not started MySQL thread id 3, OS thread handle 0x8277ef800, query id 13344 localhost nodeny ---TRANSACTION ADEB97, not started MySQL thread id 2, OS thread handle 0x8277ef400, query id 13337 localhost nodeny ---TRANSACTION ADEB83, not started MySQL thread id 1, OS thread handle 0x8277ef000, query id 13341 localhost nodeny -------- FILE I/O -------- I/O thread 0 state: waiting for i/o request (insert buffer thread) I/O thread 1 state: waiting for i/o request (log thread) I/O thread 2 state: waiting for i/o request (read thread) I/O thread 3 state: waiting for i/o request (read thread) I/O thread 4 state: waiting for i/o request (read thread) I/O thread 5 state: waiting for i/o request (read thread) I/O thread 6 state: waiting for i/o request (write thread) I/O thread 7 state: waiting for i/o request (write thread) I/O thread 8 state: waiting for i/o request (write thread) I/O thread 9 state: waiting for i/o request (write thread) Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] , ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0 Pending flushes (fsync) log: 0; buffer pool: 0 633 OS file reads, 4908 OS file writes, 1921 OS fsyncs 0.00 reads/s, 0 avg bytes/read, 5.50 writes/s, 3.50 fsyncs/s ------------------------------------- INSERT BUFFER AND ADAPTIVE HASH INDEX ------------------------------------- Ibuf: size 1, free list len 0, seg size 2, 0 merges merged operations: insert 0, delete mark 0, delete 0 discarded operations: insert 0, delete mark 0, delete 0 Hash table size 276707, node heap has 22 buffer(s) 115.44 hash searches/s, 73.96 non-hash searches/s --- LOG --- Log sequence number 221196525 Log flushed up to 221196525 Last checkpoint at 221194130 0 pending log writes, 0 pending chkp writes 1670 log i/o's done, 1.50 log i/o's/second ---------------------- BUFFER POOL AND MEMORY ---------------------- Total memory allocated 137363456; in additional pool allocated 0 Dictionary memory allocated 174239 Buffer pool size 8192 Free buffers 7517 Database pages 653 Old database pages 256 Modified db pages 5 Pending reads 0 Pending writes: LRU 0, flush list 0, single page 0 Pages made young 0, not young 0 0.00 youngs/s, 0.00 non-youngs/s Pages read 622, created 31, written 4209 0.00 reads/s, 0.00 creates/s, 3.00 writes/s Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s LRU len: 653, unzip_LRU len: 0 I/O sum[0]:cur[0], unzip sum[0]:cur[0] -------------- ROW OPERATIONS -------------- 0 queries inside InnoDB, 0 queries in queue 1 read views open inside InnoDB Main thread id 34401730560, state: sleeping Number of rows inserted 726, updated 1082, deleted 376, read 5947415 0.00 inserts/s, 7.00 updates/s, 0.00 deletes/s, 987.51 reads/s ---------------------------- END OF INNODB MONITOR OUTPUT ============================
1 row in set (0.01 sec)
mysql>
кусок лога радиуса со статическими IP Sat Mar 29 06:24:44 2014 : Info: Signalled to terminate Sat Mar 29 06:24:44 2014 : Info: Exiting normally. Sat Mar 29 06:24:45 2014 : Info: rlm_sql (sql): Closing sqlsocket 4 Sat Mar 29 06:24:45 2014 : Info: rlm_sql (sql): Closing sqlsocket 3 Sat Mar 29 06:24:45 2014 : Info: rlm_sql (sql): Closing sqlsocket 2 Sat Mar 29 06:24:45 2014 : Info: rlm_sql (sql): Closing sqlsocket 1 Sat Mar 29 06:24:45 2014 : Info: rlm_sql (sql): Closing sqlsocket 0 Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and linked Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect to nodeny@localhost:3306/nodeny Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #0 Sat Mar 29 06:26:07 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #0 Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Connected new DB handle, #0 Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #1 Sat Mar 29 06:26:07 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #1 Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Connected new DB handle, #1 Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #2 Sat Mar 29 06:26:07 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #2 Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Connected new DB handle, #2 Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #3 Sat Mar 29 06:26:07 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #3 Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Connected new DB handle, #3 Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #4 Sat Mar 29 06:26:07 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #4 Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Connected new DB handle, #4 Sat Mar 29 06:26:07 2014 : Info: Loaded virtual server <default> Sat Mar 29 06:26:07 2014 : Info: Loaded virtual server inner-tunnel Sat Mar 29 06:26:07 2014 : Info: Ready to process requests. Sat Mar 29 06:48:35 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 06:48:36 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 06:48:50 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 06:48:51 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 06:49:11 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 06:49:32 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 06:49:33 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 06:49:44 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 06:49:55 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
конец лога с динамикой Sat Mar 29 07:21:49 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:21:56 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:22:11 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:22:23 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:22:33 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:22:45 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:22:46 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:22:51 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:22:58 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:23:01 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:23:22 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:23:25 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:23:34 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:23:51 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:24:00 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:24:01 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:24:28 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:24:46 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:25:06 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:25:28 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:25:31 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:25:53 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:25:53 2014 : Error: [sql] Couldn't update SQL accounting ALIVE record - Deadlock found when trying to get lock; try restarting transaction Sat Mar 29 07:25:53 2014 : Error: rlm_sql_mysql: Cannot store result Sat Mar 29 07:25:53 2014 : Error: rlm_sql_mysql: MySQL error 'Deadlock found when trying to get lock; try restarting transaction' Sat Mar 29 07:25:53 2014 : Error: [sql] Couldn't update SQL accounting ALIVE record - Deadlock found when trying to get lock; try restarting transaction Sat Mar 29 07:25:53 2014 : Error: rlm_sql_mysql: Cannot store result Sat Mar 29 07:25:53 2014 : Error: rlm_sql_mysql: MySQL error 'Deadlock found when trying to get lock; try restarting transaction' Sat Mar 29 07:26:14 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:26:17 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:26:29 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0 Sat Mar 29 07:26:39 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Название: Re: Mikrotik API
Отправлено: Efendy от 29 Марта 2014, 09:24:52
http://g.zeos.in/?q=Error%3A%20rlm_sql%20(sql)%3A%20There%20are%20no%20DB%20handles%20to%20use!
http://forum.nodeny.com.ua/index.php?topic=1890.0
Название: Re: Mikrotik API
Отправлено: YuSHa от 31 Марта 2014, 11:08:49
те же яйца только в профиль( в my.cnf в radiusd.conf поменял только тут с 5 до 50 sql.conf
Название: Re: Mikrotik API
Отправлено: YuSHa от 11 Апреля 2014, 08:56:17
проблема дедлоков не решена( лог mysql 140410 19:24:11 [Note] /usr/local/libexec/mysqld: ready for connections. Version: '5.5.28' socket: '/tmp/mysql.sock' port: 3306 Source distribution 140411 5:44:57 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:44:57 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:44:57 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:44:57 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:48:16 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:48:16 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:48:16 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:48:16 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:48:16 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:48:16 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:50:32 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:50:32 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:51:38 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:51:38 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:51:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:51:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:51:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:51:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:51:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:51:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:23 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:23 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:23 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:23 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:24 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:24 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:24 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:24 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:24 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:24 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:24 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:55:24 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:17 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:17 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:54 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:56:54 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction 140411 5:57:55 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction 140411 5:57:55 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
Название: Re: Mikrotik API
Отправлено: YuSHa от 11 Апреля 2014, 08:58:34
лог радиуса
Название: Re: Mikrotik API
Отправлено: Efendy от 11 Апреля 2014, 16:26:11
Прикрепи вывод SHOW ENGINE INNODB STATUS;
Название: Re: Mikrotik API
Отправлено: YuSHa от 11 Апреля 2014, 16:39:33
у нас свет выбивало, так что сервак ребутался.... вывод после ребута
Название: Re: Mikrotik API
Отправлено: Efendy от 12 Апреля 2014, 08:36:04
В общем, я затупил - дедлоки я убрал давно, но не коммитил, т.к. хотел чтоб потестилось на моей сети. А после тестирования забыл. Сейчас закоммитил. После обновления надо перезапустить ядро N+
Название: Re: Mikrotik API
Отправлено: YuSHa от 12 Апреля 2014, 09:14:27
::) фух..... будем пробовать снова ;D
Название: Re: Mikrotik API
Отправлено: Stronglan от 22 Октября 2014, 09:43:24
А возможно ли реализовать аналог модуля заглушки на микротике?
Название: Re: Mikrotik API
Отправлено: sov от 22 Октября 2014, 20:13:05
Документация по модулю планируется?
А то вот купил, настроил по своему разумению, а оно не работает как положено. И сижу, чешу репу - какую из настроечек, предполагаемую автором, я не удосужился догадаться включить.
Неужели написать десяток строк краткого описания займёт так много времени?
PS В конфиге есть параметр target / target-addresses для старых/новых микротиков. Как определить старость микротика?
PSS Клиент по PPPoE законнектился, очередь с его адресом на микротике имеется, в гудбойзах его адреса нет (поскольку нет ни одной услуги и доступ в биллинге запрещён). При этом интернет у клиента есть!
Название: Re: Mikrotik API
Отправлено: Efendy от 22 Октября 2014, 22:15:58
Насколько я помню, изначально ко мне кто-то обратился с просьбой написать модуль и сам готов был его протестировать. Я написал по аналогии с Н50, только исправил баги. Человек протестировал и сказал "все ок". Я выложил модуль и получил комментарий: ничего сложного. 1 распаковать модуль и положить в папку modules 2 подредактировать create.cfg.mikrotik.cfg.pm 3 создать юзера на микротике и пропустить IP биллинга через фаервол + IP микротика через фаервол биллинга 4 запустить модуль (прописать в rc.local строку "/usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik.cfg.pm -d &") получите управление шейпером и аксеслистом. Поскольку никто не жаловался на проблемы - я и забыл кому изначально делал, так бы попросил чтоб он написал что менял в микротике. Если он сам найдется - пусть здесь напишет, я потом перенесу в документацию
Название: Re: Mikrotik API
Отправлено: sov от 23 Октября 2014, 07:16:19
Да понятно, что там ничего сложного. Тем более, что на предыдущих версиях Нодени я микротик использовал, и догадываюсь, как оно настраивается. Но вот тупанул, забыл что-то где-то включить. Не работает. Тут-бы и свериться с инструкцией, ан нет её! :(
Название: Re: Mikrotik API
Отправлено: YuSHa от 23 Октября 2014, 09:43:59
1 - В конфиге есть параметр target / target-addresses для старых/новых микротиков. новые это 6 ветка. старые 5-я и ниже. 2 - Если pppoe поднялось - значит связка биллинг - радиус сервер - радиус клиент(микротик) работает. это уже пол дела. 3 - далее не забываем включить управление по API тут 4 - Инет у клиентов можно отрубить несколькими способами а - натить только тех, кто есть в списке good boys. пример: /ip firewall nat add action=masquerade chain=srcnat disabled=no out-interface=ether5-ins src-address=10.10.0.0/16 src-address-list=goodboys
б - в фаерволе сделать несколько правил на акссес для определённых IP (перевод на заглушку, приват, etc.) следующим же правилом разрешить forvard только для тех, кто в address-list куда угодно. последним блокируем всех и везде З.Ы. пример для перевода на заглушку: /ip firewall nat add action=dst-nat chain=dstnat disabled=no dst-address=!192.168.110.150 dst-port=80 fragment=no protocol=tcp src-address-list=!goodboys to-addresses=192.168.110.150 to-ports=8080 НО не забываем поменять порт web сервера самого микротика. а то будете биться в агонии и говорить, что не работает. как попустит с работой постараюсь сделать пошаговый мануал
Название: Re: Mikrotik API
Отправлено: Efendy от 23 Октября 2014, 09:58:13
YuSHa, спасибо
Название: Re: Mikrotik API
Отправлено: sedo26 от 23 Октября 2014, 11:13:33
Так же купил n+ модуль микротика, работает стабильно. Вопрос по 49(50) модулю микрота, какие ошибки можно исправить, чтоб более корректно работал с 400 и больше кол-вом клиентов, иногда прописывает некорректно нарезку на клиента.
Название: Re: Mikrotik API
Отправлено: sov от 23 Октября 2014, 21:16:05
Сбросил микротик в ноль, настроил заново и всё заработало :)
Ниже привожу заготовку для мануала. Надеюсь, YuSHa и прочие дополнят и поправят, если я ошибся или сделал неоптимальные настройки. И добавка для переброски на заглушку тоже не помешает.
Исходные данные для примера:
Сервер биллинга - 192.168.1.1 Микротик - 192.168.1.2 Сеть, обслуживаемая микротиком - 192.168.2.0/24 Микротик обслуживает клиентов по PPPoE
1. Добавляем в биллинге новый сателлит с сетью 192.168.2.0/24
2. Добавляем клиента для микротика в настройках Radius-а - файл clients.conf: client 192.168.1.2 { secret = abrakadabra # это пароль - заменить на свой shortname = mikrotik1 nastype = other }
Перезапускаем радиус
3. В файрволе биллинга пропускаем IP микротика
4. Модуль распаковываем в папку /usr/local/nodeny/modules/mikrotik
5. Редактируем файл create.cfg.mikrotik.cfg.pm: $host = '192.168.1.2'; $user = 'mikrotik'; $pass = 'slavyanskij_shkaf'; # это пароль - заменить на свой
6. Возвращаемся в каталог /usr/local/nodeny и делаем perl install.pl -x
7. Делаем автозапуск модуля, прописывая в rc.local строку "/usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik.cfg.pm -d &"
8. Сбрасываем микротик на заводские настройки
9. Заходим на управление микротиком и выполняем следующие команды (это в терминале, но можно их-же через GUI винбокса):
/user add name=mikrotik group=full password=slavyanskij_shkaf
/ip address add address=192.168.2.1/24 interface=ether2-master-local network=\ 192.168.2.0
/ip dns set allow-remote-requests=yes servers=8.8.8.8,77.88.8.8
/ip pool add name=pool2 ranges=192.168.2.2-192.168.2.254
/radius add address=192.168.1.1 secret=abrakadabra service=ppp
/ppp aaa set interim-update=30s use-radius=yes
/ppp profile add local-address=pool2 name=pppoe-client
/interface pppoe-server server add authentication=chap,mschap2 default-profile=pppoe-client disabled=no \ interface=ether2-master-local max-mru=1480 max-mtu=1480 mrru=1600 \ service-name=pppoe-server
/ip firewall nat add action=masquerade chain=srcnat \ out-interface=ether1-gateway src-address-list=goodboys
10. В очередях (Queues) должен появиться список адресов со скоростями, а в Address-List - список адресов, которым разрешён доступ в интернет.
11. Добавляем в биллинге клиента для созданного в п.1 сателлита и пытаемся войти в интернет (настроив на компьютере Высокоскоростное соединение). В биллинге запрещаем/разрешаем доступ для клиента, меняем скорости, и проверяем, как это всё отрабатывает.
Название: Re: Mikrotik API
Отправлено: k291 от 15 Апреля 2015, 09:53:05
Как настроить модуль, чтобы Микротик мог обслуживает клиентов по DHCP? А то я Radius не использую
Название: Re: Mikrotik API
Отправлено: k291 от 15 Апреля 2015, 12:16:42
Судя по Queues в микротике, данный модуль не умеет разделять трафик в Украину и Мир. Или может?
Название: Re: Mikrotik API
Отправлено: k291 от 20 Апреля 2015, 01:03:57
Как настроить модуль, чтобы Микротик мог обслуживает клиентов по DHCP? А то я Radius не использую
В create.noserver.hw_mikrotik.pm описаны обычные команды управление микротиком, через терминал: # добавление и удаление IP в ip/firewall/address-list $m->set_tag(); my $id = $list_id; map{ $id = $id*256 + $_ } split /\./, $ip; my @cmd = $action? ( "/ip/firewall/address-list/add", "=list=$list_name", "=address=$ip", "=comment=$id", "=disabled=no", ".tag=".$m->{tag} ) : ( "/ip/firewall/address-list/remove", "=.id=$id", ".tag=".$m->{tag}
Помогите добавить IP в /ip/dhcp-server/lease для DHCP+IP+MAC: #Пример команда привязки IP+МАС в микротике /ip dhcp-server lease add address=10.0.0.184 mac-address=00:03:FD:HG:CA:00 address-list=goodboys insert-queue-before=167772343 comment=Pepkin Может так: $m->set_tag(); my $id = $list_id; map{ $id = $id*256 + $_ } split /\./, $ip; my @cmd = $action? ( "/ip/dhcp-server/lease/add", "=address=$ip", "=mac-address=$mac", "=list=$list_name", "=insert-queue-before=$list_queue", "=comment=$id", "=disabled=no", ".tag=".$m->{tag} ) : ( "/ip/dhcp-server/lease/remove", "=.id=$id", ".tag=".$m->{tag}
Название: Re: Mikrotik API
Отправлено: k291 от 20 Апреля 2015, 01:06:29
Если развивать тему, то можно: 1) Добавлять pool: /ip pool add name=dhcp-pool-1 ranges=192.168.1.100-192.168.1.254 2) Добавляем DHCP сервер на порт ether2 с pool`ом выше: /ip dhcp-server add address-pool=dhcp-pool-1 disabled=no interface=ether2 name=dhcp1 3) Присваиваем IP на ether2: /ip address add address=192.168.1.1/24 interface=ether2
Название: Re: Mikrotik API
Отправлено: k291 от 20 Апреля 2015, 01:21:44
Как настроить модуль, чтобы Микротик мог обслуживает клиентов по DHCP? Это нужно для автономной работы Mikrotik`a в случае падения билинга и для тех кто использует модуль DHCP. Например: билинг стоит в Уругвае, а Mikrotik в Румынии. И тут билинг падает, время аренды IP заканчивается, и Интернет отваливается, до тех пор, пока билинг не восстановится. Вся проблема в том, что DHCP стоит на сервере с билингом, при том, что Mikrotik сам умеет раздавать адреса.
После осмотра кода модуля mikrotik, я понял, что модуле не хватает строк для добавления IP+MAC в Mikrotik. В create.noserver.hw_mikrotik.pm описаны обычные команды управление, через терминал микротика: # добавление и удаление IP в ip/firewall/address-list $m->set_tag(); my $id = $list_id; map{ $id = $id*256 + $_ } split /\./, $ip; my @cmd = $action? ( "/ip/firewall/address-list/add", "=list=$list_name", "=address=$ip", "=comment=$id", "=disabled=no", ".tag=".$m->{tag} ) : ( "/ip/firewall/address-list/remove", "=.id=$id", ".tag=".$m->{tag}
Помогите добавить IP+MAC в /ip/dhcp-server/lease для DHCP+IP+MAC: #Пример команда привязки IP+МАС в терминале микротика: /ip dhcp-server lease add address=10.0.0.184 mac-address=00:03:FD:HG:CA:00 address-list=goodboys insert-queue-before=167772343 comment=Pepkin Может так: $m->set_tag(); my $id = $list_id; map{ $id = $id*256 + $_ } split /\./, $ip; my @cmd = $action? ( "/ip/dhcp-server/lease/add", "=address=$ip", "=mac-address=$mac", "=list=$list_name", "=insert-queue-before=$list_queue", "=comment=$id", "=disabled=no", ".tag=".$m->{tag} ) : ( "/ip/dhcp-server/lease/remove", "=.id=$id", ".tag=".$m->{tag}
Название: Re: Mikrotik API
Отправлено: k291 от 20 Апреля 2015, 01:28:58
Перенесено в : htt_://forum.nodeny.com.ua/index.php?topic=448.90
Название: Re: Mikrotik API
Отправлено: k291 от 27 Июня 2015, 02:34:00
1 - В конфиге есть параметр target / target-addresses для старых/новых микротиков. новые это 6 ветка. старые 5-я и ниже. 2 - Если pppoe поднялось - значит связка биллинг - радиус сервер - радиус клиент(микротик) работает. это уже пол дела. 3 - далее не забываем включить управление по API тут 4 - Инет у клиентов можно отрубить несколькими способами а - натить только тех, кто есть в списке good boys. пример: /ip firewall nat add action=masquerade chain=srcnat disabled=no out-interface=ether5-ins src-address=10.10.0.0/16 src-address-list=goodboys
б - в фаерволе сделать несколько правил на акссес для определённых IP (перевод на заглушку, приват, etc.) следующим же правилом разрешить forvard только для тех, кто в address-list куда угодно. последним блокируем всех и везде З.Ы. пример для перевода на заглушку: /ip firewall nat add action=dst-nat chain=dstnat disabled=no dst-address=!192.168.110.150 dst-port=80 fragment=no protocol=tcp src-address-list=!goodboys to-addresses=192.168.110.150 to-ports=8080 НО не забываем поменять порт web сервера самого микротика. а то будете биться в агонии и говорить, что не работает. как попустит с работой постараюсь сделать пошаговый мануал Можно увидеть примеры? -"б - в фаерволе сделать несколько правил на акссес для определённых IP (перевод на заглушку, приват, etc.)"
Название: Re: Mikrotik API
Отправлено: k291 от 27 Июня 2015, 22:19:42
В Mikrotik на 1м порту, что смотрит в сеть, создал 2а DHCP server`а на реальные и серые IP-адреса. Клиенту с серым IP, дает и блокирует доступ в Интернет. При выдаче клиенту белого IP адреса, адрес выдается правильно, но доступа в интернет нет.
По сути, в связке NoDeny+Mikrotik, не работает а)доступ в Интернет при белом IP б)перевод на заглушку при блокировке доступа в)при смене IP адреса в билинге с серого на белый в Firewall-Address List добавляется строка "goodboys 216.55.77.246"(БЕЗ COMMENT) с буквой D, который нельзя исправить. В Queues не создается правило на скорость. При этом не удалилась строка с серым IP "4462739708 goodboys 10.0.0.252". У белого IP, доступа в интернет нет. При смене с белого IP адреса на серый в Firewall-Address List удаляется "goodboys 216.55.77.246" и выдает доступ в Интернет.
Название: Re: Mikrotik API
Отправлено: YuSHa от 28 Июня 2015, 11:05:14
а - если это белый ip, то что у вас с маршрутизацией? пропишите вручную белый IP на клиенте, и проверьте инет, предварительно выключив правила фаервола, если таковые есть для белых IP. б - покажите правило фаервола, которое вы используете для перевода на заглушку.
Название: Re: Mikrotik API
Отправлено: k291 от 28 Июня 2015, 14:33:45
а - если это белый ip, то что у вас с маршрутизацией? пропишите вручную белый IP на клиенте, и проверьте инет, предварительно выключив правила фаервола, если таковые есть для белых IP. б - покажите правило фаервола, которое вы используете для перевода на заглушку.
а) попробую отпишусь. б) Из Вашего примера с заменой на внешний IP сервера: /ip firewall nat add action=dst-nat chain=dstnat disabled=no dst-address=!192.168.110.150 dst-port=80 fragment=no protocol=tcp src-address-list=!goodboys to-addresses=192.168.110.150 to-ports=8080 Но с этим правилом, вообще не пускает в Интернет. Сейчас использую, так как у меня будет 2а провайдера на разных портах: /ip firewall nat add action=masquerade chain=srcnat disabled=no src-address-list=goodboys
|