Назад | Перейти на главную страницу

Настройте Monit для мониторинга PHP5-FPM при установке Ubuntu / Nginx

Система: LEMP работает в Ubuntu 14.04

Я пытаюсь настроить инструмент Monit для перезапуска Nginx или PHP-FPM, если возникнет проблема. Он правильно отслеживает Nginx, однако в статусе PHP-FPM он говорит «Не отслеживает». Видимо я прошу проверить неправильное место.

Вот моя конфигурация Nginx для PHP-FPM, работающая в сокете:

location ~ \.php$ { ## Execute PHP scripts
    if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss

    expires off; ## Do not cache dynamic content
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params; ## See /etc/nginx/fastcgi_params

    fastcgi_keep_conn on; #hhvm param
}

Вот моя конфигурация Monit для Nginx и PHP-FPM:

## Check Nginx
check process nginx with pidfile /var/run/nginx.pid
    start program = "/etc/init.d/nginx start"
    stop program = "/etc/init.d/nginx stop"
## Check PHP-FPM
check process php-fpm with pidfile /var/run/php-fpm/php-fpm.pid
  group www-data #change accordingly
  start program = "/etc/init.d/php5-fpm start"
  stop program  = "/etc/init.d/php5-fpm stop"
  if failed unixsocket /var/run/php-fpm/php-fpm.sock then restart
  if 3 restarts within 5 cycles then timeout

Я придерживался предложенных рекомендаций по запуску и остановке, несмотря на то, что всегда перезапускался с помощью «service php5-fpm restart».

Моя группа - согласно /etc/php5/fpm/pool.d/www.conf - это «group = www-data». Я проверил свой php-fpm.conf и заметил, что файл PID создается в /var/run/php5-fpm.pid, поэтому я изменил его. Затем Monit сказал «Инициализация», а затем «Ошибка подключения». Какие-либо предложения?

Это конфигурация, которую я использую долгое время и отлично работает

check process php5-fpm with pidfile /var/run/php5-fpm.pid
  group phpcgi
  if not exist for 2 cycles then restart
  start program = "/usr/sbin/service php5-fpm start"
  stop program  = "/usr/sbin/service php5-fpm stop"
  if not exist for 2 cycles then restart
  if failed unixsocket /var/run/php5-fpm.sock then restart
  if 5 restarts within 5 cycles then timeout

Хорошо, я смог решить это сам. Возник ряд проблем. «php5» нужно было заменить почти все экземпляры «php». Плохое соединение, которое я получал, относилось к unixsocket, поэтому мне также пришлось обновить его. Также изменилось новое расположение PID, похоже, с PHP5-FPM. Вот окончательная конфигурация.

## Check PHP-FPM
check process php5-fpm with pidfile /var/run/php5-fpm.pid
  group www-data #change accordingly
  start program = "/etc/init.d/php5-fpm start"
  stop program  = "/etc/init.d/php5-fpm stop"
  if failed unixsocket /var/run/php5-fpm.sock then restart
  if 3 restarts within 5 cycles then timeout