Перезагрузка MD по пингу

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

Ответить
Аватара пользователя
blackangel
Сообщения: 148
Зарегистрирован: Пт окт 21, 2016 2:00 pm
Благодарил (а): 31 раз
Поблагодарили: 13 раз

Перезагрузка MD по пингу

Сообщение blackangel » Пт мар 30, 2018 5:58 pm

Доброго все дня!

Подскажите знающие люди, может уже было где то. Или как подобное реализовать.

Идея: перезагрузка MD по событию.

у меня MD крутится на RPi3 а сама база на NAS Synology. Nas делает 1 раз в неделю бэкап системы и соответственно база отваливается, при этом MD уходит в ступор и пишет бесконечный лог, пока вся карта не забьется...

1. пинговать порт базы и при дисконекте, через какое то время перезапустить MD или всю RPi (почему через какое то время? потому что бэкап идет какое то время и в течении этого времени связи нет.)
2. решить вопрос с заполняющимся до бесконечности файла лога(ов).
3. может вообще есть решение проще.....
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Перезагрузка MD по пингу

Сообщение skysilver » Пт мар 30, 2018 7:25 pm

А что за логи забиваются? И что в них пишется при этом?
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
blackangel
Сообщения: 148
Зарегистрирован: Пт окт 21, 2016 2:00 pm
Благодарил (а): 31 раз
Поблагодарили: 13 раз

Re: Перезагрузка MD по пингу

Сообщение blackangel » Пт мар 30, 2018 10:24 pm

skysilver писал(а):А что за логи забиваются? И что в них пишется при этом?
Если память не изменяет, то те что в папке debmes вроде... что именно там. Посмотрю позже.


Отправлено с моего iPhone используя Tapatalk
Аватара пользователя
blackangel
Сообщения: 148
Зарегистрирован: Пт окт 21, 2016 2:00 pm
Благодарил (а): 31 раз
Поблагодарили: 13 раз

Re: Перезагрузка MD по пингу

Сообщение blackangel » Пт мар 30, 2018 10:46 pm

СпойлерПоказать
blackangel писал(а):
skysilver писал(а):А что за логи забиваются? И что в них пишется при этом?
Если память не изменяет, то те что в папке debmes вроде... что именно там. Посмотрю позже.


Отправлено с моего iPhone используя Tapatalk
Посмотрел.

сегодня был бэкап. MD естественно отвалился. Перезагрузил его с работы по SSH. Отвалился как я уже писал из за того что потерял связь с базой.

при этом весь диск забился....

вот что имеем:
Screenshot_18.png
Screenshot_18.png (16.26 КБ) 4343 просмотра
папка debmes:
Screenshot_19.png
Screenshot_19.png (17.62 КБ) 4343 просмотра
и вот что в этой папке.... честно говоря вытягивать файл 2018-03-30_error.log который весит полтора гига... нет желания... но если ради дела нужно... могу попробовать его открыть...
Screenshot_20.png
Screenshot_20.png (59.43 КБ) 4343 просмотра
естественно до отвала от базы, все в логах хорошо и файлы весят по несколько кило.
Аватара пользователя
blackangel
Сообщения: 148
Зарегистрирован: Пт окт 21, 2016 2:00 pm
Благодарил (а): 31 раз
Поблагодарили: 13 раз

Re: Перезагрузка MD по пингу

Сообщение blackangel » Пт мар 30, 2018 10:55 pm

[quote="blackangel"][/quote]

посмотрел лог... как и следовало ожидать... нет связи с базой.

это малюсенькая часть лога

Код: Выделить всё

 WHERE EXCLUSIVE = 0
                 ORDER BY PRIORITY DESC, ID
Backtrace:
#0 /var/www/lib/mysqli.class.php(394): registerError('sql', '2006: MySQL ser...')
#1 /var/www/lib/mysqli.class.php(177): mysql->Error('SELECT *\n      ...')
#2 /var/www/lib/mysqli.class.php(198): mysql->Exec('SELECT *\n      ...')
#3 /var/www/lib/mysqli.class.php(511): mysql->Select('SELECT *\n      ...')
#4 /var/www/scripts/cycle_execs.php(68): SQLSelect('SELECT *\n      ...')
#5 {main}
15:28:01 0.24781900 Error registered (type: sql):
2006: MySQL server has gone away
SELECT *
                  FROM safe_execs
                 WHERE EXCLUSIVE = 0
                 ORDER BY PRIORITY DESC, ID
Backtrace:
#0 /var/www/lib/mysqli.class.php(394): registerError('sql', '2006: MySQL ser...')
#1 /var/www/lib/mysqli.class.php(207): mysql->Error('SELECT *\n      ...', 0)
#2 /var/www/lib/mysqli.class.php(511): mysql->Select('SELECT *\n      ...')
#3 /var/www/scripts/cycle_execs.php(68): SQLSelect('SELECT *\n      ...')
#4 {main}  
и почему в MD нет механизма очистки.... логов и прочего мусора....
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Перезагрузка MD по пингу

Сообщение Logrus » Пт мар 30, 2018 11:00 pm

2. keepLatestLimitedBySize('./debmes',50*1024*1024);
повесить запуск на ThisComputer.SpaceProblems к примеру
1. потом по таймеру перезагрузить циклы

п.с. через опу, но ...
Последний раз редактировалось Logrus Пт мар 30, 2018 11:08 pm, всего редактировалось 2 раза.
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Перезагрузка MD по пингу

Сообщение skysilver » Пт мар 30, 2018 11:06 pm

blackangel писал(а):и почему в MD нет механизма очистки.... логов и прочего мусора....
У меня сроду не было логов больше 50Мб, не говоря уже про гигабайты. )) Поэтому даже не задумывался об этом. Но идея хороша, предложи ее в коннекте в разделе разработки и поддержки ядра МДМ.

Насколько знаю, в текущих версиях есть наработки в этом вопросе в виде сценариев и методов - глянь демку, там есть примеры обслуживания сервера.

А по сути, на время бэкапа sql нужно останавливать службу МДМ, а по окончанию заново запускать. Полностью от ошибок это не избавит, т.к. если где-то будет открыта веб-морда, или контроллеры будут дергать по сети ссылки МДМ или слать по MQTT, то один фиг будет обращение к БД, которая не доступна в этот момент.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить