#!/bin/bash
###将安装包拷贝到/upload目录下
set -x
set -e
##############################
simplejson="simplejson-3.8.0"
erlang="otp_src_R16B03-1"
rabbitmq="rabbitmq-server-3.5.4"
installpath="/upload"
###############################
echo install rabbitMQ
#是否安装rabbitMQ
if [ -d /opt/rabbitmq ]; then
echo 'rabbitMQ' already exists
exit 1
fi
#yum依赖
yum -y install xmlto nc python-devel
#编辑环境及安装
cd $installpath
tar -zxvf $simplejson.tar.gz
cd $installpath/$simplejson
python setup.py install
sleep 1
cd $installpath
tar -zxvf $erlang.tar.gz
cd $installpath/$erlang
./configure
make
make install
sleep 1
cd $installpath
tar -zxvf $rabbitmq.tar.gz
cd $installpath/$rabbitmq
make
make install TARGET_DIR=/opt/rabbitmq SBIN_DIR=/opt/rabbitmq/sbin MAN_DIR=/opt/rabbitmq/man DOC_INSTALL_DIR=/opt/rabbitmq/doc
echo -e "\033[32;40m Install: OK! \033[0m"
集群配置:
rabbitqm启动集群说明
注:拷贝.erlang.cookie文件,通过这个程序来执行集群,拷贝到集群内其它机器,使用什么用户启动就在用户下面可以找到这个文件
1.设置host
vim /etc/hosts
172.20.66.249 rabbit1
172.20.66.250 rabbit2
172.20.66.251 rabbit3
2.启动后台服务
/opt/rabbitmq/sbin/rabbitmq-server --detached &
3.查看状态
rabbitmqctl cluster_status
4.定义一个机器做为集群主,其它机器指向主服务,--ram 是以内存方法来进行存诸
/opt/rabbitmq/sbin/rabbitmqctl stop_app
/opt/rabbitmq/sbin/rabbitmqctl reset
/opt/rabbitmq/sbin/rabbitmqctl join_cluster --ram rabbit@b2b-v5-05
/opt/rabbitmq/sbin/rabbitmqctl start_app
5.不添加--ram是以磁盘方法进行存储
/opt/rabbitmq/sbin/rabbitmqctl stop_app
/opt/rabbitmq/sbin/rabbitmqctl reset
/opt/rabbitmq/sbin/rabbitmqctl start_app
6.查看集群状态
/opt/rabbitmq/sbin/rabbitmqctl cluster_status
7.实现镜像同步
/opt/rabbitmq/sbin/rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
8.测试是集群是不是同步
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一致。
至此,rabbitMQ配置完成,可以在任意一个节点执行命令查看两个节点是否保持一致:
/opt/rabbitmq/sbin/rabbitmqctl add_vhost testCluster
Creating vhost "testCluster" ...
/opt/rabbitmq/sbin/rabbitmqctl list_vhosts
查看那些slave已经同步了
rabbitmqctl list_queues name slave_pids synchronised_slave_pids
手动同步(默认手动同步):
rabbitmqctl sync_queue name
取消自动同步:
rabbitmqctl cancel_sync_queue name
####################################################下面不是必须项
9.启动rabbitmq管理页
mkdir /etc/rabbitmq
chmod 777 /etc/rabbitmq/
/opt/rabbitmq/sbin/rabbitmq-plugins enable rabbitmq_management
/opt/rabbitmq/sbin/rabbitmq-plugins disable rabbitmq_management
10.账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用
新建帐号给administrator
/opt/rabbitmq/sbin/rabbitmqctl add_user admin rabbitmqA05!
/opt/rabbitmq/sbin/rabbitmqctl set_user_tags admin administrator
/opt/rabbitmq/sbin/rabbitmqctl add_vhost local
/opt/rabbitmq/sbin/rabbitmqctl set_permissions -p "local" admin ".*" ".*" ".*"
/opt/rabbitmq/sbin/rabbitmqctl list_users
RabbitMQ 管理指南(添加虚拟host)
http://www.blogjava.net/xiaomage234/archive/2012/11/28/392141.html
vim /etc/rabbitmq/rabbitmq.conf
RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
RABBITMQ_NODE_PORT=2222
常用命令
查看队列
/opt/rabbitmq/sbin/rabbitmqctl list_queues
查看mq参数
rabbitmqctl status
更改内存使用比例:不要超过50%
rabbitmqctl set_vm_memory_high_watermark 0.25
五、用户管理
默认的guest帐户相当于root帐户
rabbitmqctl add_user username password 添加帐户
rabbitmqctl change_password username newpassword 修改密码
rabbitmqctl delete_user username 删除帐户
rabbitmqctl list_users 列出所有帐户
rabbitmqctl set_user_tags User Tag 设置角色(administrator、monitoring、 policymaker、management、其它)
立即生效,不需重启
1. 配置文件
Rabbitmq的配置文件有三个,位于/etc/rabbitmq/,
这三个文件分别是:
(1)enabled_plugins, 设置允许的插件列表,该配置文档的格式为erlang的列表格式如
[rabbitmq_management,rabbitmq_visualiser].
(2)rabbitmq.conf,设置rabbitmq的运行参数。该配置文件中的每个参数为一个erlang的 tuple,结构为{Key,Value}, Key为atom类型, Value为一个term。其中几个关键参数为:
tcp_listerners :设置rabbimq的监听端口,默认为[5672]。
disk_free_limit :磁盘低水位线,若磁盘容量低于指定值则停止接收数据,默认值为
{mem_relative, 1.0},即与内存相关联1:1,也可定制为多少byte.
vm_memory_high_watermark:设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%。
hipe_compile :将部分rabbimq代码用HighPerformance Erlang compiler编译,可提升性能,该参数是实验性,若出现erlang vm segfaults,应关掉。
force_fine_statistics, 该参数属于rabbimq_management,若为true则进行精细化的统计,但会影响性能。
(3)rabbitmq-env.conf rabbitmq的环境参数配置
RABBITMQ_NODE_PORT 端口设置,默认为5672
RABBITMQ_NODENAME 节点名称,默认为rabbit
MNESIA_BASE 后端存储目录,默认为/var/lib/rabbitmq/mnesia
LOG_BASE 日志目录,默认为/var/log/rabbitmq/