Нужна помощь с мониторингом оповещений о подключении Nginx - PullRequest
2 голосов
/ 12 ноября 2010

Я надеюсь, что где-нибудь там мне помогут в этом. У меня есть производственная среда следующим образом:

Rails 2.3.5
Passenger 2.2.11
Nginx
Monit

Кажется, что все работает так, как должно быть, но 2 или 3 раза в день я получаю электронное письмо от Monit следующим образом:

monit alert -- Connection failed nginx

To: myemail@domain.com
Connection failed Service nginx

    Date:        Thu, 11 Nov 2010 10:46:44 +0000
    Action:      restart
    Host:        mydomain
    Description: 'nginx' failed, cannot open a connection to INET[mydomain.com:80] via TCP

Your faithful employee,
monit

Затем, примерно через 30 секунд, я получаю еще одно электронное письмо:

Connection passed Service nginx

    Date:        Thu, 11 Nov 2010 10:47:16 +0000
    Action:      alert
    Host:        mydomain
    Description: 'nginx' connection passed to INET[mydomain.com:80] via TCP

Your faithful employee,
monit

В моем конфигурационном файле monit у меня есть следующее:

set daemon 30
check process nginx with pidfile /opt/nginx/logs/nginx.pid
  start program = "/opt/nginx/sbin/nginx"
  stop program = "/opt/nginx/sbin/nginx -s stop"
  if failed host mydomain.com port 80 protocol http request / then restart
  if 5 restarts within 5 cycles then timeout

И в то же время в журнале Nginx у меня есть это:

2010/11/11 10:46:44 [notice] 3812#0: signal process started
*** Exception Errno::EPIPE in Passenger RequestHandler (Broken pipe) (process 3803):
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/rack/request_handler.rb:94:in `write'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/rack/request_handler.rb:94:in `process_request'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/railz/application_spawner.rb:418:in `start_request_handler'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/railz/application_spawner.rb:358:in `handle_spawn_application'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/utils.rb:184:in `safe_fork'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/railz/application_spawner.rb:354:in `handle_spawn_application'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server.rb:352:in `__send__'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server.rb:163:in `start'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/railz/application_spawner.rb:213:in `start'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/spawn_manager.rb:262:in `spawn_rails_application'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/spawn_manager.rb:256:in `spawn_rails_application'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/spawn_manager.rb:255:in `spawn_rails_application'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/spawn_manager.rb:154:in `spawn_application'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/spawn_manager.rb:287:in `handle_spawn_application'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server.rb:352:in `__send__'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
    from /opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/bin/passenger-spawn-server:61

Я не мог понять, что является причиной этой проблемы. Я попытался установить max_pool_size равным 30 в конфигурационном файле Passenger, но это пока не имело никакого значения.

Любая помощь будет оценена.

Спасибо.

1 Ответ

0 голосов
/ 29 декабря 2010

Если вы хотите проверить работоспособность вашего сайта, возможно, вам следует воспользоваться услугой, подобной wasitup.com (бесплатно, кстати).

Пассажир упадет, если некоторое время не будет «активным». опускаться - сильное слово, но если кто-то не посетит ваш сайт, скажем, через 10 минут или около того, все пассажирские экземпляры будут убиты, и первому, кто посетит ваш сайт, придется ждать, пока он загрузится.

Я использую это для того, чтобы пассажир не спал, из-за отсутствия лучшего слова.

Пожалуйста, сообщите нам, если вы исправили эту проблему с помощью monit, возможно, кому-то еще понадобится помощь по сетям.

...