Установка RabbitMq на centos 7


Для начала стоит обновить систему, выполняем код

yum -y update

Установить Erlang

  • Если не установлены репозитории epel или remi, то ставим их

    wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    sudo rpm -Uvh epel-release-latest-7*.rpm
    wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
      sudo rpm -Uvh remi-release-7*.rpm
  • Устанавливаем сам Erlang

    yum install -y erlang

Установить RabbitMQ

  • Скачиваем актуальный репозиторий, подсмотреть нужный можно здесь rabbitmq.com

    cd /tmp
    wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.11/rabbitmq-server-3.6.11-1.el7.noarch.rpm
  • Получаем кей и устанавливаем сервер

    rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
    yum -y install rabbitmq-server-3.6.11-1.el7.noarch.rpm
  • Чтобы получить доступ к консоли удаленного управления RabbitMQ, вам необходимо разрешить входящий TCP-трафик на портах 4369, 5671, 5672, 25672, 15672, 15675, 61613, 61614, 1883, 15674.

    • при наличии firewall

      firewall-cmd --zone=public --permanent --add-port=4369/tcp --add-port=5671-5672/tcp --add-port=25672/tcp --add-port=15672-15675/tcp  --add-port=61613-61614/tcp --add-port=1883/tcp --add-port=15674/tcp
      firewall-cmd --reload
    • при наличии iptables

      iptables -I INPUT 1 -p tcp --dport 4369 -j ACCEPT
      iptables -I INPUT 1 -p tcp --dport 5671 -j ACCEPT
      iptables -I INPUT 1 -p tcp --dport 5672 -j ACCEPT
      iptables -I INPUT 1 -p tcp --dport 15675 -j ACCEPT
      iptables -I INPUT 1 -p tcp --dport 25672 -j ACCEPT
      iptables -I INPUT 1 -p tcp --dport 15672 -j ACCEPT
      iptables -I INPUT 1 -p tcp --dport 61613 -j ACCEPT
      iptables -I INPUT 1 -p tcp --dport 61614 -j ACCEPT
      iptables -I INPUT 1 -p tcp --dport 1883 -j ACCEPT
      iptables -I INPUT 1 -p tcp --dport 15674 -j ACCEPT
      service iptables save
      service iptables restart
  • Меняем ограничение на количество открытых файлов

    Открываем файл /etc/systemd/system/rabbitmq-server.service.d/limits.conf и выставлем содержимое, что бы получилось вот так

    [Service]
    LimitNOFILE=infinity
    Если указанного файла нет, то создаем его.

    выполняем команду

    systemctl --system daemon-reload
  • Помечаем rabbitmq для автоматического запуска при перезагрузках

    chkconfig rabbitmq-server on
  • Запускаем сервер

    service rabbitmq-server start
  • Ставим стандартные плагины

    rabbitmq-plugins enable rabbitmq_management
    chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
  • Если все сделано верно, то вы получите доступ к админ панели http://ip-address:15672/

    По умолчанию создается сразу юзер guest с одноименным паролем. У него админский доступ по localhost. Рекомендую создать собственного пользователя, а guest удалить.

Управление

  • Управление службой

    # Старт
    service rabbitmq-server start
    # Стоп:
    service rabbitmq-server stop
    # Перезагрузка:
    service rabbitmq-server restart
    # Статус:
    service rabbitmq-server status
  • Управление сервером

    rabbitmqctl start # Старт
    rabbitmqctl stop # Стоп
    // или
    rabbitmqctl start_app # Старт
    rabbitmqctl stop_app # Стоп
  • Управление юзерами

    # Добавить юзера
    rabbitmqctl add_user cinder CINDER_PASS
    # Изменить пароль юзеру
    rabbitmqctl change_password cinder NEW_PASS
    # Сделать юзера админом
    rabbitmqctl set_user_tags cinder administrator
    # Выставить привелегии юзеру
    rabbitmqctl set_permissions cinder ".*" ".*" ".*"
    # Просмотреть список привелегий
    rabbitmqctl list_permissions