CentOS 7 install RabbitMQ

surroundings:

  CentOS 7.6

  Erlang OTP 20.3 Released

  RabbitMQ 3.7.17

  Firewall Status: not running (you can also open the specified port according to the situation)

  Perform the role: administrator / root

First, install Erlang

1. Installing Erlang environment

yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget

 2. After downloading CentOS Erlang uploaded to the root directory (otp_src_20.3.tar.gz)

Download:  https://www.erlang.org/downloads

[root@yyj ~]# ll
总用量 95864
-rw-------. 1 root root     1235 6月  21 21:16 anaconda-ks.cfg
-rw-r--r--. 1 root root 88170904 9月   4 14:34 otp_src_20.3.tar.gz
-rw-r--r--. 1 root root  9982364 9月   4 14:07 rabbitmq-server-generic-unix-3.7.17.tar.xz

 

3. decompression otp_src_20.3.tar.gz to the / usr / local /

[root@yyj ~]# tar -zxvf ./otp_src_20.3.tar.gz -C /usr/local/

4. compile and install

[root@yyj ~]# cd /usr/local/otp_src_20.3/
[root@yyj otp_src_20.3]# ./configure --prefix=/usr/local/erlang
[root@yyj otp_src_20.3]# make && make install

  5. Set Environment Variables

[Root @ YYJ erlang] # vi / etc / profile

 vi Inserts (modified according to the installation position)

export ERLANG_HOME = / usr / local / erlang / lib / erlang # catalog note here is erlang erlang directory under the lib directory 
export PATH = $ ERLANG_HOME / bin # If you already have a PATH, and Windows as additional behind it, the difference is by: separated

 After insertion results

#JDK environment setting
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#erlang evn setting
export ERLANG_HOME=/usr/local/erlang/lib/erlang
export PATH=$PATH:$JAVA_HOME/bin:$ERLANG_HOME/bin;

 6. Re-use environment variables

[root@yyj erlang]# source /etc/profile

 7. Verify whether the installation was successful Erlang

[root@yyj erlang]# erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 9.3

 

 Second, install RabbitMQ Server

 1. Download RabbitMQ installation package, and then upload it to the root directory of CentOS

Download: https://www.rabbitmq.com/

[root@yyj ~]# ll
总用量 95864
-rw-------. 1 root root     1235 6月  21 21:16 anaconda-ks.cfg
-rw-r--r--. 1 root root 88170904 9月   4 14:34 otp_src_20.3.tar.gz
-rw-r--r--. 1 root root  9982364 9月   4 14:07 rabbitmq-server-generic-unix-3.7.17.tar.xz

 

2. Extract to / usr / local

[root@yyj ~]# xz -d ./rabbitmq-server-generic-unix-3.7.17.tar.xz    
[root@yyj ~]# tar -xvf ./rabbitmq-server-generic-unix-3.7.17.tar -C /usr/local/ 

 

rabbitmq-server-generic-unix-3.7.17.tar.xz file suffix is ​​xz, note, use the appropriate command

3. environment variable settings

[root@yyj rabbitmq_server-3.7.17]# vi /etc/profile

 

vi PATH be appended to the corresponding content (there is no relative path with the HOME, write direct path):

export PATH=$PATH:$JAVA_HOME/bin:$ERLANG_HOME/bin:/usr/local/rabbitmq_server-3.7.17/sbin

 

4. Re-use environment variables

[root@yyj rabbitmq_server-3.7.17]# source /etc/profile

 

5. Install the Web management interface plug-in

[root@yyj ~]# rabbitmq-plugins enable rabbitmq_management

 

7. Start RabbitMQ

[root@yyj ~]# rabbitmq-server -start

 

6. Set the remote IP RabbitMQ landing

1. Create an account

rabbitmqctl add_user rabbitmq 123456

2. Set user roles

rabbitmqctl set_user_tags rabbitmq administrator

3. Set user rights

rabbitmqctl set_permissions -p "/" rabbitmq ".*" ".*" ".*"

4. After the setup is complete you can view the current users and roles (need to open the service)

rabbitmqctl list_users
执行命令预览:
[root@yyj ~]# rabbitmqctl add_user rabbitmq 123456 Adding user "rabbitmq" ... [root@yyj ~]# rabbitmqctl set_user_tags rabbitmq administrator Setting tags for user "rabbitmq" to [administrator] ... [root@yyj ~]# rabbitmqctl set_permissions -p "/" rabbitmq ".*" ".*" ".*" Setting permissions for user "rabbitmq" in vhost "/" ... [root@yyj ~]# rabbitmqctl list_users Listing users ... user tags rabbitmq [administrator] guest [administrator]

 

7. Remote IP landing test (default port: 15672)

 

8. The configuration daemon (post launch)

   8.1 increase from the start script:

[Root @ YYJ ~] # we /etc/init.d/rabbitmq-server

  8.2 Add rabbitmq-server script content

#!/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
# Description:       RabbitMQ broker
# Short-Description: Enable AMQP service provided by RabbitMQ broker
### END INIT INFO
 
# Source function library.
. /etc/init.d/functions
export HOME=/root
#此处根据自己情况配置
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/erlang/lib/erlang/bin
NAME=rabbitmq-server
#DAEMON=/usr/sbin/${NAME}
CONTROL = # / usr / sbin / rabbitmqctl 
# here according to its own configuration 
DAEMON = / usr / local / rabbitmq_server-3.7.17 / sbin / $ {NAME} 
# here according to its own configuration 
CONTROL = / usr / local / rabbitmq_server -3.7.17 / sbin / rabbitmqctl 
DESC = RabbitMQ-Server 
the USER = the root 
ROTATE_SUFFIX = 
# here according to its own configuration 
INIT_LOG_DIR = / usr / local / rabbitmq_server-3.7.17 / var / log / RabbitMQ 
# here according to its own configuration 
PID_FILE=/usr/local/rabbitmq_server-3.7.17/var/lib/rabbitmq/mnesia/[email protected] 
 
START_PROG = "daemon" 
LOCK_FILE = / var / Lock / subsys / $ NAME 
 
Test Exit the -X-$ dAEMON || 0 
Test Exit the -X-$ 0 || CONTROL 
 
RETVAL = 0 
SET -e 
 
[-f / etc / default / $ {NAME}] &&. / etc / default / $ {NAME} 
 
ensure_pid_dir () { 
    PID_DIR = pid_file The {} $ `` dirname
    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 \
            > "${INIT_LOG_DIR}/startup_log" \
            2> "${INIT_LOG_DIR}/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 ${INIT_LOG_DIR}/startup_\{log, _err\}
                RETVAL=1
                ;;
        esac
    fi
}
 
stop_rabbitmq () {
    status_rabbitmq quiet
    if [ $RETVAL = 0 ] ; then
        set +e
        $CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/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 ${INIT_LOG_DIR}/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 ${ROTATE_SUFFIX}
    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

 

Amend section:

# Remember increase Erlang environment path
the PATH = / sbin: / usr / sbin: / bin: / usr / bin: / usr / local / erlang / lib / Erlang / bin       # Remember increase Erlang environment path / usr / local / erlang / lib / Erlang / bin 
# daemon
dAEMON = /usr/local/rabbitmq_server-3.7.17/sbin /} $ {NAME
CONTROL = /usr/local/rabbitmq_server-3.7.17/sbin / rabbitmqctl
DESC = RabbitMQ-Server
the USER = the root
#LOG log
INIT_LOG_DIR = /data/soft/rabbitmq_server-3.7.9/var/log/rabbitmq
# PID file, you can find -name rabbit * .pid by executing the command find / path
pid_file the = /usr/local/rabbitmq_server-3.7 .17 / var / lib / rabbitmq / mnesia / rabbit @ yyj.pid

  8.3 Set Permissions

[root@yyj ~]# chmod 755 /etc/init.d/rabbitmq-server

  8.4 boot from Kai 

Adding to boot system: [root @ yyj ~] # chkconfig --add /etc/init.d/rabbitmq-server 
configured to start automatically with the system daemon: [root @ yyj ~] # chkconfig rabbitmq-server on 
See start command entry: [YYJ the root @ ~] # the chkconfig --list 
  RabbitMQ server-0: off 1: off 2: opening 3: On 4: opening 5: opening 6: off 
Run reboot, restart the server to verify nginx boot: [root @ yyj ~] # reboot 


optional commands: 
Close the boot from Kai order: chkconfig rabbitmq-server off 
the delete command: chkconfig --del rabbitmq-server

 

 

 

 

Guess you like

Origin www.cnblogs.com/youngyajun/p/11460679.html