Centos7 installe RabbitMQ et configuration

  • 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

erreur de démarrage rabbitmq

启动 rabbitmq , 提示 ERREUR: le nœud avec le nom "rabbit" tourne déjà sur "U57 ..."

Gestion de l'hôte et des utilisateurs de Rabbitmq

commandes de gestion rabbitmq

 

Je suppose que tu aimes

Origine blog.csdn.net/yyws2039725/article/details/114217155
conseillé
Classement