У меня есть 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