Гид по технологиям

Установка RabbitMQ на CentOS 7

5 min read DevOps Обновлено 20 Oct 2025
Установка RabbitMQ на CentOS 7
Установка RabbitMQ на CentOS 7

Краткое содержание

  • Подготовка системы и обновление пакетов
  • Установка Erlang (зависимость RabbitMQ)
  • Установка и запуск RabbitMQ
  • Настройка брандмауэра и SELinux
  • Включение веб-консоли и создание администратора
  • Рекомендации по безопасности, проверка и устранение неисправностей

Важно: инструкция написана для root-пользователя. Если вы используете sudo-пользователя — выполните sudo -i перед началом.

Требования

  • Минимальная установка CentOS 7
  • Права root или эквивалентные (sudo)
  • Доступ в интернет для загрузки пакетов

Обновление системы

Перед установкой обновите системные пакеты и репозитории.

yum -y update

После обновления можно перейти к установке Erlang.

Установка Erlang

RabbitMQ написан на Erlang, поэтому требуется установить Erlang. В стандартном YUM-репозитории нужной версии может не быть. Установите репозиторий EPEL и обновите пакеты:

yum -y install epel-release
yum -y update

Установите Erlang и socat:

yum -y install erlang socat

Проверьте версию Erlang:

erl -version

Вы должны увидеть примерный вывод вроде:

[root@liptan-pc ~]# erl -version
Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4

Чтобы войти в оболочку Erlang:

erl

Пример изменённой оболочки:

Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V5.10.4  (abort with ^G)
1>

Выход — нажмите Ctrl+C дважды. Erlang установлен и готов для RabbitMQ.

Установка RabbitMQ

RabbitMQ доступен в виде RPM-пакета. Скачайте пакет (пример для v3.6.10):

wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm

Если wget не установлен, выполните:

yum -y install wget

Импортируйте GPG-ключ выпуска RabbitMQ:

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

Установите RPM:

rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm

После этого пакет RabbitMQ будет установлен в систему.

Запуск RabbitMQ

Запустите сервис и добавьте автозапуск при загрузке:

systemctl start rabbitmq-server
systemctl enable rabbitmq-server

Проверка статуса:

systemctl status rabbitmq-server

Пример успешного вывода:

? rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-07-15 18:59:14 UTC; 3min 22s ago
 Main PID: 29006 (beam.smp)
   Status: "Initialized"
   CGroup: /system.slice/rabbitmq-server.service
           ??29006 /usr/lib64/erlang/erts-9.0/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K tr...
           ??29149 /usr/lib64/erlang/erts-9.0/bin/epmd -daemon
           ??29283 erl_child_setup 1024
           ??29303 inet_gethost 4
           ??29304 inet_gethost 4

Jul 15 18:59:13 centos rabbitmq-server[29006]: Starting broker...
Jul 15 18:59:14 centos rabbitmq-server[29006]: systemd unit for activation check: "rabbitmq-server.service"
Jul 15 18:59:14 centos systemd[1]: Started RabbitMQ broker.
Jul 15 18:59:14 centos rabbitmq-server[29006]: completed with 0 plugins.

Настройка брандмауэра и SELinux

Если включён firewalld, откройте порты, которые использует RabbitMQ и его плагины:

firewall-cmd --zone=public --permanent --add-port=4369/tcp
firewall-cmd --zone=public --permanent --add-port=25672/tcp
firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
firewall-cmd --zone=public --permanent --add-port=15672/tcp
firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
firewall-cmd --zone=public --permanent --add-port=1883/tcp
firewall-cmd --zone=public --permanent --add-port=8883/tcp

firewall-cmd --reload

Если SELinux включён, выполните:

setsebool -P nis_enabled 1

Примечание: для продуктивной среды рассмотрите ограничение доступа к интерфейсу управления (15672) через VPN или ограниченные правила firewall.

Включение веб-консоли управления

Включите плагин управления и назначьте права владельца файлов:

rabbitmq-plugins enable rabbitmq_management
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/

Создайте административного пользователя и назначьте права:

rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

Измените admin и StrongPassword на предпочитаемые имя пользователя и надёжный пароль.

Чтобы открыть панель управления, в браузере перейдите по адресу:

http://Your_Server_IP:15672/

Вы увидите страницу входа в веб-интерфейс.

Страница входа в RabbitMQ (веб-интерфейс)

После входа откроется панель состояния и статистики.

Обзор состояния RabbitMQ в веб-интерфейсе

Список пользователей и виртуальных хостов находится во вкладке Admin. Удалите гостевого пользователя (guest) для безопасности при необходимости.

Список пользователей RabbitMQ в веб-интерфейсе

Список очередей доступен во вкладке Queues.

Список очередей RabbitMQ

Текущее подключение клиентов отображается во вкладке Connections.

Список подключений RabbitMQ

Каналы и обменники находятся в соответствующих вкладках.

Список обменников (exchanges) RabbitMQ

Рекомендации по безопасности (базовые)

  • Удалите или ограничьте пользователя guest: rabbitmqctl delete_user guest
  • Используйте отдельные учётные записи с минимальными правами
  • Включите TLS для шифрования соединений (AMQP over TLS, HTTPS для панели)
  • Ограничьте доступ к порту 15672 правилом firewalld только для доверенных IP
  • Настройте политики и лимиты на очереди, чтобы избежать исчерпания памяти и ресурсов

Критерии приёмки

  • Сервис rabbitmq-server активен и в статусе running (systemctl status)
  • Веб-консоль доступна по http://Your_Server_IP:15672/ с админ-учётной записью
  • Порты, указанные выше, открыты в firewalld (firewall-cmd –list-ports)
  • Erlang доступен: erl -version
  • В логах RabbitMQ (обычно /var/log/rabbitmq/) нет критических ошибок при старте

Чек-листы по ролям

  • DevOps / Администратор:
    • Обновление системы и установка EPEL
    • Установка Erlang и RabbitMQ
    • Настройка systemd, firewalld и SELinux
    • Настройка TLS и резервного копирования конфигурации
  • Разработчик:
    • Проверка подключения из приложения (AMQP URI)
    • Тестирование создания и удаления очередей через API
    • Ведение метрик и алёртов по состоянию очередей

Короткая методология развертывания

  1. Подготовьте сервер и выполните yum -y update.
  2. Установите EPEL и Erlang.
  3. Скачайте и установите RPM RabbitMQ.
  4. Запустите сервис и включите автозапуск.
  5. Откройте порты и настройте SELinux.
  6. Включите rabbitmq_management, создайте администратора и настройте TLS.

Частые проблемы и устранение

  • Сервис не стартует: проверьте логи в /var/log/rabbitmq/ и зависимости Erlang.
  • Порт 15672 недоступен: проверьте firewall-cmd –list-all и системные правила.
  • Ошибки плагинов: отключите сторонние плагины и перезапустите rabbitmq-server.

Когда RabbitMQ не подходит

  • Нужна сверхнизкая задержка для отдельных встраиваемых систем — возможны альтернативы.
  • Требуется очень простая очередь сообщений без сложной маршрутизации — рассмотрите Redis или lightweight очереди.
  • Для массовой распределённой потоковой передачи с высокой пропускной способностью в некоторых сценариях Kafka может подойти лучше.

Альтернативы и сравнение (кратко)

  • Apache Kafka — лучше для потоковой обработки и логов с высоким throughput.
  • Redis Streams — лёгкая альтернатива для простых очередей.
  • ActiveMQ — другая зрелая брокерская система с поддержкой JMS.

Небольшой пример теста подключения (bash)

# Проверка, что rabbitmqctl отвечает
rabbitmqctl status

Ожидается, что команда вернёт состояние узла и список плагинов.

Мини-условия при миграции с другой версии

  • Проверьте совместимость версий Erlang и RabbitMQ.
  • Сделайте резервную копию /var/lib/rabbitmq/
  • Проверьте плагины и кастомные конфигурации перед обновлением.

Пример потока принятия решения (Mermaid)

flowchart TD
  A[Начало установки] --> B{Erlang установлен?}
  B -- Да --> C[Скачать RPM RabbitMQ]
  B -- Нет --> D[Установить EPEL и Erlang]
  D --> C
  C --> E[Установить RPM]
  E --> F{Запустился сервис?}
  F -- Да --> G[Открыть порты и включить веб-консоль]
  F -- Нет --> H[Посмотреть логи и исправить ошибки]
  H --> F

Небольшой глоссарий в одну строку

  • Erlang — функциональный язык и среда выполнения, используемая RabbitMQ.
  • AMQP — протокол очередей сообщений, который реализует RabbitMQ.
  • exchange — компонент RabbitMQ, который маршрутизует сообщения в очереди.

FAQ

Как проверить версию Erlang?

Выполните erl -version или войдите в оболочку erl и проверьте заголовок.

Как включить веб-консоль RabbitMQ?

Выполните rabbitmq-plugins enable rabbitmq_management и перезапустите сервис при необходимости.

Заключение

Вы установили RabbitMQ на CentOS 7, включили веб-интерфейс и создали администратора. Следующий шаг — настроить TLS, политики очередей и мониторинг в зависимости от ваших требований. Для расширенной настройки изучите официальную документацию RabbitMQ.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Уменьшить анимации iOS 26 и ускорить iPhone
iOS

Уменьшить анимации iOS 26 и ускорить iPhone

Emergency Bypass на iPhone (iOS 17): как включить
iPhone

Emergency Bypass на iPhone (iOS 17): как включить

Ошибка WOTS отключена: как исправить в Windows
Windows

Ошибка WOTS отключена: как исправить в Windows

Как отменить Netflix на любом устройстве
How-to

Как отменить Netflix на любом устройстве

Ошибка «Something went wrong» в X — исправление
Технологии

Ошибка «Something went wrong» в X — исправление

Сохранить стандартные значки Windows при смене тем
Настройка Windows

Сохранить стандартные значки Windows при смене тем