Monit가 Apache를 모니터되지 않은 것으로 표시

monit documentation 에 따라 monit을 설치하고 구성했습니다 . Apache 이외의 모든 서비스는 Running으로 표시되지만 Apache는 Not Monitored 라고 합니다.

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-statushttp : // localhost에 액세스 할 수 있습니다 . Monit는 Apache의 모니터링 모드를 활성으로 표시 합니다.

서버가 CentOS 5.4를 실행 중입니다.

상위 httpd 서버에 대한 PID 파일이 올바른지 :

[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 파일의 내용이 Apache 마스터 프로세스의 pid (즉, httpd루트로 실행되는 프로세스) 와 일치하는지 확인하십시오 . pid 파일이 오래되었을 수 있습니다.

오래되지 않은 경우 Apache 마스터 프로세스의 pid를 가져 와서 pid가 echo 1234 > /var/run/httpd.pid어디에 있는지 와 같은 작업을 수행 1234하십시오.

그런 다음 실행 monit monitor apache하여 해당 서비스의 모니터링을 다시 시작하십시오.


답변

OS 버전 / 배포를 제공하지 않지만 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

이름 기반 가상 호스트를 사용하는 경우 호스트 이름 또는 사이트 이름을 전달해야 할 수도 있습니다.