Monit перечисляет Apache как не контролируемый

11

Я только что установил и настроил monit в соответствии с документацией 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 / server-status и 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
dunxd
источник

Ответы:

13

Убедитесь, что содержимое файла pid совпадает с pid главного процесса Apache (т. Е. httpdПроцесс, выполняющийся от имени пользователя root). Возможно, файл pid устарел.

Если он устарел, возьмите pid основного процесса Apache и сделайте что-то вроде того echo 1234 > /var/run/httpd.pid, где 1234находится pid.

После этого запустите, monit monitor apacheчтобы перезапустить мониторинг этой службы.

CJC
источник
2
Файл PID был верным, но monit monitor apacheон запустился, и теперь, после перезапуска службы, он работает нормально. Я также должен был попробовать нажать кнопку «Включить монитор» в веб-интерфейсе.
dunxd
1

Вы не предоставляете версию / дистрибутив ОС, но в CentOS 6 PID-файл, который вы должны отслеживать, находится по адресу: /var/run/httpd/httpd.pid

Так что измените на:

check process apache with pidfile /var/run/httpd/httpd.pid

Кстати, CentOS 5 имеет PID-файл Apache в: /var/run/httpd.pid

Изменить: также укажите путь PID.

В списке рассылки Monit есть примечание о тесте протокола, который вы используете:

http://lists.gnu.org/archive/html/monit-general/2004-12/msg00057.html

Вам может потребоваться передать имя хоста или имя сайта, если вы используете виртуальные хосты на основе имен.

ewwhite
источник
Это CentOS 5.4. Файл PID правильный.
dunxd
Используя ваш конфиг на сервере CentOS 5, я получаюProcess 'apache' status Does not exist monitoring status monitored
ewwhite
Где вы видите этот вывод?
dunxd
Вы должны указать путь к файлу pid "/var/run/httpd/httpd.pid". Также см. Примечание, которое я поместил в первоначальный ответ о возможной необходимости директивы VirtualHosts.
ewwhite
Не имеет значения, цитируется или нет.
dunxd