Я только что установил и настроил monit в соответствии с документация монитора. Все службы, кроме Apache, указаны как запущенные, но Apache говорит Не контролируется.
Соответствующие строки в конфигурации monit:
check process apache with pidfile /var/run/httpd.pid
group www
start program = "/etc/init.d/httpd start"
stop program = "/etc/init.d/httpd stop"
if failed host localhost port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
Я могу получить доступ http: // localhost / статус-сервера и http: // localhost штраф с сервера. Monit перечисляет режим мониторинга для Apache как активный.
Сервер работает под управлением CentOS 5.4.
PID-файл правильный для родительского сервера httpd:
[server ~]$ cat /var/run/httpd.pid
2905
[server ~]$ ps auxc | grep httpd
root 2905 0.0 0.9 26952 4808 ? Ss 11:36 0:00 httpd
Убедитесь, что содержимое файла pid совпадает с pid главного процесса Apache (т. Е. httpd
процесс, который работает как root). Возможно, файл pid устарел.
Если он устарел, получите pid главного процесса Apache и выполните что-нибудь вроде echo 1234 > /var/run/httpd.pid
, где 1234
это pid, о котором идет речь.
После этого запустите monit monitor apache
чтобы перезапустить мониторинг этой службы.
Вы не предоставляете версию / дистрибутив ОС, но в CentOS 6 файл PID, который вы должны отслеживать, находится по адресу: /var/run/httpd/httpd.pid
Так что измените на:
check process apache with pidfile /var/run/httpd/httpd.pid
Между прочим, в CentOS 5 есть файл Apache PID в: /var/run/httpd.pid
Изменить: также укажите путь PID.
В списке рассылки Monit есть примечание об используемом вами протоколе:
http://lists.gnu.org/archive/html/monit-general/2004-12/msg00057.html
Вам может потребоваться передать имя хоста или имя сайта, если вы используете виртуальные хосты на основе имен.