Monit répertorie Apache comme non surveillé

11

Je viens d'installer et de configurer monit selon la documentation de monit . Tous les services à l'exception d'Apache sont répertoriés comme En cours d'exécution, mais Apache indique Non surveillé .

Les lignes pertinentes dans la configuration de monit sont:

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

Je peux accéder à http: // localhost / server-status et http: // localhost fine depuis le serveur. Monit répertorie le mode de surveillance pour Apache comme actif .

Le serveur exécute CentOS 5.4.

Le fichier PID est correct pour le serveur httpd parent:

[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
la source

Réponses:

13

Assurez-vous que le contenu du fichier pid correspond au pid du processus maître Apache (c'est-à-dire le httpdprocessus qui s'exécute en tant que root). Il est possible que le fichier pid soit périmé.

S'il est périmé, récupérez le pid du processus maître Apache et faites quelque chose comme echo 1234 > /var/run/httpd.pid, où 1234est le pid en question.

Après cela, exécutez monit monitor apachepour redémarrer la surveillance de ce service.

cjc
la source
2
Le fichier PID était correct, mais l'exécution monit monitor apachea commencé, et il semble maintenant fonctionner correctement après le redémarrage du service. J'aurais également dû essayer de cliquer sur le bouton Activer le moniteur sur l'interface Web.
dunxd
1

Vous ne fournissez pas la version / distribution du système d'exploitation, mais sur CentOS 6, le fichier PID que vous devez surveiller se trouve à l'adresse suivante: /var/run/httpd/httpd.pid

Changez donc pour:

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

Par ailleurs, CentOS 5 a le fichier PID Apache dans: /var/run/httpd.pid

Modifier: citez également le chemin PID.

Il y a une note sur la liste de diffusion Monit sur le test de protocole que vous utilisez:

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

Vous devrez peut-être transmettre un nom d'hôte ou un nom de site si vous utilisez des hôtes virtuels basés sur le nom.

ewwhite
la source
C'est CentOS 5.4. Le fichier PID est correct.
dunxd
En utilisant votre config sur un serveur CentOS 5, je reçoisProcess 'apache' status Does not exist monitoring status monitored
ewwhite
Où voyez-vous cette sortie?
dunxd
Vous devez citer votre chemin de fichier pid "/var/run/httpd/httpd.pid". Voir également la note que j'ai placée dans la réponse initiale au sujet d'un éventuel besoin d'une directive VirtualHosts.
ewwhite
Ne fait aucune différence ou non.
dunxd