Monit listet Apache als nicht überwacht auf

11

Ich habe gerade Monit gemäß der Monit-Dokumentation installiert und konfiguriert . Alle Dienste außer Apache werden als "Laufen" aufgeführt, Apache sagt jedoch " Nicht überwacht" .

Die relevanten Zeilen in der Konfiguration von monit sind:

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

Ich kann vom Server aus auf http: // localhost / server-status und http: // localhost in Ordnung zugreifen . Monit listet den Überwachungsmodus für Apache als aktiv auf .

Auf dem Server wird CentOS 5.4 ausgeführt.

Die PID-Datei ist für den übergeordneten httpd-Server korrekt:

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

Antworten:

13

Stellen Sie sicher, dass der Inhalt der PID-Datei mit der PID des Apache-Master-Prozesses übereinstimmt (dh dem httpdProzess, der als Root ausgeführt wird). Möglicherweise ist die PID-Datei veraltet.

Wenn es veraltet ist, holen Sie sich die PID des Apache-Master-Prozesses und machen Sie so etwas wie echo 1234 > /var/run/httpd.pid, wo 1234ist die PID in Frage.

Führen Sie danach aus monit monitor apache, um die Überwachung dieses Dienstes neu zu starten.

cjc
quelle
2
Die PID-Datei war korrekt, aber beim Ausführen monit monitor apachewurde sie gestartet, und jetzt scheint sie nach dem Neustart des Dienstes einwandfrei zu funktionieren. Ich hätte auch versuchen sollen, auf der Weboberfläche auf die Schaltfläche Monitor aktivieren zu klicken.
Dunxd
1

Sie geben die Betriebssystemversion / -verteilung nicht an, aber unter CentOS 6 befindet sich die PID-Datei, die Sie überwachen sollten, unter: /var/run/httpd/httpd.pid

Wechseln Sie also zu:

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

Übrigens hat CentOS 5 die Apache PID-Datei in: /var/run/httpd.pid

Bearbeiten: Geben Sie auch den PID-Pfad an.

Auf der Monit-Mailingliste befindet sich ein Hinweis zu dem von Ihnen verwendeten Protokolltest:

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

Möglicherweise müssen Sie einen Hostnamen oder Site-Namen übergeben, wenn Sie namensbasierte virtuelle Hosts verwenden.

ewwhite
quelle
Es ist CentOS 5.4. PID-Datei ist korrekt.
Dunxd
Mit Ihrer Konfiguration auf einem CentOS 5-Server bekomme ichProcess 'apache' status Does not exist monitoring status monitored
ewwhite
Wo sehen Sie diese Ausgabe?
Dunxd
Sie sollten Ihren PID-Dateipfad "/var/run/httpd/httpd.pid" angeben. Siehe auch den Hinweis, den ich in der ersten Antwort über die mögliche Notwendigkeit einer VirtualHosts-Direktive eingefügt habe.
ewwhite
Macht keinen Unterschied zitiert oder nicht.
Dunxd