Страница 1 из 1

Дружим сторонние сервисы с taiwatchd (cPanel)

Добавлено: 02 дек 2013, 10:58
Raven
В сипанели имеется система отслеживания состояния и перезапуска сервисов tailwatchd (раньше chkservd). Система в принципе неплохая, но я как-то не старался в ней разобраться, до того как на одном из серверов в выходные рухнул nginx и эта мониторилка стала лихорадочно перезапускать апач, засыпав при этом мне мыло слезными сообщениями о плачевности ситуации. Оказалось, мониторилка наивно полагала, что на 80 порту так и проживает апач, то и дергала бедолагу, считая его источником всех бед. Будем это выправлять, попутно надо добавить в нее остальные сервисы, юзаемые мной на сервере.

Итак, конфиги проверялки лежат в /etc/chkserv.d. Все кроме chkservd.conf - это файлы проверяемых сервисов, в chkcervd.conf задается список тех, которые нуждаются в проверке.

Синтаксис:

chkservd.conf:

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

имя_сервиса:1
имя_сервиса:1
файлы сервисов:

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

service[ftpd]=21,QUIT,220,/scripts/restartsrv_ftpserver
то есть

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

СЕРВИС=порт, что слать, что получить,команда перезапуска
также можно по процессам мониторить, тогда конф такой:

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

service[sshd]=x,x,x,/usr/local/cpanel/scripts/restartsrv_sshd,sshd,root
то бишь

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

СЕРВИС=х,х,х,команда перезапуска,процесс,юзер от имени которого перезапускать
Сперва надо вылечить апач. Смотрим файл httpd

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

service[httpd]=80,GET / HTTP/1.0,HTTP/1..,killall -TERM httpd;sleep 2;killall -9 httpd;/etc/rc.d/init.d/httpd stop;/etc/rc.d/init.d/httpd startssl;/usr/local/apache/bin/apachectl startssl;/etc/rc.d/init.d/httpd start;/usr/local/apache/bin/apachectl start
уффф... кучеряшка! меняем порт на 8081 (именно его у меня слушает апач) и сохраняем.

Далее, надо скормить ему nginx, sphinx и php-fpm. Заготавливаю 3 файла с соответствующими названиями:
nginx:

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

service[nginx]=80,GET / HTTP/1.0,HTTP/1..,/usr/local/cpanel/scripts/restartsrv_nginx
php-fpm:

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

service[php-fpm]=x,x,x,/usr/local/cpanel/scripts/restartsrv_fpm,php-fpm,root
searchd:

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

service[searchd]=x,x,x,/usr/local/cpanel/scripts/restartsrv_sphinx,searchd,root
дописываю в chkservd.conf

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

nginx:1
php-fpm:1
searchd:1
Перезапускаем проверялку:

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

/usr/local/cpanel/scripts/restartsrv_tailwatchd