rabbitmq安装

下载rabbitmq软件包

rabbitmq官网地址:http://www.rabbitmq.com/

本次安装3.8.1版本的,版本仓库地址:https://github.com/rabbitmq/rabbitmq-server/releases

安装包下载地址:https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.1/rabbitmq-server-generic-unix-3.8.1.tar.xz,

GitHub的软件版本页面会提示需要Erlang的版本,点击链接下载即可

另外,官网也给出了不同版本rabbitmq需要的Erlang版本,https://www.rabbitmq.com/which-erlang.html ,Erlang的下载地址:https://www.erlang.org/downloads/21.3

安装依赖

# yum -y install perl perl-devel ncurses-devel libtool libtool-ltdl-devel gcc-c++ erlang-doc erlang-jinterface unixODBC-devel mesa-libGLU-devel unixODBC-bin gtk2 fop libxml2-utils libxml2 libxslt

 

安装openssl

备份旧版本openssl

# which openssl
/usr/bin/openssl
# mv  /usr/bin/openssl{,.old}
# mv /etc/ssl{,.bak} #删除配置文件

安装新版本openssl

# wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz --no-check-certificate
# tar -xzf openssl-1.1.1c.tar.gz -C ../softwares/

# cd ../softwares/openssl-1.1.1c/

# ./Configure shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl

报错

NOTE: If in doubt, on Unix-ish systems use './config'.

需要使用config安装

# ./config shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl

# make && make install

修改动态库配置

# vim /etc/ld.so.conf

include ld.so.conf.d/*.conf
/usr/local/openssl/lib

配置生效
# ldconfig -v

设置openssl命令的软链接,并验证

# ln -s /usr/local/openssl/bin/openssl  /usr/local/bin/openssl

[root@localhost openssl-1.1.1c]# openssl version -a
OpenSSL 1.1.1c  28 May 2019
built on: Fri May 28 05:38:57 2021 UTC
platform: linux-x86_64
options:  bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG
OPENSSLDIR: "/usr/local/openssl"
ENGINESDIR: "/usr/local/openssl/lib/engines-1.1"
Seeding source: os-specific

安装jdk

# tar xfz  jdk-8u191-linux-x64.tar.gz -C ../softwares/

# cd ../softwares/

# ln -sv jdk1.8.0_191 jdk

# sed -i.ori '$a export JAVA_HOME=/opt/softwares/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile

# . /etc/profile

[root@localhost softwares]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

安装wxWidgets-3.0.3

# wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.0.5/wxWidgets-3.0.5.tar.bz2

# tar -xjf wxWidgets-3.0.5.tar.bz2  -C ../softwares/

安装

# cd ../softwares/wxWidgets-3.0.5/

# ./configure --with-opengl -enable-unicode -enable-debug

# make && make install

安装Erlang

[root@localhost packages]# ll
total 84844
-rw-r--r-- 1 root root 85547038 May 27 22:16 otp_src_21.3.tar.gz
-rw-r--r-- 1 root root  1327914 May 27 22:13 rabbitmq-server-generic-unix-3.8.1.tar.xz

# tar xfz otp_src_21.3.tar.gz -C ../softwares/

# cd ../softwares/otp_src_21.3/

# ./configure --prefix=/opt/softwares/erlang --enable-shared-zlib --with-ssl=/usr/local/openssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --with-javac

# make && make install

配置环境变量

# sed -ri -e '/JAVA_HOME=/a ERLANG_HOME=/opt/softwares/erlang' -e 's#(export PATH=.*)#1:$ERLANG_HOME/bin#' /etc/profile

# . /etc/profile

验证erlang

[root@localhost otp_src_21.3]# erl
Erlang/OTP 21 [erts-10.3] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]

Eshell V10.3  (abort with ^G)
1> ssl:versions().
[{ssl_app,"9.2"},
 {supported,['tlsv1.2','tlsv1.1',tlsv1]},
 {supported_dtls,['dtlsv1.2',dtlsv1]},
 {available,['tlsv1.2','tlsv1.1',tlsv1,sslv3]},
 {available_dtls,['dtlsv1.2',dtlsv1]}]

安装rabbitmq

# xz -d rabbitmq-server-generic-unix-3.8.1.tar.xz

# tar xf rabbitmq-server-generic-unix-3.8.1.tar -C ../softwares/

# cd ../softwares/

# ln -sv rabbitmq_server-3.8.1 rabbitmq

[root@localhost softwares]# ll
total 8
drwxr-xr-x  4 root root    28 May 28 01:04 erlang
drwxr-xr-x 12 2004 wheel 4096 May 28 01:03 otp_src_21.3
lrwxrwxrwx  1 root root    22 May 28 01:19 rabbitmq -> rabbitmq_server-3.8.1/
drwxr-xr-x 10 root root  4096 Oct 31  2019 rabbitmq_server-3.8.1

添加环境变量

# sed -ri 's#(export PATH=.*)#1:/opt/softwares/rabbitmq/sbin#' /etc/profile
# . /etc/profile

启动rabbitmq的方式

1、以守护进程启动

# rabbitmq-server -detached
Warning: PID file not written; -detached was passed.

2、nohup rabbitmq-server start &

服务运行状态及端口

[root@localhost softwares]# rabbitmqctl status
Status of node rabbit@localhost ...
Runtime

端口

[root@localhost softwares]# ss -lntp
State       Recv-Q Send-Q                                      Local Address:Port                                                     Peer Address:Port              
LISTEN      0      128                                                     *:4369                                                                *:*                   users:(("epmd",pid=35113,fd=3))
LISTEN      0      128                                                     *:22                                                                  *:*                   users:(("sshd",pid=11363,fd=3))
LISTEN      0      100                                             127.0.0.1:25                                                                  *:*                   users:(("master",pid=826,fd=13))
LISTEN      0      128                                                     *:25672                                                               *:*                   users:(("beam.smp",pid=35155,fd=77))
LISTEN      0      128                                                    :::4369                                                               :::*                   users:(("epmd",pid=35113,fd=4))
LISTEN      0      128                                                    :::22                                                                 :::*                   users:(("sshd",pid=11363,fd=4))
LISTEN      0      100                                                   ::1:25                                                                 :::*                   users:(("master",pid=826,fd=14))
LISTEN      0      128                                                    :::5672                                                               :::*                   users:(("beam.smp",pid=35155,fd=90))

设置开机启动(两种)

1、脚本

[root@localhost softwares]# cat /etc/init.d/rabbitmq-server
#!/bin/sh
#
# rabbitmq-server RabbitMQ broker
#
# chkconfig: - 80 05
# description: Enable AMQP service provided by RabbitMQ
#
 
### BEGIN INIT INFO
# Provides:          rabbitmq-server
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Description:       RabbitMQ broker
# Short-Description: Enable AMQP service provided by RabbitMQ broker
### END INIT INFO
 
# Source function library.
. /etc/init.d/functions
 
PATH=/sbin:/usr/sbin:/bin:/usr/bin
export HOME=/root
NAME=rabbitmq-server
DAEMON=/opt/softwares/rabbitmq/sbin/${NAME}
CONTROL=/opt/softwares/rabbitmq/sbin/rabbitmqctl
DESC=rabbitmq-server
USER=root
PID_FILE=/var/run/rabbitmq/pid
#RABBITMQ_ENV=/usr/lib/rabbitmq/bin/rabbitmq-env
START_PROG="daemon"
LOCK_FILE=/var/lock/subsys/$NAME
 
test -x $DAEMON || exit 0
test -x $CONTROL || exit 0
 
RETVAL=0
set -e
 
[ -f /etc/default/${NAME} ] && . /etc/default/${NAME}
 
#RABBITMQ_SCRIPTS_DIR=$(dirname "$RABBITMQ_ENV")
#. "$RABBITMQ_ENV"
 
ensure_pid_dir () {
    PID_DIR=`dirname ${PID_FILE}`
    if [ ! -d ${PID_DIR} ] ; then
        mkdir -p ${PID_DIR}
        chown -R ${USER}:${USER} ${PID_DIR}
        chmod 755 ${PID_DIR}
    fi
}
 
remove_pid () {
    rm -f ${PID_FILE}
    rmdir `dirname ${PID_FILE}` || :
}
 
start_rabbitmq () {
    status_rabbitmq quiet
    if [ $RETVAL = 0 ] ; then
        echo RabbitMQ is currently running
    else
        RETVAL=0
        ensure_pid_dir
        set +e
        RABBITMQ_PID_FILE=$PID_FILE $START_PROG $DAEMON 
            > "${RABBITMQ_LOG_BASE}/startup_log" 
            2> "${RABBITMQ_LOG_BASE}/startup_err" 
            0<&- &
        $CONTROL wait $PID_FILE >/dev/null 2>&1
        RETVAL=$?
        set -e
        case "$RETVAL" in
            0)
                echo SUCCESS
                if [ -n "$LOCK_FILE" ] ; then
                    touch $LOCK_FILE
                fi
                ;;
            *)
                remove_pid
                echo FAILED - check ${RABBITMQ_LOG_BASE}/startup_{log, _err}
                RETVAL=1
                ;;
        esac
    fi
}
 
stop_rabbitmq () {
    status_rabbitmq quiet
    if [ $RETVAL = 0 ] ; then
        set +e
        $CONTROL stop ${PID_FILE} 
            > ${RABBITMQ_LOG_BASE}/shutdown_log 
            2> ${RABBITMQ_LOG_BASE}/shutdown_err
        RETVAL=$?
        set -e
        if [ $RETVAL = 0 ] ; then
            remove_pid
            if [ -n "$LOCK_FILE" ] ; then
                rm -f $LOCK_FILE
            fi
        else
            echo FAILED - check ${RABBITMQ_LOG_BASE}/shutdown_log, _err
        fi
    else
        echo RabbitMQ is not running
        RETVAL=0
    fi
}
 
status_rabbitmq() {
    set +e
    if [ "$1" != "quiet" ] ; then
        $CONTROL status 2>&1
    else
        $CONTROL status > /dev/null 2>&1
    fi
    if [ $? != 0 ] ; then
        RETVAL=3
    fi
    set -e
}
 
rotate_logs_rabbitmq() {
    set +e
    $CONTROL rotate_logs
    if [ $? != 0 ] ; then
        RETVAL=1
    fi
    set -e
}
 
restart_running_rabbitmq () {
    status_rabbitmq quiet
    if [ $RETVAL = 0 ] ; then
        restart_rabbitmq
    else
        echo RabbitMQ is not runnning
        RETVAL=0
    fi
}
 
restart_rabbitmq() {
    stop_rabbitmq
    start_rabbitmq
}
 
case "$1" in
    start)
        echo -n "Starting $DESC: "
        start_rabbitmq
        echo "$NAME."
        ;;
    stop)
        echo -n "Stopping $DESC: "
        stop_rabbitmq
        echo "$NAME."
        ;;
    status)
        status_rabbitmq
        ;;
    rotate-logs)
        echo -n "Rotating log files for $DESC: "
        rotate_logs_rabbitmq
        ;;
    force-reload|reload|restart)
        echo -n "Restarting $DESC: "
        restart_rabbitmq
        echo "$NAME."
        ;;
    try-restart)
        echo -n "Restarting $DESC: "
        restart_running_rabbitmq
        echo "$NAME."
        ;;
    *)
        echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2
        RETVAL=1
        ;;
esac
exit $RETVAL

设置权限并加入开机自启动

# chmod +x /etc/init.d/rabbitmq-server
chkconfig rabbitmq-server on

2、unit文件

# vim /usr/lib/systemd/system/rabbitmq-server.service

[unit]
Description=RabbitMQ broker
After=syslog.target network.target
[Service]
Type=notify
User=root
Group=root
WorkingDirectory=/opt/softwares/rabbitmq
ExecStart=/opt/softwares/rabbitmq/bin/rabbitmq-server
ExecStop=/opt/softwares/rabbitmq/bin/rabbitmqctl stop
[Install]
WantedBy=multi-user.target

开启rabbitmq的web插件

1、开启rabbitmq

# rabbitmqctl start_app
Starting node rabbit@localhost ...

2、开启管理插件

[root@localhost softwares]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@localhost:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@localhost...
The following plugins have been enabled:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch

started 3 plugins.

3、查看插件集合

[root@localhost softwares]# rabbitmq-plugins list
Listing plugins with pattern ".*" ...
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: * = running on rabbit@localhost
 |/
[  ] rabbitmq_amqp1_0                  3.8.1
[  ] rabbitmq_auth_backend_cache       3.8.1
[  ] rabbitmq_auth_backend_http        3.8.1
[  ] rabbitmq_auth_backend_ldap        3.8.1
[  ] rabbitmq_auth_backend_oauth2      3.8.1
[  ] rabbitmq_auth_mechanism_ssl       3.8.1
[  ] rabbitmq_consistent_hash_exchange 3.8.1
[  ] rabbitmq_event_exchange           3.8.1
[  ] rabbitmq_federation               3.8.1
[  ] rabbitmq_federation_management    3.8.1
[  ] rabbitmq_jms_topic_exchange       3.8.1
[E*] rabbitmq_management               3.8.1
[e*] rabbitmq_management_agent         3.8.1
[  ] rabbitmq_mqtt                     3.8.1
[  ] rabbitmq_peer_discovery_aws       3.8.1
[  ] rabbitmq_peer_discovery_common    3.8.1
[  ] rabbitmq_peer_discovery_consul    3.8.1
[  ] rabbitmq_peer_discovery_etcd      3.8.1
[  ] rabbitmq_peer_discovery_k8s       3.8.1
[  ] rabbitmq_prometheus               3.8.1
[  ] rabbitmq_random_exchange          3.8.1
[  ] rabbitmq_recent_history_exchange  3.8.1
[  ] rabbitmq_sharding                 3.8.1
[  ] rabbitmq_shovel                   3.8.1
[  ] rabbitmq_shovel_management        3.8.1
[  ] rabbitmq_stomp                    3.8.1
[  ] rabbitmq_top                      3.8.1
[  ] rabbitmq_tracing                  3.8.1
[  ] rabbitmq_trust_store              3.8.1
[e*] rabbitmq_web_dispatch             3.8.1
[  ] rabbitmq_web_mqtt                 3.8.1
[  ] rabbitmq_web_mqtt_examples        3.8.1
[  ] rabbitmq_web_stomp                3.8.1
[  ] rabbitmq_web_stomp_examples       3.8.1

web页面访问

关闭rabbitmq 

# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@localhost ...
原文地址:https://www.cnblogs.com/zh-dream/p/14823610.html