配置 Monit 以在 Ubuntu/Nginx 设置上监控 PHP5-FPM

配置 Monit 以在 Ubuntu/Nginx 设置上监控 PHP5-FPM

系统:在 Ubuntu 14.04 上运行的 LEMP

我正在尝试配置工具 Monit,以便在出现问题时重新启动 Nginx 或 PHP-FPM。它正确地监控了 Nginx,但在 PHP-FPM 的状态下,它显示“未监控”。显然,我让它检查了错误的位置。

下面是在套接字上运行的 PHP-FPM 的 Nginx 配置:

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
}

以下是我对 Nginx 和 PHP-FPM 的 Monit 配置:

## 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 显示“正在初始化”,然后是“连接失败”。有什么建议吗?

答案1

这是我长期使用的配置,效果很好

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

答案2

好的,我自己解决了。有很多问题。“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

相关内容