monit: kann keine Verbindung zur http-Schnittstelle herstellen

8

Ich richte monit auf einer neuen Website ein, die ich in dieser Frage als mywebsite.com bezeichnen werde. Ich habe die Konfiguration für den Zugriff auf die Weboberflächenseite von monit eingerichtet, kann jedoch keine Verbindung herstellen. Ich habe eine grundlegende Firewall mit iptables und ich glaube, ich habe ein Loch für monit gemacht, aber ich kann keine Verbindung zur Weboberfläche von monit herstellen, und ich weiß nicht warum.

Ich habe noch nichts für die Überwachung eingerichtet: Meine Monit-Konfiguration sieht folgendermaßen aus:

## 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

Ich habe monit mit diesen Regeln neu gestartet.

Ich habe in meiner iptables-Konfiguration eine Regel für die Überwachung festgelegt, die folgendermaßen aussieht:

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

Ich habe diese Regeln dann in importiert /sbin/iptables-restore. Ich kann den Monit-Eintrag sehen, wenn ich sudo /sbin/iptables -L:

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

Aber wenn ich zu gehe, http://mywebsite.com:2812komme ich Error code: ERR_EMPTY_RESPONSEin den Browser.

Irgendwelche Ideen, irgendjemand? Ich weiß nicht einmal, ob das Problem mit iptables zu tun hat. Danke im Voraus, Max

BEARBEITEN: Ich habe versucht, die 'localhost'-Zeile in der Monit-Konfiguration folgendermaßen zu ändern:

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

aber es machte keinen Unterschied.

Max Williams
quelle
Scheint, Sie erlauben nur localhost. Sie sollten Ihre Subnetze zulassen.
krisFR
danke - siehe bearbeiten, hast du das mit "erlaube deine Subnetze" gemeint?
Max Williams

Antworten:

14

Um von außerhalb auf Monit zuzugreifen, stellen Sie einfach Folgendes ein:

Für keine Authentifizierung und keinen Zugriff von überall:

set httpd port 2812

Für den Zugriff von überall mit Authentifizierung:

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

Entfernen Sie in Ihrem Fall das andam Ende der Zeileset httpd port 2812 and

Hinweis : Wenn Sie das Setup mit dem Kennwort "Kennwort" testen, wird folgende Fehlermeldung angezeigt:

Error: syntax error 'password'
krisFR
quelle
1
das hat funktioniert - danke! Das "und" stammt von dieser Site - tecmint.com/… - ist das vielleicht von einer älteren Version von monit übrig geblieben, die eine andere Konfigurationssyntax hatte?
Max Williams
1
Nein, das liegt daran, dass sie sich in diesem Tutorial immer mit localhost befassen. Sie erklären nicht, wie man von außerhalb von localhost
zugreift
Dies hat mir eine Menge geholfen und ich liebe Monit
Cesar Bielich
Ich vermute, Sie müssen mindestens eine zwischen der allowund der credentialsDirektive angeben . Siehe serverfault.com/a/900823/459872
Davide Cavestro
Nur das Einstellen des httpd-Ports 2812 ohne Zulassen funktioniert nicht mehr. monit: monit httpd nicht gestartet, da keine Verbindungen erlaubt sind
roothahn