Домены
Интересные статьи
Домены

Как установить RabbitMQ в CentOS 7

RabbitMQ это широко используемый брокер сообщений с открытым исходным кодом, написан на языке программирования Erlang. Как message-oriented приложение, RabbitMQ может быть использован для работы с протоколом Advanced Message Queuing Protocol (AMQP) во всех современных операционных системах.

В этой статье я опишу как установить RabbitMQ в CentOS 7.

Исходные данные

  • Сервер с CentOS 7
  • Root доступ к серверу
  • IP адрес сервера 192.168.1.155

Подключение репозитория EPEL

Выполните команду ниже, чтобы установить пакет epel-release и подключить репозиторий EPEL

yum install epel-release

Установка Erlang

Т.к. RabbitMQ написан на Erlang, нужно установить сам Erlang, чтобы вы могли использовать RabbitMQ.

Загрузим пакет, с помощью которого подключим репозиторий:

yum install http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

Теперь установим Erlang

yum install erlang

Проверим, что Erlang установился, выполните команду ниже

erl

В результате вы увидите сообщение о версии Erlang, чтобы выйти из консоли Erlang, используйте Ctrl+C

Установка RabbitMQ

Теперь установим RabbitMQ, он доступен в репозитории EPEL:

yum install rabbitmq-server

После установки, запустим RabbitMQ и добавим его в автозагрузку:

systemctl start rabbitmq-server
systemctl enable rabbitmq-server

Проверим, что RabbitMQ запустился, это можно сделать с помощью команды:

rabbitmqctl status

Теперь добавим исключения в правила межсетевого экрана (по умолчанию в CentOS 7 — firewalld).

Для нормального функционирования требуется только порт TCP 5672, но также рекомендую открыть порты 4369/tcp, 5671/tcp, 35672-35682/tcp (подробнее о предназначении этих (и других) портов будет описано ниже).

firewall-cmd --permanent --add-port=5671/tcp --add-port=5672/tcp --add-port=4369/tcp --add-port=35672-35682/tcp
firewall-cmd --reload

Отлично, RabbitMQ установили, а как управлять? Для этого нужно создать администратора, а также включить интерфейс управления.

Сначала подключим интерфейс управления, он доступен в качестве плагина, его можно активировать следующей командой:

rabbitmq-plugins enable rabbitmq_management

После этого интерфейс будет запущен на порту 15672/tcp, откроем его в межсетевом экране:

firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --reload

Создадим администратора, присвоим ему роль и права.

К примеру создадим администратора с именем «admin» и паролем «adminpass«

rabbitmqctl add_user admin adminpass

Присвоим ему роль администратора:

rabbitmqctl set_user_tags admin administrator

И дадим доступ ко всему, внутри RabbitMQ:

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

Теперь вы можете зайти в браузере на порт 15672 вашего сервера, авторизоваться и увидеть интерфейс управления.

В моем случае интерфейс доступен по адресу: http://192.168.1.55:15672

Подробнее о портах и их предназначении

  • 4369: порт epmd, используется для коммуникации между несколькими серверами RabbitMQ, а также при использовании консольных утилит
  • 5672, 5671: используется клиентами для версий протокола AMQP 0-9-1 и 1.0 соответственно, без/с TLS
  • 25672: используется для внутренней коммуникации, а также консольными утилитами. Задается динамически (к рабочему порту добавляется 20000). НЕ должен быть открыт наружу.
  • 35672-35682: используется консольными утилитами, для связи с нодами. Задается динамически (к порту внутренней коммуникации (25672) добавляется + 10000, а также дополнительно открывается порт +10010)
  • 15672: порт клиентов HTTP API, интерфейса управления (если плагин интерфейса управления подключен)
  • 61613, 61614: порт клиентов STOMP без/с TLS (если плагин STOMP подключен)
  • 1883, 8883: порт клиентов MQTT без/с TLS (если плагин MQTT подключен)
  • 15674: порт клиентов STOMP-over-WebSockets (если плагин Web STOMP подключен)
  • 15675: порт клиентов MQTT-over-WebSockets(если плагин Web MQTT подключен)
  • 15692: порт метрик Prometheus (если плагин Prometheus подключен)

Вот и всё 🙂

Обо мне cyber01

Прочитайте также

Как установить Python 3.6 в CentOS 6

В CentOS 6 по умолчанию используется Python 2, но бывает даже для такой старой системы …

Как установить Fail2ban в CentOS 8 и Fedora 29/30

Эта инструкция покажет вам, как установить и настроить fail2ban в вашей CentOS/RHEL 8 и Fedora …

Как установить последний NodeJS в Amazon Linux 7/Centos 7

NodeJS (Node.js) это один из вариантов Chrome V8 Javascript runtime engine. Он позволяет программистам выполнять …

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *