设为首页 收藏本站
查看: 680|回复: 0

[经验分享] rabbitmq在redhat5.5下搭建部署

[复制链接]

尚未签到

发表于 2018-5-12 10:18:16 | 显示全部楼层 |阅读模式
RabbitMQ 安装配置与管理
安装  
安装目录为/usr/local/
1. 安装erlang虚拟机
Rabbitmq基于erlang语言开发,所有需要安装erlang虚拟机
下载otp_src_R15B01.tar.gz
tar zxvf otp_src_R15B01.tar.gz
cd otp_src_R15B01
./configure && make install
2
xmlto (rabbitmq 编译安装时需要使用)

wget  https://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.23.tar.gz  

tar -zxf xmlto-0.0.23.tar.gz

cd xmlto-0.0.23

./configure  

make  

make install  //如发现含有man报错 是需要去网站下载man文档 此步失败可略过


3. 安装Python
如果Python版本低,编译simplejson时会报错。请安装Python-2.7.3.tar.bz2
             tar -jxvf Python-2.7.3.tar.bz2
               cd Python-2.7.3
              ./configure &&make && make install

4. 安装simplejson
如果 机器上python 版本为2.6以下版本 会提示You don't appear to have simplejson.py installed 安装
tar -zxvf simplejson-2.6.1.tar.gz
   cd  simplejson-2.6.1
     python setup.py install      // 最好用root权限安装


5. 安装rabbitmq server
下载rabbitmq-server-generic-unix-2.8.6.tar.gz
tar xvzf rabbitmq-server-generic-unix-2.8.6.tar.gz
cd rabbitmq_server-2.8.6/sbin/            //这是编译过的包 可以直接使用
开启监控  下面3条命令为可选 需要使用可开启 查看 喜欢研究的可以查看下 不用的话就用关闭命令关闭插件



./rabbitmq-plugins enable  rabbitmq_management  开启监控插件

./rabbitmq-plugins list                          查看插件列表

./rabbitmq-plugins disable                       关闭插件


rabbitmq-server -detached    //启动rabbitmq  至此rabbitmq算是起来了

配置

一般情况下,RabbitMQ的默认配置就足够了。如果希望特殊设置的话,有两个途径:
一个是环境变量的配置文件 rabbitmq-env.conf
一个是配置信息的配置文件 rabbitmq.config
注意,这两个文件默认是没有的,如果需要必须自己创建。
rabbitmq-env.conf这个文件的位置是确定和不能改变的,位于:/etc/rabbitmq目录下(这个目录需要自己创建)。
文件的内容包括了RabbitMQ的一些环境变量,配置下面:
RABBITMQ_MNESIA_BASE=/rabbitmq/data        //需要使用的MNESIA数据库的路径
RABBITMQ_LOG_BASE=/rabbitmq/log        //log的路径
RABBITMQ_PLUGINS_DIR=/rabbitmq/plugins    //插件的路径

具体的列表见:http://www.rabbitmq.com/configure.html#define-environment-variables

rabbitmq.config
这是一个标准的erlang配置文件。它必须符合erlang配置文件的标准。
它既有默认的目录,也可以在rabbitmq-env.conf文件中配置。

集群配置

1)配置erlang
Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境。Erlang的集群中各节 点是通过一个magic cookie来实现的,这个cookie存放在$HOME/.Erlang.cookie 中,文件是400的权限。所以必须保证各节点cookie保持一致,否则节点之间就无法通信。
将其中一台节点上的.erlang.cookie值复制下来保存到其他节点上。或者使用scp的方法也可,但是要注意文件的权限和属主属组。
$ cat .erlang.cookie  
IYZNFNJIUWABJUELIUFE  
将值保存到其他节点上:
先更改文件权限,给予其可写权限:
$chmod 700 .erlang.cookie  
$ echo -n " IYZNFNJIUWABJUELIUFE" >$HOME/.erlang.cookie  
$chmod 400 .erlang.cookie  

(2) 配置各节点下的hosts文件,确保节点之间主机名称可以相互解析。
192.168.1.**   nodename
192.168.1.**   nodename
192.168.1.**   nodename
192.168.1.**   nodename


1)手动配置rabbitmq集群
a)首先在每个节点上启动RabbitMq
host1#rabbitmq-server -detached
host2#rabbitmq-server -detached
host3#rabbitmq-server -detached
此时每个节点自成集群,每个集群只有本节点
可以通过export RABBITMQ_NAME=xxx 指定节点名称,若不指定默认为rabbit
完整的节点名为xxx@hostname
b)加入集群
host2 host3上的rabbitmq节点加入到 host1rabbitmq集群
使用rabbitmqctl命令对rabbitmq进行操作
加入集群前必须停止当前app,加入后在重启app,过程如下:
host2#rabbitmqctl stop_app
host2#rabbitmqctl cluster rabbit@host1
host2#rabbitmqctl start_app
host3#rabbitmqctl stop_app
host3#rabbitmqctl cluster rabbit@host1
host3#rabbitmqctl start_app

关于节点类型(ram |disk
ram节点的状态保存在内存中,disk节点保存在磁盘中
被加入的节点为disk,如本例中rabbit@host1disk节点,rabbit@host2rabbit@host3ram节点
可以通过rabbitmqctl cluster命令改变加入的集群以及节点类型该命令后可以加多个节点名称,指定的节点就会变成disk节点
如可以将本例中所有节点都改成disk节点
host2#rabbitmqctl stop_app
host2#rabbitmqctl reset
host2#rabbitmqctl cluster rabbit@host1 rabbit@host2
host2#rabbitmqctl start_app
host3#rabbitmqctl stop_app
host3#rabbitmqctl reset
host3#rabbitmqctl cluster rabbit@host1 rabbit@host3
host3#rabbitmqctl start_app
2)自动配置rabbitmq集群:
rabbitmq的默认配置脚本为
/etc/rabbitmq/rabbitmq.conf
在其中添加
[
...
{rabbit, [
...
{cluster_nodes, ['rabbit@host1', 'rabbit@host2', 'rabbit@host3']},
...
]},
...
].
分别启动每个rabbitmq节点
Rabbitry -detached
rabbitmq就自动组成集群了
注意事项:
1)每个节点的erlang cookie须相同,可以在启动服务器加–setcookie参数设置相同的参数,也可以在home目录下设置相同的.erlang.cookie文件。
2)节点间应该能相互解析,可以通过修改/etc/hosts文件实现
监控
RabbitMQ提供了一个web的监控页面系统,这个系统是以Plugin的方式进行调用的。
首先,确定rabbitmq-env.conf中配置好的plugins目录的位置
启动管理插件命令 :
  rabbitmq-plugins enable rabbitmq_management
重新启动RabbitMQ,输入http://server-name:55672/mgmt/ 就能够进入到监控页面。默认的用户名和密码是: guest guest

管理
Rabbitmq服务器的主要通过rabbitmqctl和rabbimq-plugins两个工具来管理,以下是一些常用功能。
1. 服务器启动与关闭
启动: rabbitmq-server –detached
关闭:rabbitmqctl stop
若单机有多个实例,则在rabbitmqctlh后加–n 指定名称
2. 插件管理
开启某个插件:rabbitmq-plugins enable xxx
关闭某个插件:rabbitmq-plugins disablexxx
注意:重启服务器后生效。
3. virtual_host管理
新建virtual_host: rabbitmqctl add_vhost  xxx
撤销virtual_host:rabbitmqctl  delete_vhost xxx
4. 用户管理
新建用户:rabbitmqctl add_user xxx pwd
删除用户:   rabbitmqctl delete_user xxx
改密码: rabbimqctl change_password {username} {newpassword}
设置用户角色:rabbitmqctl set_user_tags {username} {tag ...}
Tag可以为 administrator, monitoring, management
Tag
Capabilities
(None)
No access to the management plugin
management
Anything the user could do via AMQP plus:
List virtual hosts to which they can log in via AMQP
View all queues, exchanges and bindings in "their" virtual hosts
View and close their own channels and connections
View "global" statistics covering all their virtual hosts, including activity by other users within them
monitoring
Everything "management" can plus:
List all virtual hosts, including ones they could not log in to via AMQP
View other users's connections and channels
View node-level data such as memory use and clustering
View truly global statistics for all virtual hosts
administrator
Everything "monitoring" can plus:
Create and delete virtual hosts
View, create and delete users
View, create and delete permissions
Close other users's connections
5. 权限管理
权限设置:set_permissions [-p vhostpath] {user} {conf} {write} {read}
Vhostpath
Vhost路径
user
用户名
Conf
一个正则表达式match哪些配置资源能够被该用户访问。
Write
一个正则表达式match哪些配置资源能够被该用户读。
Read
一个正则表达式match哪些配置资源能够被该用户访问。
6. 获取服务器状态信息
服务器状态: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信息:rabbitmqctl list_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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-459004-1-1.html 上篇帖子: RedHat 5.4下构建postfix全功能电子邮(二) 下篇帖子: REDHAT LINUX修改MAC地址
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表