- 1. Installez l'environnement dépendant Erlang
Certaines personnes disent de ne pas installer directement comme ceci:
yum install erlang
Parce que la version erlang n'est pas forcément nouvelle,
Je l'ai essayé, et la version du résultat est la suivante:
- 2. Installez rabbitmq
https://www.rabbitmq.com/install-rpm.html
RabbitMQ a certaines exigences pour la version Erlang (le tableau de correspondance des exigences de la version officielle ).
Erlang R16B03-1 (erts-5.10.4) ne prend pas en charge les versions 3.6 de rabbitmq.
J'ai déjà vu quelqu'un le construire: RabbitMQ 3.3.5, Erlang R16B03-1
yum list rabbitmq-server
Voir aussi la version 3.3.5
Effectuez l'installation directement:
yum install rabbitmq-server.noarch
Trouvez le répertoire d'installation
# which rabbitmq-server
/usr/sbin/rabbitmq-server
ls /usr/sbin/rabbitmq*
rabbitmqctl rabbitmq-plugins rabbitmq-server
Opération de service / référence de configuration: https://www.rabbitmq.com/install-rpm.html#running-rpm
#将服务器作为守护程序启动,在系统引导时默认启动守护程序,以管理员身份运行
chkconfig rabbitmq-server on
#启动
/sbin/service rabbitmq-server start
#停止
/sbin/service rabbitmq-server stop
Une erreur a été signalée au démarrage:
# systemctl status rabbitmq-server.service -l
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sun 2021-02-28 17:02:05 CST; 45s ago
Process: 17283 ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server (code=exited, status=1/FAILURE)
Main PID: 17283 (code=exited, status=1/FAILURE)
Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 systemd[1]: Starting RabbitMQ broker...
Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 rabbitmq-server[17283]: ERROR: node with name "rabbit" already running on "hecs-x-medium-2-linux-20210131110450"
Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 systemd[1]: rabbitmq-server.service: main process exited, code=exited, status=1/FAILURE
Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 systemd[1]: Failed to start RabbitMQ broker.
Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 systemd[1]: Unit rabbitmq-server.service entered failed state.
Feb 28 17:02:05 hecs-x-medium-2-linux-20210131110450 systemd[1]: rabbitmq-server.service failed.
Trouvez le processus pertinent et terminez-le:
ps -ef|grep rabbitmq
kill -9 进程id
#启动
/sbin/service rabbitmq-server start
Vérifiez la situation du plug-in:
# rabbitmq-plugins list
[ ] amqp_client 3.3.5
[ ] cowboy 0.5.0-rmq3.3.5-git4b93c2d
[ ] eldap 3.3.5-gite309de4
[ ] mochiweb 2.7.0-rmq3.3.5-git680dba8
[ ] rabbitmq_amqp1_0 3.3.5
[ ] rabbitmq_auth_backend_ldap 3.3.5
[ ] rabbitmq_auth_mechanism_ssl 3.3.5
[ ] rabbitmq_consistent_hash_exchange 3.3.5
[ ] rabbitmq_federation 3.3.5
[ ] rabbitmq_federation_management 3.3.5
[ ] rabbitmq_management 3.3.5
[ ] rabbitmq_management_agent 3.3.5
[ ] rabbitmq_management_visualiser 3.3.5
[ ] rabbitmq_mqtt 3.3.5
[ ] rabbitmq_shovel 3.3.5
[ ] rabbitmq_shovel_management 3.3.5
[ ] rabbitmq_stomp 3.3.5
[ ] rabbitmq_test 3.3.5
[ ] rabbitmq_tracing 3.3.5
[ ] rabbitmq_web_dispatch 3.3.5
[ ] rabbitmq_web_stomp 3.3.5
[ ] rabbitmq_web_stomp_examples 3.3.5
[ ] sockjs 0.3.4-rmq3.3.5-git3132eb9
[ ] webmachine 1.10.3-rmq3.3.5-gite9359c7
Ouvrez le plugin Web:
# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.
# rabbitmq-plugins list
[e] amqp_client 3.3.5
[ ] cowboy 0.5.0-rmq3.3.5-git4b93c2d
[ ] eldap 3.3.5-gite309de4
[e] mochiweb 2.7.0-rmq3.3.5-git680dba8
[ ] rabbitmq_amqp1_0 3.3.5
[ ] rabbitmq_auth_backend_ldap 3.3.5
[ ] rabbitmq_auth_mechanism_ssl 3.3.5
[ ] rabbitmq_consistent_hash_exchange 3.3.5
[ ] rabbitmq_federation 3.3.5
[ ] rabbitmq_federation_management 3.3.5
[E] rabbitmq_management 3.3.5
[e] rabbitmq_management_agent 3.3.5
[ ] rabbitmq_management_visualiser 3.3.5
[ ] rabbitmq_mqtt 3.3.5
[ ] rabbitmq_shovel 3.3.5
[ ] rabbitmq_shovel_management 3.3.5
[ ] rabbitmq_stomp 3.3.5
[ ] rabbitmq_test 3.3.5
[ ] rabbitmq_tracing 3.3.5
[e] rabbitmq_web_dispatch 3.3.5
[ ] rabbitmq_web_stomp 3.3.5
[ ] rabbitmq_web_stomp_examples 3.3.5
[ ] sockjs 0.3.4-rmq3.3.5-git3132eb9
[e] webmachine 1.10.3-rmq3.3.5-gite9359c7
Vérifiez si le port est normal:
# netstat -an|grep 5672
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN
tcp6 0 0 :::5672 :::* LISTEN
On constate que le port 15672 n’est pas démarré et que le terminal de gestion Web n’est pas accessible.
/sbin/service rabbitmq-server restart
Le nœud RabbitMQ est lié à un port (socket TCP serveur ouvert) afin d'accepter les connexions des clients et des outils CLI. D'autres processus et outils, tels que SELinux, peuvent empêcher RabbitMQ de se lier au port. Lorsque cela se produit, le nœud ne démarre pas.
Les outils CLI, les bibliothèques clientes et les nœuds RabbitMQ peuvent également ouvrir des connexions (sockets TCP client). Le pare-feu peut empêcher les nœuds et les outils CLI de communiquer entre eux. Assurez-vous que vous pouvez accéder aux ports suivants:
- 4369: epmd , un service de découverte peer-to-peer utilisé par les nœuds RabbitMQ et les outils CLI
- 5672, 5671: Utilisé par les clients AMQP 0-9-1 et 1.0 sans TLS et avec TLS
- 25672: Utilisé pour la communication entre nœuds et outil CLI (port du serveur de distribution Erlang), et alloué à partir de la plage dynamique (limité à un seul port par défaut, calculé comme port AMQP + 20000). À moins que des connexions externes sur ces ports ne soient vraiment requises (par exemple, le cluster utilise l' authentification fédérée ou des outils CLI sont utilisés sur des ordinateurs en dehors du sous-réseau), ces ports ne doivent pas être exposés. Pour plus de détails, consultez le Guide réseau .
- 35672-35682: Utilisé par l'outil CLI (port du client de distribution Erlang) pour communiquer avec le nœud, et est alloué à partir de la plage dynamique (calculée par le port de distribution du serveur + 10010 comme port de distribution du serveur + 10000). Pour plus de détails, consultez le Guide réseau .
- 15672: client API HTTP , interface utilisateur de gestion et Rabbitmqadmin (uniquement lorsque le plugin de gestion est activé )
- 61613, 61614: client STOMP sans TLS et avec TLS (uniquement lorsque le plug- in STOMP est activé )
- 1883, 8883: clients MQTT qui n'activent pas et n'activent pas TLS (si le plug-in MQTT est activé )
- 15674: client STOMP-over-WebSockets (uniquement lorsque le plug- in Web STOMP est activé )
- 15675: client MQTT-over-WebSockets (uniquement lorsque le plug- in Web MQTT est activé )
- 15692: métriques Prometheus (uniquement lorsque le plugin Prometheus est activé )
RabbitMQ peut être configuré pour utiliser différents ports et interfaces réseau spécifiques .
Voir tous les utilisateurs
rabbitmqctl list_users
默认账号密码:guest guest(这个账号只允许本机访问)
Ajouter un utilisateur
rabbitmqctl add_user fuckrabbit 123456
Configurer les autorisations
rabbitmqctl set_permissions -p "/" fuckrabbit ".*" ".*" ".*"
Afficher les autorisations des utilisateurs
rabbitmqctl list_user_permissions fuckrabbit
Définir une balise
# 赋予用户管理员角色
rabbitmqctl set_user_tags fuckrabbit administrator
或者普通管理:
rabbitmqctl set_user_tags fuckrabbit management
Supprimer l'utilisateur (pour plus de sécurité, supprimez l'utilisateur par défaut)
rabbitmqctl delete_user guest
changer le mot de passe:
rabbimqctl change_password username newpassword
Groupe de sécurité du fournisseur de services et ports ouverts du pare-feu du serveur: 5672, 15672
# firewall-cmd --zone=public --add-port=5672/tcp --add-port=15672/tcp --permanent
# firewall-cmd --reload
success
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 81/tcp 889/tcp 5672/tcp 15672/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Accès Web: http: // IP du serveur: 15672 /
Entrez le nouveau compte pour vous connecter avec succès:
Extrait: Lorsque nous créons un utilisateur, nous préciserons que l'utilisateur peut accéder à une machine virtuelle, et que l'utilisateur ne peut accéder qu'aux files d'attente et aux commutateurs sous la machine virtuelle, s'il n'est pas spécifié, la valeur par défaut est "/"; il peut fonctionner sur un serveur rabbitmq Plusieurs hôtes virtuels sont adaptés à différents besoins métier, ce qui permet non seulement de répondre aux exigences de configuration des autorisations, mais également d'éviter le problème des conflits de noms entre les files d'attente et les commutateurs entre les différents services, car différents hôtes virtuels sont isolés.
Lien d'origine: https://blog.csdn.net/leisure_life/article/details/78707338
Ajouter / supprimer une machine virtuelle
#添加
rabbitmqctl add_vhost /aaaaa
#给用户分配虚拟机
rabbitmqctl set_permissions -p /aaaaa fuckrabbit ".*" ".*" ".*"
#删除虚拟机
rabbitmqctl delete_vhost /aaaaa
#查看虚拟机列表
rabbitmqctl list_vhosts
Ajouter un interrupteur:
rabbitmqctl eval 'rabbit_exchange:declare({resource, <<"/aaaaa">>, exchange, <<"to_server">>}, fanout, true, false, false, []).'
rabbitmqctl eval 'rabbit_exchange:declare({resource, <<"/aaaaa">>, exchange, <<"from_server">>}, fanout, true, false, false, []).'
#查看
rabbitmqctl list_exchanges
- référence:
Centos7 installe la dernière configuration et la dernière RabbitMQ
Installez RabbitMQ sur CentOS7
Nécessite: erlang> = 20.3 Disponible: erlang-R16B-03.18.el7.x86_64
启动 rabbitmq , 提示 ERREUR: le nœud avec le nom "rabbit" tourne déjà sur "U57 ..."
Gestion de l'hôte et des utilisateurs de Rabbitmq