Quels ports RabbitMQ Server utilise-t-il ou a-t-il besoin d'ouvrir sur le pare-feu pour un cluster de nœuds?
Mon /usr/lib/rabbitmq/bin/rabbitmq-env
est défini en dessous duquel je suppose qu'il est nécessaire (35197).
SERVER_ERL_ARGS="+K true +A30 +P 1048576 \
-kernel inet_default_connect_options [{nodelay,true}] \
-kernel inet_dist_listen_min 35197 \
-kernel inet_dist_listen_max 35197"
Je n'ai pas touché le rabbitmq.config
pour définir un tcp_listener
personnalisé. Il doit donc être en écoute sur le 5672 par défaut.
Voici les lignes pertinentes de netstat:
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 728/epmd
tcp 0 0 0.0.0.0:35197 0.0.0.0:* LISTEN 5126/beam
tcp6 0 0 :::5672 :::* LISTEN 5126/beam
Mes questions sont:
pour que les autres nœuds puissent se connecter au cluster, les 3 ports 4369, 5672 et 35197 doivent-ils tous être ouverts?
Pourquoi 5672 ne fonctionne-t-il pas sur tcp et pas seulement tcp6?
PORT 4369: Erlang utilise un démon de mappeur de port (epmd) pour la résolution des noms de nœud dans un cluster. Les nœuds doivent pouvoir se joindre et le démon de mappeur de port pour que la mise en cluster fonctionne.
PORT 35197 défini par inet_dist_listen_min/max Les pare-feu doivent autoriser le trafic dans cette plage à passer entre les nœuds en cluster.
Console RabbitMQ Management:
PORT 5672
Port principal de RabbitMQ.
Pour un groupe de nœuds, ils doivent être ouverts les uns aux autres sur 35197
, 4369
et 5672
.
Pour tous les serveurs souhaitant utiliser la file d'attente de messages, seul 5672
est requis.
Par défaut: 5672, le manuel a la réponse. C'est défini dans la variable RABBITMQ_NODE_PORT
.
https://www.rabbitmq.com/configure.html#define-environment-variables
Le nombre pourrait être différent si changé par quelqu'un dans le fichier de configuration de rabbitmq:
vi /etc/rabbitmq/rabbitmq-env.conf
Demandez à l'ordinateur de vous dire:
Sudo nmap -p 1-65535 localhost
Starting Nmap 5.51 ( http://nmap.org ) at 2014-09-19 13:50 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00041s latency).
PORT STATE SERVICE
443/tcp open https
5672/tcp open amqp
15672/tcp open unknown
35102/tcp open unknown
59440/tcp open unknown
Oh regarde, 5672 et 15672
Utilisez netstat:
netstat -lntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:55672 0.0.0.0:* LISTEN
tcp 0 0 :::5672 :::* LISTEN
Oh regarde 5672.
utilise lsof:
eric@dev ~$ Sudo lsof -i | grep beam
beam.smp 21216 rabbitmq 17u IPv4 33148214 0t0 TCP *:55672 (LISTEN)
beam.smp 21216 rabbitmq 18u IPv4 33148219 0t0 TCP *:15672 (LISTEN)
utilise nmap depuis une autre machine, découvrez si 5672 est ouvert:
Sudo nmap -p 5672 10.0.1.71
Starting Nmap 5.51 ( http://nmap.org ) at 2014-09-19 13:19 EDT
Nmap scan report for 10.0.1.71
Host is up (0.00011s latency).
PORT STATE SERVICE
5672/tcp open amqp
MAC Address: 0A:40:0E:8C:75:6C (Unknown)
Nmap done: 1 IP address (1 Host up) scanned in 0.13 seconds
Essayez de vous connecter manuellement à un port avec telnet, 5671 est FERMÉ:
telnet localhost 5671
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Essayez de vous connecter manuellement à un port avec telnet, 5672 est OUVERT:
telnet localhost 5672
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Vérifiez votre pare-feu:
Sudo cat /etc/sysconfig/iptables
Il devrait vous dire quels ports sont ouverts:
-A INPUT -p tcp -m tcp --dport 5672 -j ACCEPT
Réappliquez votre pare-feu:
Sudo service iptables restart
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
Pour connaître les ports utilisés par rabbitmq :
$ epmd -names
Sorties:
epmd: up and running on port 4369 with data:
name rabbit at port 25672
Exécutez-les en tant que root:
lsof -i :4369
lsof -i :25672
Accès au port
Les pare-feu et autres outils de sécurité peuvent empêcher RabbitMQ de se lier à un port. Dans ce cas, RabbitMQ ne pourra pas démarrer. Assurez-vous que les ports suivants peuvent être ouverts:
4369: epmd, un service de découverte entre homologues utilisé par les nœuds RabbitMQ et les outils CLI
5672, 5671: utilisés par les clients AMQP 0-9-1 et 1.0 sans et avec TLS
25672: utilisé par la distribution Erlang pour la communication entre les noeuds et les outils CLI et est alloué à partir d'une plage dynamique (limitée à un seul port par défaut, calculée comme port AMQP + 20000). Voir le guide de réseautage pour plus de détails.
15672: Clients API HTTP et rabbitmqadmin (uniquement si le plug-in de gestion est activé)
61613, 61614: Clients STOMP sans et avec TLS (uniquement si le plug-in STOMP est activé)
1883, 8883: (Clients MQTT sans et avec TLS, si le plug-in MQTT est activé
15674: Clients STOMP sur WebSockets (uniquement si le plug-in Web STOMP est activé)
15675: clients MQTT sur WebSockets (uniquement si le plug-in Web MQTT est activé)
Référence doc: https://www.rabbitmq.com/install-windows-manual.html