Monit lista o Apache como não monitorado

11

Acabei de instalar e configurar o monit de acordo com a documentação do monit . Todos os serviços, exceto o Apache, estão listados como Em execução, mas o Apache diz Não monitorado .

As linhas relevantes na configuração do monit são:

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

Eu posso acessar http: // localhost / server-status e http: // localhost fine do servidor. O Monit lista o modo de monitoramento do Apache como ativo .

O servidor está executando o CentOS 5.4.

O arquivo PID está correto para o servidor httpd pai:

[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
fonte

Respostas:

13

Verifique se o conteúdo do arquivo pid corresponde ao pid do processo mestre do Apache (ou seja, o httpdprocesso que é executado como root). É possível que o arquivo pid esteja obsoleto.

Se estiver obsoleto, obtenha o pid do processo mestre do Apache e faça algo como echo 1234 > /var/run/httpd.pid, onde 1234está o pid em questão.

Depois disso, execute monit monitor apachepara reiniciar o monitoramento desse serviço.

cjc
fonte
2
O arquivo PID estava correto, mas a execução monit monitor apacheo iniciou e agora parece estar funcionando bem após a reinicialização do serviço. Eu também deveria ter tentado clicar no botão Ativar Monitor na interface da web.
22412 dunxd
1

Você não fornece a versão / distribuição do SO, mas no CentOS 6, o arquivo PID que você deve monitorar está localizado em: /var/run/httpd/httpd.pid

Então mude para:

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

Aliás, o CentOS 5 tem o arquivo Apache PID em: /var/run/httpd.pid

Editar: cite também o caminho do PID.

Há uma observação na lista de discussão da Monit sobre o teste de protocolo que você está usando:

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

Pode ser necessário passar um nome de host ou nome de site se você estiver usando hosts virtuais baseados em nome.

ewwhite
fonte
É o CentOS 5.4. O arquivo PID está correto.
dunxd
Utilizando sua configuração em um servidor CentOS 5, eu receboProcess 'apache' status Does not exist monitoring status monitored
ewwhite
Onde você está vendo essa saída?
23412 dunxd
Você deve citar seu caminho de pidfile "/var/run/httpd/httpd.pid". Veja também a observação que coloquei na resposta inicial sobre uma possível necessidade de uma diretiva VirtualHosts.
ewwhite
Não faz diferença citada ou não.
23412 dunxd