Wie man Apache ActiveMQ und Hawt.io unter CentOS 8 installiert

Apache ActiveMQ ist ein freier, quelloffener und Java-basierter Message Broker, der zum Senden von Nachrichten zwischen zwei Anwendungen verwendet werden kann. Er bietet viele Funktionen, darunter Hochverfügbarkeit und Nachrichten-Lastausgleich für Ihre Daten. Er unterstützt außerdem mehrere Client-Sprachen und Protokolle, darunter Java, C, C++, Python, PHP, Perl, Ruby und C#. Es übersetzt Nachrichten vom Sender zum Empfänger und ermöglicht es, Nachrichten in der Warteschlange zu halten.

In diesem Tutorial werden wir lernen, wie man Apache ActiveMQ unter CentOS 8 installiert.

Voraussetzungen

  • Ein Server mit CentOS 8.
  • Auf Ihrem Server ist ein Root-Passwort konfiguriert.

Java installieren

Apache ActiveMQ ist eine Java-basierte Anwendung, daher muss Java in Ihrem System installiert sein. Wenn es nicht installiert ist, können Sie es mit dem folgenden Befehl installieren:

dnf install java-11-openjdk-devel -y

Überprüfen Sie nach der Installation von Java die installierte Version von Java mit dem folgenden Befehl:

java --version

Sie sollten die folgende Ausgabe erhalten:

openjdk 11.0.6 2020-01-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.6+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.6+10-LTS, mixed mode, sharing)

Installieren und Konfigurieren von Apache ActiveMQ

Zuerst müssen Sie die neueste Version von ActiveMQ von ihrer offiziellen Website herunterladen. Sie können sie mit dem folgenden Befehl herunterladen:

cd /opt
 wget https://www.apache.org/dist/activemq/5.15.12/apache-activemq-5.15.12-bin.tar.gz

Nach dem Herunterladen extrahieren Sie die heruntergeladene Datei mit folgendem Befehl: Extrahieren Sie die heruntergeladene Datei mit folgendem Befehl

tar -xvzf apache-activemq-5.15.12-bin.tar.gz

Als nächstes benennen Sie das extrahierte Verzeichnis apache-activemq mit folgendem Befehl um:

mv apache-activemq-5.15.12 apache-activemq

Als nächstes ist es eine gute Idee, einen separaten Benutzer für Apache ActiveMQ anzulegen. Sie können einen neuen Benutzer mit dem Namen activemq mit folgendem Befehl anlegen: Als nächstes verschieben Sie das extrahierte Verzeichnis in das Verzeichnis webapps:

useradd activemq

Ändern Sie als nächstes den Eigentümer des Verzeichnisses apache-activemq in activemq:

chown -R activemq:activemq /opt/apache-activemq/

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Systemdienstdatei für ActiveMQ anlegen

Als n?chstes m?ssen Sie eine systemd Service-Datei erstellen, um den Apache ActiveMQ-Dienst zu verwalten. Sie können sie mit dem folgenden Befehl erstellen:

nano /etc/systemd/system/apache-activemq.service

Fügen Sie die folgenden Zeilen hinzu:

[Unit]
Description=Apache ActiveMQ Messaging Server
After=network.target

[Service]
Type=forking
User=activemq
Group=activemq

ExecStart=/opt/apache-activemq/bin/activemq start
ExecStop=/opt/apache-activemq/bin/activemq stop

[Install]
WantedBy=multi-user.target

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Laden Sie dann den systemd-Dämon mit folgendem Befehl neu:

systemctl daemon-reload

Starten Sie als nächstes den ActiveMQ-Dienst und aktivieren Sie ihn nach dem Systemneustart mit folgendem Befehl:

systemctl start apache-activemq
 systemctl enable apache-activemq

Sie können den Status des ActiveMQ-Service mit dem folgenden Befehl überprüfen:

systemctl status apache-activemq

Sie sollten die folgende Ausgabe sehen:

? apache-activemq.service - Apache ActiveMQ Messaging Server
   Loaded: loaded (/etc/systemd/system/apache-activemq.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-03-26 10:15:32 EDT; 12s ago
  Process: 9005 ExecStart=/opt/apache-activemq/bin/activemq start (code=exited, status=0/SUCCESS)
 Main PID: 9057 (java)
    Tasks: 49 (limit: 25028)
   Memory: 197.5M
   CGroup: /system.slice/apache-activemq.service
           ??9057 /usr/bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/opt/apach>

Mar 26 10:15:32 centos8 systemd[1]: Starting Apache ActiveMQ Messaging Server...
Mar 26 10:15:32 centos8 activemq[9005]: INFO: Loading '/opt/apache-activemq//bin/env'
Mar 26 10:15:32 centos8 activemq[9005]: INFO: Using java '/usr/bin/java'
Mar 26 10:15:32 centos8 activemq[9005]: INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
Mar 26 10:15:32 centos8 activemq[9005]: INFO: pidfile created : '/opt/apache-activemq//data/activemq.pid' (pid '9057')
Mar 26 10:15:32 centos8 systemd[1]: Started Apache ActiveMQ Messaging Server.

Standardmäßig lauscht Apache ActiveMQ auf Port 8161. Sie können dies mit dem folgenden Befehl überprüfen:

netstat -antup | grep 8161

Sie sollten die folgende Ausgabe erhalten:

tcp6       0      0 :::8161                 :::*                    LISTEN      9289/java 

Apache ActiveMQ Admin-Kennwort festlegen

Standardmäßig sind Benutzername und Kennwort für Apache ActiveMQ admin auf admin/admin gesetzt. Dies ist aus Sicherheitsgründen sehr gefährlich. Es wird daher empfohlen, ihn mit einem sicheren Passwort zu ändern.

Sie können sie ändern, indem Sie die folgende Datei bearbeiten:

nano /opt/apache-activemq/conf/jetty-realm.properties

Ändern Sie die folgenden Zeilen mit Ihrem Wunschpasswort:

# username: password [,rolename ...]
admin: activemqpassword, admin
user: userpassword, user

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den ActiveMQ-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache-activemq

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren Sie Nginx als Reverse-Proxy für Apache ActiveMQ

Als nächstes wird empfohlen, Nginx als Reverse-Proxy für ActiveMQ zu konfigurieren.

Installieren Sie zunächst den Nginx-Webserver mit dem folgenden Befehl:

dnf install nginx -y

Sobald Nginx installiert ist, erstellen Sie eine neue Nginx-Konfigurationsdatei für den virtuellen Host mit folgendem Befehl:

nano /etc/nginx/conf.d/activemq.conf

Fügen Sie die folgenden Zeilen hinzu:

server {
    listen 80;
    server_name your-server-ip;
    location / {
        proxy_pass http://127.0.0.1:8161;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
     }
}

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Überprüfen Sie dann Nginx mit dem folgenden Befehl auf einen Syntaxfehler:

nginx -t

Sie sollten die folgende Ausgabe sehen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starten Sie schließlich den Nginx-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:

systemctl start nginx
 systemctl enable nginx

Sie können den Nginx-Status auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Sie sollten die folgende Ausgabe sehen:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-03-26 10:27:45 EDT; 1min 9s ago
  Process: 9984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 9982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 9980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 9985 (nginx)
    Tasks: 3 (limit: 25028)
   Memory: 5.5M
   CGroup: /system.slice/nginx.service
           ??9985 nginx: master process /usr/sbin/nginx
           ??9986 nginx: worker process
           ??9987 nginx: worker process

Mar 26 10:27:44 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...

Konfigurieren von SELinux und Firewall

Standardmäßig ist SELinux in CentOS 8 aktiviert. Es wird empfohlen, SELinux zu deaktivieren, damit Apache ActiveMQ korrekt funktioniert.

Sie können SELinux deaktivieren, indem Sie die Datei /etc/selinux/config bearbeiten:

nano /etc/selinux/config

Suchen Sie die folgende Zeile:

SELINUX=enforcing

Und, ersetzen Sie ihn durch die folgende Zeile:

SELINUX=permissive

Speichern und schließen Sie die Datei. Starten Sie dann Ihr System neu, um die Änderungen zu übernehmen:

Als n?chstes m?ssen Sie Port 80 und 8161 durch Firewalld zulassen. Sie können sie mit dem folgenden Befehl zulassen:

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

Laden Sie anschließend die Firewall neu, um die Änderungen zu übernehmen:

firewall-cmd --reload

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Zugriff auf Apache ActiveMQ

Zu diesem Zeitpunkt ist Apache ActiveMQ installiert und konfiguriert.

Öffnen Sie nun Ihren Webbrowser und geben Sie die URL http://your-server-ip ein. Sie sollten die folgende Seite sehen:

AktivMQ

Sie können auch auf die Verwaltungsschnittstelle von Apache ActiveMQ zugreifen, indem Sie die URL http://your-server-ip/admin besuchen. Sie werden auf die folgende Seite umgeleitet:

Login

Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf die Schaltfläche Anmelden. Auf der folgenden Seite sollten Sie die Apache ActiveMQ-Verwaltungsoberfläche sehen:

ActiveMQ-Dashboard

ActiveMQ mit Hawt.io überwachen

Sie können Ihr Apache ActiveMQ auch mit Hawt.io überwachen. Hawt.io ist eine modulare Web-Konsole zur Verwaltung Ihrer Java-basierten Anwendung. Es ist eine steckbare Verwaltungskonsole, die jede Art von JVM, jede Art von Container unterstützt, einschließlich Tomcat, Jetty, Karaf, JBoss und viele andere.

Laden Sie zunächst die neueste Version der Datei Hawt.io war mit folgendem Befehl herunter:

wget https://repo1.maven.org/maven2/io/hawt/hawtio-default/2.9.1/hawtio-default-2.9.1.war

Entpacken Sie dann die heruntergeladene Datei mit dem folgenden Befehl:

unzip hawtio-default-2.9.1.war -d hawtio

Verschieben Sie als n?chstes das extrahierte Verzeichnis mit folgendem Befehl in das Verzeichnis webapps:

mv hawtio /opt/apache-activemq/webapps/

Als nächstes ändern Sie den Besitzer des Webapps-Verzeichnisses mit folgendem Befehl auf activemq:

chown -R activemq:activemq /opt/apache-activemq/webapps/

Bearbeiten Sie als Nächstes die Apache ActiveMQ-Umgebungsdatei und nehmen Sie einige Änderungen vor:

nano /opt/apache-activemq/bin/env

Suchen Sie die folgende Zeile:

ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config"

Ersetzen Sie ihn durch die folgende Zeile:

ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS_MEMORY -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=$ACTIVEMQ_CONF/login.config -Dhawtio.realm=activemq -Dhawtio.role=admins -Dhawtio.rolePrincipalClasses=org.apache.activemq.jaas.GroupPrincipal"

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Öffnen Sie dann die Datei jetty.xml:

nano /opt/apache-activemq/conf/jetty.xml

Fügen Sie die folgende Zeile unterhalb der Zeile <ref bean=“rewriteHandler“> ein:

<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/hawtio" />
<property name="resourceBase" value="${activemq.home}/webapps/hawtio" />
<property name="logUrlOnStart" value="true" />
</bean>

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und starten Sie dann den Apache ActiveMQ-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache-activemq

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Zugriff auf die Web-Schnittstelle Hawt.io

Hawt.io ist jetzt installiert und konfiguriert. Es ist an der Zeit, auf seine Webschnittstelle zuzugreifen.

Öffnen Sie Ihren Web-Browser und geben Sie die URL http://your-server-ip/hawtio ein. Sie werden auf die Anmeldeseite von Hawt.io weitergeleitet:

Hawt.io Anmeldung

Geben Sie den Standardbenutzernamen und das Kennwort als admin/admin ein und klicken Sie auf die Schaltfläche Anmelden. Sie sollten das Hawt.io-Dashboard auf der folgenden Seite sehen:

Hawt.io Armaturenbrett

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben Apache ActiveMQ erfolgreich unter CentOS 8 installiert. Weitere Informationen finden Sie in der Apache ActiveMQ-Dokumentation unter ActiveMQ.

Das könnte dich auch interessieren …