Linux server Java environment deployment series (v): to build a RabbitMQ

introduction

  This paper describes the Linux server, the building RabbitMQ, and related configuration.

Series Document Catalog

  Linux server Java environment deployment series (a): Install the JDK

  Linux server Java environment deployment series (two): Install nginx, mysql, tomcat, redis

  Linux server Java environment deployment series (three): install git, maven

  Linux server Java environment deployment series (four): jenkins environment to build, deploy projects

  Linux server Java environment deployment series (v): to build a RabbitMQ

Ready to work

  • Erlang download the installation package: If the line is too slow to install, can be selected directly from the official website https://www.erlang.org/downloads download
wget http://erlang.org/download/otp_src_22.0-rc2.tar.gz
  • Download rabbitmq-server installation package 
wget wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.2/rabbitmq-server-3.8.2-1.el7.noarch.rpm

Installation Erlang

  • Installation depends libraries:
    • yum -y install gcc-c++
    • yum -y install ncurses-devel
    • yum -y install openssl-devel
    • yum -y install unixODBC-devel
  • Create a directory (the installation directory specified): mkdir / usr / local / erlang
  • Open Directory cd otp_src_22.2 /
  • Mounted to the specified directory: ./configure --prefix = / usr / local / erlang --without-Javac
  • make && make install
  • After installation is complete configuration & compilation Erlang environment variables: vim / etc / profile
    • Appended to the end of the file environment variables: export PATH = $ PATH: / usr / local / erlang / bin
    • source /etc/profile

RabbitMQ installation

  • Loading Source: rpm -ivh --nodeps rabbitmq-server-3.8.2-1.el7.noarch.rpm
  • If linux firewall is turned on, the need to do the following
    • firewall-cmd --zone=public --add-port=15672/tcp --permanent
    • firewall-cmd --zone=public --add-port=5672/tcp --permanent
    • firewall-cmd --reload
  • start up:
    • rabbitmq-plugins enable rabbitmq_management
    • rabbitmq-server
  • Background start: rabbitmq-server -detached
  • Create a login account, password: rabbitmqctl add_user [account] [password]
  • Grant administrator privileges: rabbitmqctl set_user_tags [account] administrator
  • Authorized user to the virtual machine (/): '. *' Rabbitmqctl set_permissions -p / [Account] '*'. '*.'
  • Configure boot from the start:
    • Adding custom startup script:
    • Create a rabbitmq-server file in the /etc/init.d directory, as follows: 
#!/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
NAME=rabbitmq-server
#DAEMON=/usr/sbin/${NAME}
#CONTROL=/usr/sbin/rabbitmqctl
DAEMON=/server/rabbitmq/sbin/${NAME}
CONTROL=/server/rabbitmq/sbin/rabbitmqctl
DESC=rabbitmq-server
USER=root
ROTATE_SUFFIX=
INIT_LOG_DIR=/var/log/rabbitmq
PID_FILE=/var/run/rabbitmq/pid
 
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}
 
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 \
            > "${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
View Code
    •  The above modifications in the actual situation
# Increase the Erlang environment path of 
the PATH = / sbin: / usr / sbin: / bin: / usr / bin: / usr / local / Erlang / bin 

# service script 
DAEMON = / Server / RabbitMQ / sbin / $ {NAME} 

CONTROL = / Server / RabbitMQ / sbin / rabbitmqctl 

DESC = rabbitmq- Server 

the USER = root 

# log directory 
INIT_LOG_DIR = / the Data / Soft / rabbitmq_server-3.7.9 / var / log / RabbitMQ      

# pid file, look for command: find / -name rabbit .pid *                                        
PID_FILE=/var/lib/rabbitmq/mnesia/[email protected]
View Code
      • Set execute permissions, the command: chmod a + x /etc/init.d/rabbitmq-server
    Add boot entry:
    • Add command: chkconfig --add /etc/init.d/rabbitmq-server
    • View startup items, command: chkconfig --list
    • We need to set rabbitmq-server start command: chkconfig rabbitmq-server on
    • Close command: chkconfig rabbitmq-server off
    • Delete command: chkconfig --del rabbitmq-server
  • Run reboot, reboot the server to verify nginx boot

Guess you like

Origin www.cnblogs.com/huanghzm/p/12192390.html