How to Install Apache ActiveMQ on CentOS 7

Apache ActiveMQ is a free and open source message broker and integration pattern server. It supports many cross language clients and protocols from JAVA, C++, C, Python, Perl, PHP etc. It provides many features such as Message Groups, Virtual Destinations, Wildcards and Composite Destinations etc. It can be easily integrated to spring applications.

In this tutorial, we will install Apache ActiveMQ on CentOS 7 server.

Prerequisite

  • Minimal CentOS 7 server
  • Root privileges. This guide is written as the root user, if you are logged in as sudo user, run sudo -i.

Update Base System

Before installing any package it is recommended that you update the packages and repository using the following command.

yum -y update

Once your system is updated, proceed further to install JAVA.

Install JAVA

ActiveMQ supports both OpenJDK and Oracle JAVA, in this tutorial we will install the latest version of Oracle Java into the server. Run the following command to download the RPM package.

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"

If you do not have wget installed, you can run the yum -y install wget to install wget. Now install the downloaded RPM using the following command.

yum -y localinstall jdk-8u131-linux-x64.rpm

You can now check the Java version using the following command.

java -version

You will get the following output.

[root@liptan-pc ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

You will also need to check if JAVA_HOME environment variable is set. Run the following command for same.

echo $JAVA_HOME

If you get a null or blank output, you will need to manually set the JAVA_HOME variable. Edit the .bash_profile file using your favourite editor. In this tutorial, we will use nano editor. Run the following command to edit .bash_profile using nano.

nano ~/.bash_profile

Now add the following lines at the at the end of the file.

export JAVA_HOME=/usr/java/jdk1.8.0_131/
export JRE_HOME=/usr/java/jdk1.8.0_131/jre

Now source the file using the following command.

source ~/.bash_profile

Now you can run the echo $JAVA_HOME command again to check if the environment variable is set or not.

[root@pc ~]# echo $JAVA_HOME 
/usr/java/jdk1.8.0_131/

Install ActiveMQ

ActiveMQ provides binaries for Unix systems which are precompiled and can be used directly. The only required dependency was to install JAVA into the system. As we have installed JAVA we can proceed further to download ActiveMQ.

wget http://www-eu.apache.org/dist//activemq/5.15.0/apache-activemq-5.15.0-bin.tar.gz

If you do not have wget installed, you can run yum -y install wget. You can always find the link to the latest version on ActiveMQ download page.

Extract the archive using the following command.

tar -zxvf apache-activemq-*-bin.tar.gz -C /var

Change the name of the ActiveMQ directory for the sake of simplicity by running.

mv /var/apache-activemq-*/ /var/activemq/

ActiveMQ is now installed on your system.

Starting ActiveMQ

Change your current directory to ActiveMQ installation directory.

cd /var/activemq

You can immediately start ActiveMQ as a foreground process by running the following command.

./bin/activemq console

To start ActiveMQ as background process, run:

./bin/activemq start

You should get the following output if started successfully.

[root@pc activemq]# ./bin/activemq start
INFO: Loading '/var/activemq//bin/env'
INFO: Using java '/usr/java/jdk1.8.0_131//bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/var/activemq//data/activemq.pid' (pid '27680')

To stop ActiveMQ, you can run the following command.

./bin/activemq stop

Creating Systemd Service

Although you can easily run ActiveMQ using the commands above, it is recommended to use a systemd service for managing ActiveMQ process. Using Systemd service will ensure that ActiveMQ will start automatically at boot time and failures.

Create a systemd service file using your favorite text editor. In this tutorial, we will be using nano editor. If you do not have nano installed, you can run yum -y install nano.

nano /etc/systemd/system/activemq.service

Now populate the file with the following content.

[Unit]
Description=ActiveMQ service
After=network.target

[Service]
Type=forking
ExecStart=/var/activemq/bin/activemq start
ExecStop=/var/activemq/bin/activemq stop
User=root
Group=root
Restart=always
RestartSec=9
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=activemq

[Install]
WantedBy=multi-user.target

Now you can start ActiveMQ using:

systemctl start activemq

To configure ActiveMQ to automatically start at boot time, use.

systemctl enable activemq

To check if ActiveMQ service is started correctly, you can run the following command to check the status of the ActiveMQ service.

systemctl status activemq

You should get output similar to shown below.

? activemq.service - ActiveMQ service
   Loaded: loaded (/etc/systemd/system/activemq.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-07-15 17:05:24 UTC; 6s ago
  Process: 28815 ExecStart=/var/activemq/bin/activemq start (code=exited, status=0/SUCCESS)
 Main PID: 28867 (java)
   CGroup: /system.slice/activemq.service
           ??28867 /usr/bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth...

Jul 15 17:05:24 centos systemd[1]: Starting ActiveMQ service...
Jul 15 17:05:24 centos activemq[28815]: INFO: Loading '/var/activemq//bin/env'
Jul 15 17:05:24 centos activemq[28815]: INFO: Using java '/usr/bin/java'
Jul 15 17:05:24 centos activemq[28815]: INFO: Starting - inspect logfiles specified in logging.propertie...tails
Jul 15 17:05:24 centos activemq[28815]: INFO: pidfile created : '/var/activemq//data/activemq.pid' (pid '28867')
Jul 15 17:05:24 centos systemd[1]: Started ActiveMQ service.

Using Admin Web Panel

To access the administrative panel of ActiveMQ, start the ActiveMQ service. Using your favourite web browser, open the following URL.

http://Your_Server_IP:8161/admin

If you have firewalld installed, you will have to allow port 8161 through the firewall. Run the following command for same.

firewall-cmd --zone=public --permanent --add-port=8161/tcp
firewall-cmd --reload

The initial username and password for Apache ActiveMQ are admin and admin. Once you are logged in, you will see the following interface.

You should change your password as soon as you are logged in.

Conclusion

You can now use Apache ActiveMQ server to manage the communication between multiple clients and servers. You can learn more about Apache ActiveMQ by going to ActiveMQ site.

Share this page:

5 Comment(s)