systemd'шное

Jan 18, 2016 17:07

Вот расскажите, как в вашем любимом sysv-init'е принято реализовывать перезапуск упавшего демона и функциональность watchdog'а.

systemd

Leave a comment

Comments 91

greycat_na_kor January 18 2016, 15:31:42 UTC
Внешней программой, очевидно. monit'ом, если это автономная инсталляция чего-то супермаленького из одного сервера. Полноценным мониторингом, если это более-менее масштабный сервис. И, кстати, да, вот это конкретно вещь, которую я сильно не люблю в systemd.

Reply

permea_kra January 18 2016, 15:33:52 UTC
Шито?
А 'respawn' в /etc/init/* на что?
Но вообще - верните мне мой няшный иниттаб, да

Reply

amarao_san January 18 2016, 16:23:25 UTC
respawn не даёт депенденсы при старте и не отрабатывает shutdown культурно.

Reply

permea_kra January 19 2016, 10:41:23 UTC
Какая-то надуманная проблема, имхо. Во всяком случае, внятных альтернатив не вижу.

PS systemd такой альтернативой не является.

Reply


civilus January 18 2016, 15:37:33 UTC
В общем случаи методом "CRITICAL - Service blah is DOWN" по SMS :) (т.к. предполагается что "лежит" это не штатное состояние сервиса и если уж сервис упал, то вмешательство админа или разработки строго обязательно).

В частных случаях может быть совершенно по-разному. Различных тулзов для перезапуска или вочдога хватает.

Reply

amarao_san January 18 2016, 16:24:52 UTC
То есть с помощью отдельных инструментов каждый раз для каждого сервиса, или monkeyadmin'а, который бегает по серверам и чинит упавшие сервисы?

Вмешательство админа по случаю падения софтинки выглядит куда разумнее, когда софтинка упала и поднялась, а админ выясняет почему, чем когда с момента CRITICAL пошёл тикать даунтайм.

Reply

civilus January 18 2016, 16:34:50 UTC
Почему разных? Выбрал что-то что тебе нравится (или устраивает) и везде пользуешься.

И в моей практике чаще встречался софт для которого "падать" не являлось штатным поведением и если софтина упала, она требует сначала разобраться почему, а уже потом вернуть на место (иначе упадет повторно на том же месте с шансом 100%).

Reply

greycat_na_kor January 18 2016, 16:56:35 UTC
> Вмешательство админа по случаю падения софтинки выглядит куда разумнее, когда софтинка упала и поднялась, а админ выясняет почему, чем когда с момента CRITICAL пошёл тикать даунтайм.

Да почти никогда это не выглядит разумнее, если только это не какой-то специфичный софт, про который известно, что он регулярно падает по непонятным причинам и чинить это нецелесообразно. И то, я бы такое скорее от греха подальше засовывал в отдельный контейнер и рестартовал контейнер целиком - мало ли чего.

Просто так поднимать упавший, скажем, из-за сегфолта софта ­- с большой вероятностью либо провоцировать дальнейший data corruption, либо продолжение атаки (какого-нибудь брутфорса смещения в стеке), либо, в самом безобидном случае, да, падение в том же месте повторно и бесконечный цикл "упал-подняли-упал-подняли", жрущий ресурсы. (Да, я в курсе про "looping too fast")

Reply


tzirechnoy January 18 2016, 16:46:31 UTC
По большэй части -- nagiosом. Упавшый демон поднимает админа, тот выясняет, что там блин за хукеры пролезли.

Но есть, конечно, исключения. mysql, например. Для него есть скриптик mysqld_safe, который его перезапускает. Или xl2tpd, его вообще в кроне и service start каждые три минуты если нет стоп-файла.

Reply

tzirechnoy January 18 2016, 16:47:27 UTC
Ну и да, банальное: mysqld_safe ужэ вроде как нинужэн, но я всё равно предпочитаю не связываться лишний раз с mysql. Вот именно поэтому -- что нехер падать.

Reply

tzirechnoy January 18 2016, 16:48:26 UTC
И да, ещё банальное: в большынстве случаев если сервис упал, то говрить restart или start ему безсмысленно. Ну, у меня так.

Reply

tzirechnoy January 18 2016, 17:11:35 UTC
Кстати, в сдучае xl2tpd -- systemd не поможэт ничем, поскольку падает канал, а демон висит и слушает команды...

Reply


tzirechnoy January 18 2016, 17:11:07 UTC
Кстати, хозяйке на заметку: а как в вашэм systemd принято оповещать админа о том, что сервис того... Ну, падает немного.

Reply

amarao_san January 18 2016, 18:49:04 UTC
Да, конечно. Штатными средствами - в лог пишет, если надо, notify через заданный скрипт дёрнет (куда этот скрипт поведёт - это уже админский вопрос).

Reply


Leave a comment

Up