首页 > 关于我们 > 技术文摘
OA办公系统:Centos7.5 安装Rabbitmq笔记
发布时间:

image.png

一、erlang编译安装

rabbitmq是erlang语言编写的,安装rabbitmq之前,需要先安装erlang,这里用erlang的源码进行安装,erlang安装包官网下载地址:http://erlang.org/download/

$ wget http://erlang.org/download/otp_src_23.1.tar.gz
$ tar -zxvf otp_src_23.1.tar.gz
$ cd otp_src_23.1

# 这里要新建一个erlang文件夹,因为erlang编译安装默认是装在/usr/local下的bin和lib中,这里我们将他统一装到/usr/local/erlang中,方便查找和使用。
$ mkdir -p /usr/local/erlang

# 在编译之前,必须安装以下依赖包
$ yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
 
$ ./configure --prefix=/usr/local/erlang

编译之前需要安装依赖的软件环境:

1、安装配置Java环境

如果不安装编译最后会提示:[1]."no java compile found"

#创建/usr/java/目录
$ mkdir -p /usr/java/
$ cd /usr/java

#上传jdk-8u172-linux-x64.tar.gz到服务器,可以使用rz命令,上传本地文件
$ yum install lrzsz
$ rz

#解压 java安装包
$ tar -zxvf jdk-8u172-linux-x64.tar.gz

#配置环境变量
$ vim /etc/profile
#java environment
export JAVA_HOME=/usr/java/jdk1.8.0_172
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

#使配置文件生效
$ source /etc/profile
#检查是否安装成功
$ java --version

2、安装UnixODBC

如果不安装编译最后会提示:"odbc: ODBC library - link check failed"

$ yum install unixODBC.x86_64 unixODBC-devel.x86_64

3、安装wx driver

如果不安装编译最后会提示:"wx: Can not link the wx driver, wx will NOT be useable"

此提示其实可以忽略,不影响编译。


4、安装wxWidgets

erlang依赖wxWidgets,如果不安装编译最后会提示:“wx not found”

#安装wxWidgets的依赖gtk,>2.0版本或者>3.0版本都可以
$ yum install gtk2-devel.x86_64
#或者
$ yum install gtk3-devel.x86_64

5、安装fop.noarch

如果不安装编译最后会提示:"documentation : fop is missing. Using fakefop to generate placeholder PDF files."

$ yum install fop.noarch


编译过程报错提示内容如下:

20181014230554537.png


成功编译之后,可以进行安装。


6、执行make && makeinstall 进行编译安装

$ make && make install

编译安装完成:

image.png


二、erlang环境变量配置

erlang安装完成之后,在/usr/local/erlang会增加lib和bin目录,如下图所示:

image.png

然后编辑/etc/profile,将/usr/local/erlang/bin这个文件夹加入到环境变量中:

$ vim /etc/profile

在profile文件最后添加,export PATH=$PATH:/usr/local/erlang/bin

#########   添加如下内容   ###############
export PATH=$PATH:/usr/local/erlang/bin
########################################

执行source /etc/profile命令,使环境变量生效:

$ source /etc/profile

到此,既安装完成,直接输入erl,验证安装是否成功:

image.png


三、安装RabbitMQ

1、版本选择

安装之前,需要去官网查看一下rabbitmq版本对erlang版本的一个支持情况,官网地址:http://www.rabbitmq.com/which-erlang.html

image.png

我们安装的erlang是最新的23.1版本,所以,rabbitmq也要安装最新的3.8.8,3.8.9

官方文档:http://www.rabbitmq.com/install-generic-unix.html

image.png

2、下载安装过程

下载并解压安装程序

# 下载源码包
$ wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-generic-unix-3.8.9.tar.xz

# 解压
$ tar -xvf rabbitmq-server-generic-unix-3.8.9.tar.xz -C /usr/local/

修改环境变量

使用VIM编辑器打开/etc/profile文件:

$ vim /etc/profile

在文件的最后添加环境变量内容:

export PATH=$PATH:/usr/local/rabbitmq_server-3.8.9/sbin

image.png

执行source /etc/profile使环境变量的修改生效:

$ source /etc/profile

添加web管理插件

$ rabbitmq-plugins enable rabbitmq_management

image.png


Rabbit配置文件

默认rabbitmq是没有配置文件的,需要去官方github上,复制一个配置文件模版过来,最新的3.7.0以上的版本可以使用新的key-value形式的配置文件rabbitmq.conf,和原来erlang格式的advanced.config相结合,解决一下key-value形式不好定义的配置。

github地址:https://github.com/rabbitmq/rabbitmq-server/tree/master/docs

image.png

https://github.com/rabbitmq/rabbitmq-server/blob/v3.8.x/docs/advanced.config.example

https://github.com/rabbitmq/rabbitmq-server/blob/v3.8.x/docs/rabbitmq.conf.example

将配置文件advanced.config.example和rabbitmq.conf.example两个文件的内容保存到文件并且改名后复制到 /usr/local/rabbitmq_server-3.8.9/etc/rabbitmq/ 下成为advanced.config和rabbitmq.conf。如:

image.png

启动RabbitMQ

配置完成后就可以启动rabbitmq服务了,其实没有配置文件也是可以启动服务的。

# 后台启动rabbitmq服务
$ /usr/local/rabbitmq_server-3.8.9/sbin/rabbitmq-server -detached

rabbitmq运行日志目录:/usr/local/rabbitmq_server-3.8.9/var/log


停止RabbitMQ

$ /usr/local/rabbitmq_server-3.8.9/sbin/rabbitmqctl stop


RabbitMQ管理控制台

启用了rabbitmq的管理插件,会有一个web管理界面,默认监听端口15672,将此端口在防火墙上打开,则可以访问web界面:

image.png

guest 无法登录的问题

使用默认的用户 guest / guest (此也为管理员用户)登陆,会发现无法登陆,报错:

User can only log in via localhost

那是因为默认是限制了guest用户只能在本机登陆,也就是只能登陆localhost:15672

我们可以通过修改配置文件rabbitmq.conf,取消这个限制:

loopback_users这个项就是控制访问的,如果只是取消guest用户的话,只需要loopback_users.guest = false 即可。

loopback_users.guest = false

修改配置文件/usr/local/rabbitmq_server-3.8.9/etc/rabbitmq/rabbitmq.conf的内容:

image.png

登录完成后进入控制台:

image.png

OK,到此rabbitmq就算是装好了,rabbitmq的webui功能比较齐全,可以做到很多东西,包括常见的用户管理,权限管理,vhost管理等等。

四、RabbitMQ常用命令

总的来说,使用WebUI已经非常方便了,可以实现基本常用的管理操作。当然除了用WebUI,还有用命令行:

下面列举一下常用的一些命令行操作:

服务启动停止:

启动: rabbitmq-server -detached

停止: rabbitmqctl stop

插件管理:

插件列表: rabbitmq-plugins list 

启动插件: rabbitmq-plugins enable XXX   (XXX为插件名)

停用插件: rabbitmq-plugins disable XXX

用户管理:

添加用户: rabbitmqctl add_user username password

删除用户: rabbitmqctl delete_user username

修改密码: rabbitmqctl change_password username newpassword

设置用户角色: rabbitmqctl set_user_tags username tag

列出用户: rabbitmqctl list_users

权限管理:

列出所有用户权限: rabbitmqctl list_permissions

查看制定用户权限: rabbitmqctl list_user_permissions username

清除用户权限: rabbitmqctl clear_permissions [-p vhostpath] username

设置用户权限: rabbitmqctl set_permissions [-p vhostpath] username conf write read

                          conf: 一个正则匹配哪些资源能被该用户访问

                          write:一个正则匹配哪些资源能被该用户写入

                          read:一个正则匹配哪些资源能被该用户读取

 

OK,就介绍到这里。这只是单机安装rabbitmq的单节点,且是使用了比较麻烦的源码安装。