monit: impossible de se connecter à l'interface http

8

J'installe monit sur un nouveau site, que j'appellerai mywebsite.com lors de cette question. J'ai configuré la configuration pour accéder à la page d'interface Web de monit, mais je ne peux pas me connecter. J'ai un pare-feu de base fonctionnant avec iptables, et je pense que j'ai fait un trou pour monit, mais je ne peux pas me connecter à l'interface Web de monit, et je ne sais pas pourquoi.

Je n'ai encore rien configuré à surveiller: ma configuration monit ressemble à ceci:

## Start monit in the background (run as a daemon):
set daemon  120           # check services at 2-minute intervals

set httpd port 2812 and
  use address mywebsite.com  
  allow localhost      
  allow admin:password

J'ai redémarré monit avec ces règles.

J'ai fait une règle pour monit dans ma configuration iptables, qui ressemble à ceci:

#monit interface
-A OUTPUT -p tcp --dport 2812 -j ACCEPT
-A INPUT -p tcp --dport 2812 -j ACCEPT

J'ai ensuite importé ces règles dans /sbin/iptables-restore. Je peux voir l'entrée monit quand je le fais sudo /sbin/iptables -L:

...
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:2812 
...

Mais, quand je vais - http://mywebsite.com:2812je obtenir Error code: ERR_EMPTY_RESPONSEdans le navigateur.

Des idées, quelqu'un? Je ne sais même pas si le problème est lié à iptables. Merci d'avance, Max

EDIT: J'ai essayé de changer la ligne 'localhost' dans la configuration monit ainsi:

set httpd port 2812 and
  use address mywebsite.com  
  allow mywebsite.com      
  allow admin:password

mais cela n'a fait aucune différence.

Max Williams
la source
Il semble que vous n'autorisez que localhost. Vous devez autoriser vos sous-réseaux.
krisFR
merci - voir modifier, est-ce ce que vous vouliez dire par "autoriser vos sous-réseaux"?
Max Williams

Réponses:

15

Pour accéder à Monit depuis un réseau externe, définissez simplement:

Pour aucune authentification et accès de partout:

set httpd port 2812

Pour un accès de partout avec authentification:

set httpd port 2812
   allow <auth_user>:<auth_password>

Dans votre cas, supprimez le andà la fin de la ligneset httpd port 2812 and

Remarque : Si vous testez la configuration avec un mot de passe défini comme "mot de passe", vous recevrez cette erreur:

Error: syntax error 'password'
krisFR
la source
1
cela a fonctionné - merci! La partie "et" provient de ce site - tecmint.com/… - est-ce peut-être une version plus ancienne de monit, qui avait une syntaxe de configuration différente?
Max Williams
1
Non, c'est parce que dans ce tutoriel, ils traitent toujours avec localhost. Ils n'expliquent pas comment accéder depuis l'extérieur de l'hôte local (regardez l'url sur leur écran d'impression)
krisFR
Cela m'a aidé une tonne et j'aime monit
Cesar Bielich
Je suppose que vous devez spécifier au moins une entre les directives allowet credentials. Voir serverfault.com/a/900823/459872
Davide Cavestro
le simple fait de définir le port httpd 2812 sans autorisation ne fonctionne plus. monit: monit httpd n'a pas démarré car aucune connexion n'est autorisée
roothahn