Страница 1 из 1
Перезагрузка MD по пингу
Добавлено: Пт мар 30, 2018 5:58 pm
blackangel
Доброго все дня!
Подскажите знающие люди, может уже было где то. Или как подобное реализовать.
Идея: перезагрузка MD по событию.
у меня MD крутится на RPi3 а сама база на NAS Synology. Nas делает 1 раз в неделю бэкап системы и соответственно база отваливается, при этом MD уходит в ступор и пишет бесконечный лог, пока вся карта не забьется...
1. пинговать порт базы и при дисконекте, через какое то время перезапустить MD или всю RPi (почему через какое то время? потому что бэкап идет какое то время и в течении этого времени связи нет.)
2. решить вопрос с заполняющимся до бесконечности файла лога(ов).
3. может вообще есть решение проще.....
Re: Перезагрузка MD по пингу
Добавлено: Пт мар 30, 2018 7:25 pm
skysilver
А что за логи забиваются? И что в них пишется при этом?
Re: Перезагрузка MD по пингу
Добавлено: Пт мар 30, 2018 10:24 pm
blackangel
skysilver писал(а):А что за логи забиваются? И что в них пишется при этом?
Если память не изменяет, то те что в папке debmes вроде... что именно там. Посмотрю позже.
Отправлено с моего iPhone используя Tapatalk
Re: Перезагрузка MD по пингу
Добавлено: Пт мар 30, 2018 10:46 pm
blackangel
blackangel писал(а):skysilver писал(а):А что за логи забиваются? И что в них пишется при этом?
Если память не изменяет, то те что в папке debmes вроде... что именно там. Посмотрю позже.
Отправлено с моего iPhone используя Tapatalk
Посмотрел.
сегодня был бэкап. MD естественно отвалился. Перезагрузил его с работы по SSH. Отвалился как я уже писал из за того что потерял связь с базой.
при этом весь диск забился....
вот что имеем:

- Screenshot_18.png (16.26 КБ) 4793 просмотра
папка debmes:

- Screenshot_19.png (17.62 КБ) 4793 просмотра
и вот что в этой папке.... честно говоря вытягивать файл 2018-03-30_error.log который весит полтора гига... нет желания... но если ради дела нужно... могу попробовать его открыть...

- Screenshot_20.png (59.43 КБ) 4793 просмотра
естественно до отвала от базы, все в логах хорошо и файлы весят по несколько кило.
Re: Перезагрузка MD по пингу
Добавлено: Пт мар 30, 2018 10:55 pm
blackangel
[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 нет механизма очистки.... логов и прочего мусора....
Re: Перезагрузка MD по пингу
Добавлено: Пт мар 30, 2018 11:00 pm
Logrus
2. keepLatestLimitedBySize('./debmes',50*1024*1024);
повесить запуск на ThisComputer.SpaceProblems к примеру
1. потом по таймеру перезагрузить циклы
п.с. через опу, но ...
Re: Перезагрузка MD по пингу
Добавлено: Пт мар 30, 2018 11:06 pm
skysilver
blackangel писал(а):и почему в MD нет механизма очистки.... логов и прочего мусора....
У меня сроду не было логов больше 50Мб, не говоря уже про гигабайты. )) Поэтому даже не задумывался об этом. Но идея хороша, предложи ее в коннекте в разделе разработки и поддержки ядра МДМ.
Насколько знаю, в текущих версиях есть наработки в этом вопросе в виде сценариев и методов - глянь демку, там есть примеры обслуживания сервера.
А по сути, на время бэкапа sql нужно останавливать службу МДМ, а по окончанию заново запускать. Полностью от ошибок это не избавит, т.к. если где-то будет открыта веб-морда, или контроллеры будут дергать по сети ссылки МДМ или слать по MQTT, то один фиг будет обращение к БД, которая не доступна в этот момент.