CentOs7.3 搭建 RabbitMQ 3.6 單機服務與使用

CentOs7.3 搭建 RabbitMQ 3.6 單機服務與使用

RabbitMQ簡介

RabbitMQ是一個開源的AMQP實現,服務器端用Erlang語言編寫,支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用於在分佈式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。html

AMQP,即Advanced message Queuing Protocol,高級消息隊列協議,是應用層協議的一個開放標準,爲面向消息的中間件設計。消息中間件主要用於組件之間的解耦,消息的發送者無需知道消息使用者的存在,反之亦然。node

AMQP的主要特徵是面向消息、隊列、路由(包括點對點和發佈/訂閱)、可靠性、安全。segmentfault

環境

  • VMware版本號:12.0.0
  • CentOS版本:CentOS 7.3.1611

注意事項

關閉防火牆centos

centos 6.x 關閉 iptables安全

$ service iptables stop # 關閉命令:

centos 7.x 關閉firewall服務器

$ systemctl stop firewalld.service # 中止firewall

不想關閉防火牆,就開放15672端口,設置以後能夠經過網頁方式管理MQcookie

安裝安裝iptables防火牆網絡

yum install iptables-services

編輯配置app

$ vi /etc/sysconfig/iptables-config

添加配置less

iptables -I INPUT -p tcp --dport 5672 -j ACCEPT
iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

保存配置

$ service iptables save

重啓

systemctl restart iptables.service

設置開機自啓動

systemctl enable iptables.service

CentOS7.3 安裝 iptables 與詳細使用

安裝

安裝 Erlang

RabbitMQ 安裝須要依賴 Erlang 環境

$ cd /opt
$ wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm

$ yum install erlang-19.0.4-1.el7.centos.x86_64.rpm

安裝 RabbitMQ

$ cd /opt
$ wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
$ yum install rabbitmq-server-3.6.10-1.el7.noarch.rpm

啓動服務

$ service rabbitmq-server start

服務狀態

$ service rabbitmq-server status
# service rabbitmq-server status
Redirecting to /bin/systemctl status  rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-08-16 11:43:33 CST; 8s ago
 Main PID: 17919 (beam)
   Status: "Initialized"
   CGroup: /system.slice/rabbitmq-server.service
           ├─17919 /usr/lib64/erlang/erts-8.0.3/bin/beam -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K true -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /us...
           ├─18062 /usr/lib64/erlang/erts-8.0.3/bin/epmd -daemon
           ├─18160 erl_child_setup 1024
           ├─18165 inet_gethost 4
           └─18166 inet_gethost 4

Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: RabbitMQ 3.6.10. Copyright (C) 2007-2017 Pivotal Software, Inc.
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: ##  ##
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: ##########  Logs: /var/log/rabbitmq/rabbit@localhost.log
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: ######  ##        /var/log/rabbitmq/rabbit@localhost-sasl.log
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: ##########
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: Starting broker...
Aug 16 11:43:33 localhost.localdomain rabbitmq-server[17919]: systemd unit for activation check: "rabbitmq-server.service"
Aug 16 11:43:33 localhost.localdomain systemd[1]: Started RabbitMQ broker.
Aug 16 11:43:33 localhost.localdomain rabbitmq-server[17919]: completed with 0 plugins.

查看日誌

$ less /var/log/rabbitmq/rabbit@localhost.log
=INFO REPORT==== 16-Aug-2017::11:43:32 ===
Starting RabbitMQ 3.6.10 on Erlang 19.0.4
Copyright (C) 2007-2017 Pivotal Software, Inc.
Licensed under the MPL.  See http://www.rabbitmq.com/

=INFO REPORT==== 16-Aug-2017::11:43:32 ===
node           : rabbit@localhost
home dir       : /var/lib/rabbitmq
config file(s) : /etc/rabbitmq/rabbitmq.config (not found)
cookie hash    : kuUba2xGLitNNO48qE0Hrg==
log            : /var/log/rabbitmq/rabbit@localhost.log
sasl log       : /var/log/rabbitmq/rabbit@localhost-sasl.log
database dir   : /var/lib/rabbitmq/mnesia/rabbit@localhost

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Memory limit set to 390MB of 976MB total.

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Enabling free disk space monitoring

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Disk free limit set to 50MB

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Limiting to approx 924 file handles (829 sockets)

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
FHC read buffering:  OFF
FHC write buffering: ON

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Database directory at /var/lib/rabbitmq/mnesia/rabbit@localhost is empty. Initialising from scratch...

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Waiting for Mnesia tables for 30000 ms, 9 retries left

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Waiting for Mnesia tables for 30000 ms, 9 retries left

這裏顯示的是沒有找到配置文件,咱們能夠本身建立這個文件

config file(s) : /etc/rabbitmq/rabbitmq.config (not found)

建立rabbitmq.config

$ cd /etc/rabbitmq/
$ vi rabbitmq.config

編輯內容以下:

[{rabbit, [{loopback_users, []}]}].
  • 這裏的意思是開放使用,rabbitmq默認建立的用戶guest,密碼也是guest,這個用戶默認只能是本機訪問,localhost或者127.0.0.1,從外部訪問須要添加上面的配置。

保存配置後重啓服務

$ service rabbitmq-server restart

開啓管理UI

$ /sbin/rabbitmq-plugins enable rabbitmq_management

重啓服務

$ service rabbitmq-server restart

訪問管理UI

經過 http://ip:15672 使用guest,guest 進行登錄了

若是不能訪問,請檢查防火牆
圖片描述

受權操做

添加用戶

處於安全的考慮,guest這個默認的用戶只能經過http://localhost:15672 來登陸,其餘的IP沒法直接使用這個帳號。 這對於服務器上沒有安裝桌面的狀況是沒法管理維護的,除非經過在前面添加一層代理向外提供服務,這個又有些麻煩了,這裏經過配置文件來實現這個功能

命令格式

rabbitmqctl add_user <username> <newpassword>
$ rabbitmqctl add_user ymq 123456
Creating user "ymq"

刪除用戶

命令格式

rabbitmqctl delete_user <username>
$ rabbitmqctl  delete_user penglei
Deleting user "penglei"

修改密碼

命令格式

rabbitmqctl  change_password  <username> <newpassword>
$ rabbitmqctl  change_password  ymq 123456
Changing password for user "ymq"

用戶受權

命令格式

rabbitmqctl set_permissions [-pvhostpath] {user} {conf} {write} {read}

該命令使用戶ymq /(能夠訪問虛擬主機) 中全部資源的配置、寫、讀權限以便管理其中的資源

$ rabbitmqctl set_permissions -p "/" ymq ".*" ".*" ".*"
Setting permissions for user "ymq" in vhost "/"

查看用戶受權

命令格式

rabbitmqctl  list_permissions  [-p  VHostPath]
$ rabbitmqctl list_permissions -p /
Listing permissions in vhost "/"
guest    .*    .*    .*
ymq    .*    .*    .*

查看當前用戶列表

能夠看到添加用戶成功了,但不是administrator角色

$ rabbitmqctl list_users
Listing users
guest    [administrator]
ymq    []

添加角色

這裏咱們也將ymq用戶設置爲administrator角色

命令格式

rabbitmqctl set_user_tags <username> <tag>
$ rabbitmqctl set_user_tags ymq administrator
Setting tags for user "ymq" to [administrator]

再次查看權限

$ rabbitmqctl list_users
Listing users
guest    [administrator]
ymq    [administrator]

清除權限信息

命令格式

rabbitmqctl  clear_permissions  [-p VHostPath]  ymq
rabbitmqctl  clear_permissions  -p /  ymq
Clearing permissions for user "ymq" in vhost "/"

官方文檔

後臺操做

登陸新用戶

能夠看到 ymq 和 guest 的權限 同樣
圖片描述

添加用戶

鼠標點擊,劃紅線的角色,選擇一種
圖片描述

設置權限

該用戶無權訪問任何虛擬主機
圖片描述

點擊 Set permission

  • 設置能夠訪問虛擬主機 中全部資源的配置、寫、讀權限以便管理其中的資源

圖片描述

推薦閱讀

CentOs7.3 搭建 RabbitMQ 3.6 Cluster 集羣服務

Contact

  • 做者:鵬磊
  • 出處:http://www.ymq.io
  • Email:admin@souyunku.com
  • 版權歸做者全部,轉載請註明出處
  • Wechat:關注公衆號,搜雲庫,專一於開發技術的研究與知識分享

關注公衆號-搜雲庫

相關文章
相關標籤/搜索