1. Устанавливаем ключи для использования программного обеспечения из репозитариев Erlang и RabbitMQ
# rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc'
# rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key'
# rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key'
# rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc'
# rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key'
# rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key'
2. Создаем репозитарий rabbitmq
# nano /etc/yum.repos.d/rabbitmq.repo
Содержимое файла:
##
## Zero dependency Erlang RPM
##
[modern-erlang]
name=modern-erlang-el9
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/$basearch
https://yum2.rabbitmq.com/erlang/el/9/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[modern-erlang-noarch]
name=modern-erlang-el9-noarch
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/noarch
https://yum2.rabbitmq.com/erlang/el/9/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[modern-erlang-source]
name=modern-erlang-el9-source
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/SRPMS
https://yum2.rabbitmq.com/erlang/el/9/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
##
## RabbitMQ Server
##
[rabbitmq-el9]
name=rabbitmq-el9
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/$basearch
https://yum1.rabbitmq.com/rabbitmq/el/9/$basearch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[rabbitmq-el9-noarch]
name=rabbitmq-el9-noarch
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[rabbitmq-el9-source]
name=rabbitmq-el9-source
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/SRPMS
https://yum1.rabbitmq.com/rabbitmq/el/9/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
gpgcheck=0
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
# nano /etc/yum.repos.d/rabbitmq.repo
Содержимое файла:
##
## Zero dependency Erlang RPM
##
[modern-erlang]
name=modern-erlang-el9
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/$basearch
https://yum2.rabbitmq.com/erlang/el/9/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[modern-erlang-noarch]
name=modern-erlang-el9-noarch
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/noarch
https://yum2.rabbitmq.com/erlang/el/9/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[modern-erlang-source]
name=modern-erlang-el9-source
# Use a set of mirrors maintained by the RabbitMQ core team.
# The mirrors have significantly higher bandwidth quotas.
baseurl=https://yum1.rabbitmq.com/erlang/el/9/SRPMS
https://yum2.rabbitmq.com/erlang/el/9/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
##
## RabbitMQ Server
##
[rabbitmq-el9]
name=rabbitmq-el9
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/$basearch
https://yum1.rabbitmq.com/rabbitmq/el/9/$basearch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[rabbitmq-el9-noarch]
name=rabbitmq-el9-noarch
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
repo_gpgcheck=1
enabled=1
# Cloudsmith's repository key and RabbitMQ package signing key
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
[rabbitmq-el9-source]
name=rabbitmq-el9-source
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/SRPMS
https://yum1.rabbitmq.com/rabbitmq/el/9/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
gpgcheck=0
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md
3. Проводим обновление системы:
# dnf update -y
# dnf update -y
4. Устанавливаем (если его еще нет) пакет logrotate, который необходим для работы RabbitMQ
# dnf install -y logrotate
# dnf install -y logrotate
5. Теперь устанавливаем RabbitMQ
# dnf install -y erlang rabbitmq-server
# dnf install -y erlang rabbitmq-server
6. Стартуем сервис RabbitMQ:
# systemctl start rabbitmq-server
# systemctl enable rabbitmq-server
# systemctl status rabbitmq-server
# systemctl start rabbitmq-server
# systemctl enable rabbitmq-server
# systemctl status rabbitmq-server
7. Включаем web-интерфейс RabbitMQ:
# rabbitmq-plugins enable rabbitmq_management
# rabbitmq-plugins enable rabbitmq_management
8. Проводим открытие портов в файрволл для возможности обращаться к RabbitMQ по сети и просматривать статистику через web-интерфейс:
# firewall-cmd --permanent --add-port={4369/tcp,5672/tcp,25672/tcp,15672/tcp}
# firewall-cmd --reload
# firewall-cmd --permanent --add-port={4369/tcp,5672/tcp,25672/tcp,15672/tcp}
# firewall-cmd --reload
9. Пользователи. При установке и запуске сервера RabbitMQ автоматически создается пользователь guest с паролем guest который может подключаться к виртуальному хосту "/" брокера RabbitMQ только локально. Для работы в продакшен создаём пользователя myuser с паролем pass123, делаем этого пользователя администратором:
# rabbitmqctl add_user myuser pass123
# rabbitmqctl set_user_tags smarts administrator
# rabbitmqctl set_permissions -p / smarts ".*" ".*" ".*"
# rabbitmqctl delete_user guest
# rabbitmqctl add_user myuser pass123
# rabbitmqctl set_user_tags smarts administrator
# rabbitmqctl set_permissions -p / smarts ".*" ".*" ".*"
# rabbitmqctl delete_user guest
10. Проверяем доступ к web-интерфейсу RabbitMQ:
http://IPадрес:15672
При авторизации необходимо задать имя пользователя и пароль, определенные ранее.
После авторизации панель управления RabbitMQ будет выглядеть так:
11. Основные команды rabbitmq:
# rabbitmqctl status // Проверить статус
# rabbitmqctl list_users // Список пользователей
# systemctl stop rabbitmq-server // Остановка сервиса
# systemctl start rabbitmq-server // Запуск зерсиса
# rabbitmqadmin delete queue name=emails // Удаление очереди emails
# rabbitmq-diagnostics environment // Вывод переменныхконфигурации
12. Для корректной работы RabbitMQ необходимо увеличить максимальное количество открытых файлов для пользователя rabbitmq до 65536
Для этого выполняем следующее:
12.1 Увеличиваем лимит для пользователя операционной системы:
# nano /etc/security/limits.conf
Добавить перед строкой "# End of file" строки:
rabbitmq soft nofile 65536
rabbitmq hard nofile 65536
12.2 Отредактировать сервис systemd:
# systemctl edit rabbitmq-server
Добавить сверху блок:
[Service]
LimitNOFILE=65536
Затем перезапустить сервис:
# systemctl daemon-reexec
# systemctl daemon-reload
# systemctl restart rabbitmq-server
12.3 Проверка лимитов:
# sudo -u rabbitmq bash -c 'ulimit -n'
65536
# cat /proc/$(pgrep beam.smp)/limits | grep 'Max open files'
Max open files 65536 65536 files
http://IPадрес:15672
При авторизации необходимо задать имя пользователя и пароль, определенные ранее.
После авторизации панель управления RabbitMQ будет выглядеть так:
11. Основные команды rabbitmq:
# rabbitmqctl status // Проверить статус
# rabbitmqctl list_users // Список пользователей
# systemctl stop rabbitmq-server // Остановка сервиса
# systemctl start rabbitmq-server // Запуск зерсиса
# rabbitmqadmin delete queue name=emails // Удаление очереди emails
# rabbitmq-diagnostics environment // Вывод переменныхконфигурации
12. Для корректной работы RabbitMQ необходимо увеличить максимальное количество открытых файлов для пользователя rabbitmq до 65536
Для этого выполняем следующее:
12.1 Увеличиваем лимит для пользователя операционной системы:
# nano /etc/security/limits.conf
Добавить перед строкой "# End of file" строки:
rabbitmq soft nofile 65536
rabbitmq hard nofile 65536
12.2 Отредактировать сервис systemd:
# systemctl edit rabbitmq-server
Добавить сверху блок:
[Service]
LimitNOFILE=65536
Затем перезапустить сервис:
# systemctl daemon-reexec
# systemctl daemon-reload
# systemctl restart rabbitmq-server
12.3 Проверка лимитов:
# sudo -u rabbitmq bash -c 'ulimit -n'
65536
# cat /proc/$(pgrep beam.smp)/limits | grep 'Max open files'
Max open files 65536 65536 files
Комментариев нет:
Отправить комментарий