rabbitmq在centos7上面的安装与使用

1.环境介绍

    系统:Centos7.0

    依赖软件:socat、erlang(有版本限制,到以下地址下载对应的版本:http://www.rabbitmq.com/releases/erlang/)

2.安装介绍

    首先我在http://www.rabbitmq.com/install-rpm.html这个地址下载了一个版本的rabbitmq安装包,通过以下命令安装:    

 
rpm -ivh rabbitmq-server-3.7.4-1.el7.noarch.rpm

    然后告诉我缺少依赖库erlang(http://www.rabbitmq.com/releases/erlang/)和 socat(http://www.rpmfind.net/linux/rpm2html/search.php?query=socat(x86-64)),我在上面对应的地址上下载了软件按安装包,在下载erlang的时候有个小插曲,比较坑,在的官网上面我找了下对应的安装包,结果没有对应的linux的版本,上网查了下说是没有linux的直接的安装包,我就直接下来的otp源码,在linux中编译,下一篇我介绍一下源码的编译方式和安装方式,放在这篇的话就跑题了。

    输入下面的命令开始安装上面的安装包:

rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm
yum install socat
   上面的依赖环境安装好之后就开始安装rabbitmq了
rpm -ivh rabbitmq-server-3.7.4-1.el7.noarch.rpm

    安装很顺利!!

    开始启动rabbitmq服务

systemctl start rabbitmq-server//启动服务
systemctl status rabbitmq-server//查看服务状态
    启动完成后我通过localhost:15672访问rabbit的管理界面是不能访问的。用下面的命令看了下rabbit的状态
[root@alpsVM Downloads]# rabbitmqctl status
Status of node rabbit@alpsVM ...
[{pid,7562},
 {running_applications,
     [{rabbitmq_management,"RabbitMQ Management Console","3.7.4"},
      {rabbitmq_management_agent,"RabbitMQ Management Agent","3.7.4"},
      {amqp_client,"RabbitMQ AMQP Client","3.7.4"},
      {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.7.4"},
      {rabbit,"RabbitMQ","3.7.4"},
      {rabbit_common,
          "Modules shared by rabbitmq-server and rabbitmq-erlang-client",
          "3.7.4"},
      {xmerl,"XML parser","1.3.15"},
      {ranch_proxy_protocol,"Ranch Proxy Protocol Transport","1.4.4"},
      {cowboy,"Small, fast, modern HTTP server.","2.2.2"},
      {ranch,"Socket acceptor pool for TCP protocols.","1.4.0"},
      {ssl,"Erlang/OTP SSL application","8.2"},
      {public_key,"Public key infrastructure","1.4.1"},
      {cowlib,"Support library for manipulating Web protocols.","2.1.0"},
      {crypto,"CRYPTO","4.0"},
      {asn1,"The Erlang ASN1 compiler version 5.0","5.0"},
      {recon,"Diagnostic tools for production use","2.3.2"},
      {jsx,"a streaming, evented json parsing toolkit","2.8.2"},
      {os_mon,"CPO  CXC 138 46","2.4.2"},
      {inets,"INETS  CXC 138 49","6.4"},
      {mnesia,"MNESIA  CXC 138 12","4.15"},
      {lager,"Erlang logging framework","3.5.1"},
      {goldrush,"Erlang event stream processor","0.1.9"},
      {compiler,"ERTS  CXC 138 10","7.1"},
      {syntax_tools,"Syntax tools","2.1.2"},
      {sasl,"SASL  CXC 138 11","3.0.4"},
      {stdlib,"ERTS  CXC 138 10","3.4"},
      {kernel,"ERTS  CXC 138 10","5.3"}]},
 {os,{unix,linux}},
 {erlang_version,
     "Erlang/OTP 20 [erts-9.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:64] [hipe] [kernel-poll:true]\n"},
 {memory,
     [{connection_readers,0},
      {connection_writers,0},
      {connection_channels,0},
      {connection_other,63912},
      {queue_procs,0},
      {queue_slave_procs,0},
      {plugins,1921352},
      {other_proc,22528104},
      {metrics,195056},
      {mgmt_db,491064},
      {mnesia,72816},
      {other_ets,2271904},
      {binary,122376},
      {msg_index,28784},
      {code,28278290},
      {atom,1123529},
      {other_system,11324613},
      {allocated_unused,21174104},
      {reserved_unallocated,0},
      {strategy,rss},
      {total,[{erlang,68421800},{rss,81440768},{allocated,89595904}]}]},
 {alarms,[]},
 {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
 {vm_memory_calculation_strategy,rss},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,765416243},
 {disk_free_limit,50000000},
 {disk_free,53847830528},
 {file_descriptors,
     [{total_limit,924},{total_used,2},{sockets_limit,829},{sockets_used,0}]},
 {processes,[{limit,1048576},{used,368}]},
 {run_queue,0},
 {uptime,5671},
 {kernel,{net_ticktime,60}}]
    看下面的listeners没有监听15672端口,我判断我的rabbitmq的服务没有开启网页的服务,输入下面的命令安装
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl start_app
systemctl restart rabbitmq-server//重启服务
       查看rabbit的状态,已经开始监听15672端口了,然后我通过下面的地址访问:localhost:15672就可以访问rabbit的图形管理界面了,然后我通过远程主机链接rabbit的图形管理界面,通过guest账户链接,拒绝访问,说是guest只能在本机访问,这个也有道理,所有的rabbit的guest都是默认账户,如果可以通过远程主机连接,这样不太安全。但是我还是想通过远程主机用guest账户访问,从网上查了下,一次按照下面的操作就可以了。
cd /etc/rabbitmq/
vim rabbitmq.config//在这个文件中输入下面的内容保存
[{rabbit, [{loopback_users, []}]}].

rabbitmqctl start_app

systemctl restart rabbitmq-server//重启服务

    好啦,可以用了!!!!!

    然后就可以开始使用了。

附录:管理命令

1.启动服务

systemctl start rabbitmq-server
service rabbitmq-server start//这两个都行

2.用户管理

      新建用户:rabbitmqctl add_user xxxpwd

      删除用户:   rabbitmqctl delete_user xxx

      改密码: rabbimqctl change_password {username} {newpassword}

      设置用户角色:rabbitmqctl set_user_tags {username} {tag ...}

              Tag可以为 administrator,monitoring, management
3.获取服务器状态
服务器状态:rabbitmqctl status

       队列信息:rabbitmqctl list_queues[-p vhostpath] [queueinfoitem ...]

                Queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready,

                messages_unacknowledged,messages,consumers,memory

       Exchange信息:rabbitmqctllist_exchanges[-p vhostpath] [exchangeinfoitem ...]

                 Exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments.

       Binding信息:rabbitmqctllist_bindings[-p vhostpath] [bindinginfoitem ...]       

                 Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments

       Connection信息:rabbitmqctllist_connections [connectioninfoitem ...]

       Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等。

       Channel信息:rabbitmqctl  list_channels[channelinfoitem ...]

      Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked

好啦,介绍完了,下篇我写下erlang



你可能感兴趣的:(rabbitmq)