系统:Centos7.0
依赖软件:socat、erlang(有版本限制,到以下地址下载对应的版本:http://www.rabbitmq.com/releases/erlang/)
首先我在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