CentOS上安裝配置RabbitMQ Server

1. 安裝Erlang

因爲rabbitmq是基於erlang語言開發的,因此必須先安裝erlang。html

curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
yum -y install erlang

  

  

2. 安裝RabbitMQ Server

curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
yum -y install rabbitmq-server

 

3. 更改系統限制

有兩個限制:操做系統內核容許的最大打開文件數(fs.file-max)和每一個用戶的限制(ulimit -n)。前者必須高於後者。node

咱們建議在生產環境中爲用戶Rabbitmq至少容許65536個文件描述符git

查看內核容許的最大文件數github

sysctl -n fs.file-max

  不夠則修改/etc/sysctl.conf,而後運行sysvtl -pweb

 

修改rabbitmq進程容許的最大文件數,systemd編輯bash

/usr/lib/systemd/system/rabbitmq-server.service中的LimitNOFILE參數
[root@node2 ~]# cat /usr/lib/systemd/system/rabbitmq-server.service |grep LimitNOFILE
# To override LimitNOFILE, create the following file:
# LimitNOFILE=65536
LimitNOFILE=65536

 若是是舊版的系統,沒有systemd的。能夠修改服務器

cat /etc/security/limits.conf
.......
* soft nofile 65535
* hard nofile 65535

  

重啓服務後驗證限制網絡

[root@node2 ~]# lsof -i:15672
COMMAND     PID     USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
beam.smp 129344 rabbitmq   96u  IPv4 103591373      0t0  TCP *:15672 (LISTEN)
[root@node2 ~]# cat /proc/129344/limits |grep "Max open files"
Max open files            65536                65536                files   

  

4. 啓動和關閉 

systemctl start rabbitmq-server
systemctl stop rabbitmq-server

  

5. 日誌目錄

/var/log/rabbitmq/rabbitcurl

日誌每週輪詢一次,配置文件在: /etc/logrotate.d/rabbitmq-serveide

 

6. 開啓WEB UI

rabbitmq-plugins enable rabbitmq_management

默認帳號密碼:guest guest(這個帳號只容許本機訪問)

 

7. 建立用戶

6.1 建立一個用戶,具備管理員權限

rabbitmqctl add_user admin  password
rabbitmqctl set_user_tags admin  administrator

6.2 建立一個用戶和虛擬主機,並容許該用戶訪問該虛擬主機

rabbitmqctl add_user celery celery
rabbitmqctl add_vhost celery_vhos
rabbitmqctl set_user_tags celery  celery_tag
rabbitmqctl set_permissions -p celery_vhost celery  ".*" ".*" ".*"

 

8. 默認端口

  • 4369:epmd,RabbitMQ節點和CLI工具使用的對等發現服務
  • 567二、5671:由不帶TLS和帶TLS的AMQP 0-9-1和1.0客戶端使用
  • 25672:用於節點間和CLI工具通訊(Erlang分發服務器端口),並從動態範圍分配(默認狀況下限制爲單個端口,計算爲AMQP端口+ 20000)。除非確實須要這些端口上的外部鏈接(例如,羣集使用聯合身份驗證或在子網外部的計算機上使用CLI工具),不然這些端口不該公開。有關詳細信息,請參見網絡指南
  • 35672-35682:由CLI工具(Erlang分發客戶端端口)用於與節點進行通訊,並從動態範圍(計算爲服務器分發端口+ 10000經過服務器分發端口+ 10010)分配。有關詳細信息,請參見網絡指南
  • 15672:HTTP API客戶端,管理UIRabbitmqadmin (僅在啓用管理插件的狀況下)
  • 6161三、61614:不帶TLS和帶TLS的STOMP客戶端(僅在啓用STOMP插件的狀況下)
  • 188三、8883 :(若是啓用MQTT插件,則不帶TLS和具備TLS的MQTT客戶端
  • 15674:STOMP-over-WebSockets客戶端(僅在啓用Web STOMP插件的狀況下)
  • 15675:MQTT-over-WebSockets客戶端(僅在啓用Web MQTT插件的狀況下)
  • 15692:Prometheus指標(僅在啓用Prometheus插件的狀況下)

 

參考文檔:

https://www.rabbitmq.com/install-rpm.html

https://www.rabbitmq.com/production-checklist.html

相關文章
相關標籤/搜索