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

Monit не может перезапустить apache

У меня есть monit, установленный на многих наших виртуальных машинах. Все работает нормально, кроме этой виртуальной машины.

Monit настроен на мониторинг apache и проверку его работы. По какой-то причине monit сообщает, что apache не работает (это не так) и его необходимо перезапустить. После попытки запустить сценарий запуска он по-прежнему сообщает «не удалось запустить». Журнал мониторинга выглядит следующим образом:

[CEST Oct  4 20:16:21] error    : 'apache2' process is not running
[CEST Oct  4 20:16:21] info     : 'apache2' trying to restart
[CEST Oct  4 20:16:21] info     : 'apache2' start: /etc/init.d/apache2
[CEST Oct  4 20:16:52] error    : 'apache2' failed to start

После этого сервер apache все еще работает, а monit по-прежнему сообщает, что он не запущен, и не выполняет мониторинг.

Моя конфигурация для apache выглядит следующим образом:

 check process apache2 with pidfile /var/run/apache/apache2.pid
   alert email@domain.com but not on { pid }
   start program = "/etc/init.d/apache2 start"
   stop  program = "/etc/init.d/apache2 stop"
   if failed host vm01.domain.com port 80
        protocol HTTP request "/monit_check.html" then restart
   if cpu > 60% for 2 cycles then alert
   if 5 restarts within 5 cycles then timeout

Сервер - это Linux-сервер ubuntu 14.01.1 LTS. Любая помощь будет принята с благодарностью!

Благодаря Полу Холдейну (комментарий к моему первому посту) я нашел ответ. Я не мог заставить monit выходить на передний план и выводить подробности. Я забыл заглавную I.

После того, как я это сделал, я обнаружил, что он не может найти pid - оказывается, я сделал опечатку в пути к PID-файлу и установил для него apache вместо apache2.

Спасибо вам обоим!

Похоже, он не может получить доступ к странице monit_check.html. Работает ли это, когда вы пытаетесь получить к нему доступ самостоятельно?

curl http://vm01.d-cloud.nl/monit_check.html

Возможно, это неправильный синтаксис (я мог ошибаться):

if failed host vm01.d-cloud.nl port 80
    protocol HTTP request "/monit_check.html" then restart

Попробуйте поставить "и" перед "запросом":

if failed host vm01.d-cloud.nl port 80 protocol HTTP
    and request "/monit_check.html"
then restart