Установка 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/
Вы увидите страницу входа в веб-интерфейс.
После входа откроется панель состояния и статистики.
Список пользователей и виртуальных хостов находится во вкладке Admin. Удалите гостевого пользователя (guest) для безопасности при необходимости.
Список очередей доступен во вкладке Queues.
Текущее подключение клиентов отображается во вкладке Connections.
Каналы и обменники находятся в соответствующих вкладках.
Рекомендации по безопасности (базовые)
- Удалите или ограничьте пользователя 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
- Ведение метрик и алёртов по состоянию очередей
Короткая методология развертывания
- Подготовьте сервер и выполните yum -y update.
- Установите EPEL и Erlang.
- Скачайте и установите RPM RabbitMQ.
- Запустите сервис и включите автозапуск.
- Откройте порты и настройте SELinux.
- Включите 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.
Похожие материалы

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

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

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

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

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