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-status 및 http : // 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
이름 기반 가상 호스트를 사용하는 경우 호스트 이름 또는 사이트 이름을 전달해야 할 수도 있습니다.