4 votes

Monit 5.5 est lié à localhost seulement, mais devrait être sur tous les serveurs.

J'utilise Centos 6.4 et Monit 5.5 installé par yum.

J'ai deux serveurs avec monit installé - même version, même configuration - mais l'un se lie à toutes les adresses et l'autre seulement à l'hôte local.

Serveur à problèmes :

# service monit restart
Stopping monit:                                            [  OK  ]
Starting monit: Starting monit daemon with http interface at [localhost:8080]
                                                           [  OK  ]

Bon serveur :

# service monit restart
Stopping monit:                                            [  OK  ]
Starting monit: Starting monit daemon with http interface at [*:8080]
                                                           [  OK  ]

La configuration est la suivante :

set httpd port 8080
  allow fofo:sdad
  allow fdgdfg:dsfsdf
  SSL ENABLE
  PEMFILE  /var/certs/monit.pem
  signature disable

Je suppose que le problème est dû à une mauvaise configuration du réseau du serveur en question - il ne peut donc pas se lier sur le port externe - mais d'autres choses fonctionnent correctement - http, ssh etc....

UPDATE Quelques informations supplémentaires - merci pour les commentaires : Boîte à problèmes :

# rpm -qi monit
Name        : monit                        Relocations: (not relocatable)
Version     : 5.5                               Vendor: Dag Apt Repository, http://dag.wieers.com/apt/
Release     : 1.el6.rf                      Build Date: Wed 20 Mar 2013 02:09:54 PM WET
Install Date: Sat 04 May 2013 09:30:54 PM WEST      Build Host: lisse.hasselt.wieers.com
Group       : Applications/Internet         Source RPM: monit-5.5-1.el6.rf.src.rpm
Size        : 716992                           License: GPLv3
Signature   : DSA/SHA1, Wed 20 Mar 2013 03:59:25 PM WET, Key ID a20e52146b8d79e6
Packager    : Steve Huff <shuff@vecna.org>
URL         : http://mmonit.com/monit/
Summary     : Process monitor and restart utility
Description :
Monit is an utility for monitoring daemons or similar programs running on
a Unix system. It will start specified programs if they are not running
and restart programs not responding.

Boîte de travail :

# rpm -qi monit
Name        : monit                        Relocations: (not relocatable)
Version     : 5.5                               Vendor: Dag Apt Repository, http://dag.wieers.com/apt/
Release     : 1.el6.rf                      Build Date: Wed 20 Mar 2013 02:09:54 PM WET
Install Date: Fri 22 Mar 2013 04:02:32 AM WET      Build Host: lisse.hasselt.wieers.com
Group       : Applications/Internet         Source RPM: monit-5.5-1.el6.rf.src.rpm
Size        : 716992                           License: GPLv3
Signature   : DSA/SHA1, Wed 20 Mar 2013 03:59:25 PM WET, Key ID a20e52146b8d79e6
Packager    : Steve Huff <shuff@vecna.org>
URL         : http://mmonit.com/monit/
Summary     : Process monitor and restart utility
Description :
Monit is an utility for monitoring daemons or similar programs running on
a Unix system. It will start specified programs if they are not running
and restart programs not responding.

Le fichier /etc/hosts est assez similaire entre eux, comme ceci :

cat /etc/hosts
# Automatically generated by ptisp cloud
127.0.0.1       localhost
x.x.x.x             [hostname]

Boîte à problèmes :

# netstat -tln | grep ":8080"
tcp        0      0 127.0.0.1:8080              0.0.0.0:*                   LISTEN

Boîte de travail :

# netstat -tln | grep ":8080"
tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN

J'ai également lancé 'ip addr' et son résultat est assez similaire entre une boîte qui fonctionne et une boîte qui ne fonctionne pas.

MISE À JOUR 2

Je viens d'ajouter M/monit au mélange ce soir et cette boîte apparaît étrangement deux fois, une fois inactive. Je pense que c'est parce que le serveur m/monit ne peut pas renvoyer le client par ping...

Merci d'avance pour toute idée. Chris

1 votes

Vous l'avez peut-être déjà fait, mais juste au cas où : Essayez de faire sudo ip addr et vérifiez que l'interface est en service.

1 votes

Juste par curiosité, y a-t-il une différence entre les fichiers /etc/hosts des deux systèmes ?

1 votes

Quel est le résultat de la commande netstat -tln | grep ":8080" ?

4voto

Sergey Vlasov Points 6068

Si le comportement de Monit ne correspond pas à ce qui est écrit dans le fichier de configuration, l'une des causes possibles peut être que Monit utilise en fait un fichier de configuration différent.

Le site /etc/rc.d/init.d/monit script dans la section monit-5.5-1.el6.rf le paquet commence monit sans spécifier le nom du fichier de configuration, Monit essaie donc de trouver le fichier de configuration à plusieurs endroits et utilise le premier qui est trouvé. Une autre chose importante est que le nom du fichier de configuration par défaut dans ce paquetage est différent de celui utilisé par la version amont non modifiée de Monit - upstream utilise monitrc mais le paquet de RepoForge utilise monit.conf .

L'ordre de recherche utilisé pour le fichier de configuration est le suivant :

  1. ~/.monitrc dans la version amont de Monit, ou ~/.monit.conf dans le paquetage RepoForge (le répertoire personnel de l'utilisateur qui a démarré monit est utilisé ; si Monit est démarré à partir du script init, l'utilisateur est root ). Le répertoire personnel est lu en utilisant getpwuid(geteuid()) (c'est-à-dire de /etc/passwd ou toute autre base de données du NSS), et non pas de la HOME variable d'environnement.

  2. /etc/monitrc dans la version amont de Monit, ou /etc/monit.conf dans le paquet RepoForge. Si le paquet RepoForge est utilisé, /etc/monit.conf contient initialement un include ce qui amène Monit à lire des fichiers de configuration supplémentaires à partir de l'arborescence du site Web. /etc/monit.d répertoire :

    include /etc/monit.d/*

    Dans les sources en amont, l'exemple monitrc a cette ligne commentée, donc aucun fichier de configuration supplémentaire n'est utilisé par défaut.

    Notez également que le paquet RepoForge a un script postinstall :

    # Moving old style configuration file to conf standard location
    if [ -f /etc/monitrc ]; then
        mv -f /etc/monitrc /etc/monit.conf
    fi

    Par conséquent, si le /etc/monitrc existe avant l'installation du paquet ou de mettre à niveau ce fichier sera renommé en /etc/monit.conf en l'écrasant silencieusement.

  3. $SYSCONFDIR/monitrc dans la version amont de Monit, où $SYSCONFDIR est la valeur de la --sysconfdir=... passée à l'option configure script lors de la compilation du source (la valeur par défaut de cette option est $prefix/etc comme d'habitude avec les fichiers générés par Autoconf. configure scripts, et le préfixe par défaut est /usr/local Le nom du fichier de configuration devient donc /usr/local/etc/monitrc ). Dans le paquet RepoForge, ce nom de fichier devient /etc/monit.conf ce qui la rend superflue.

  4. /usr/local/etc/monitrc dans la version amont de Monit, ou /usr/local/etc/monit.conf dans le paquet RepoForge. Ici, le /usr/local/etc est codé en dur et ne dépend pas d'une quelconque configure options.

  5. ./monitrc dans la version amont de Monit, ou ./monit.conf dans le paquetage RepoForge (lorsqu'on démarre à partir de l'init script, le répertoire courant sera probablement / ).

0 votes

Wow - merci pour cette excellente réponse, je m'attendais seulement à un copier/coller du commentaire :) Et le point sur le script post-installation.

1voto

Joel E Salas Points 5542

Vérifiez que ~/.monit.conf n'existe pas - cet emplacement est recherché avant /etc/monit.conf même pour la racine. (La version amont de Monit utilise ~/.monitrc y /etc/monitrc mais ce paquet particulier utilise des noms de fichiers de configuration différents).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X